Browse Source

Allow drag-clicking before symbol lookup

This makes it easier for touch and tablet users to do symbol lookups in
the code editor.
Jummit 2 years ago
parent
commit
a6c1cfae99
2 changed files with 4 additions and 2 deletions
  1. 3 2
      scene/gui/code_edit.cpp
  2. 1 0
      scene/gui/code_edit.h

+ 3 - 2
scene/gui/code_edit.cpp

@@ -371,12 +371,13 @@ void CodeEdit::gui_input(const Ref<InputEvent> &p_gui_input) {
 		}
 
 		if (symbol_lookup_on_click_enabled) {
-			if (mm->is_command_or_control_pressed() && mm->get_button_mask() == MouseButton::NONE && !is_dragging_cursor()) {
+			if (mm->is_command_or_control_pressed() && mm->get_button_mask() == MouseButton::NONE) {
+				symbol_lookup_pos = get_line_column_at_pos(mpos);
 				symbol_lookup_new_word = get_word_at_pos(mpos);
 				if (symbol_lookup_new_word != symbol_lookup_word) {
 					emit_signal(SNAME("symbol_validate"), symbol_lookup_new_word);
 				}
-			} else {
+			} else if (!mm->is_command_or_control_pressed() || (mm->get_button_mask() != MouseButton::NONE && symbol_lookup_pos != get_line_column_at_pos(mpos))) {
 				set_symbol_lookup_word_as_valid(false);
 			}
 		}

+ 1 - 0
scene/gui/code_edit.h

@@ -235,6 +235,7 @@ private:
 
 	String symbol_lookup_new_word = "";
 	String symbol_lookup_word = "";
+	Point2i symbol_lookup_pos;
 
 	/* Visual */
 	Ref<StyleBox> style_normal;