Browse Source

Cancels the code complete timer when the caret moves to another line

Fixes and closes #68961
Alfred Reinold Baudisch 2 years ago
parent
commit
02f7e03a66
2 changed files with 6 additions and 0 deletions
  1. 5 0
      editor/code_editor.cpp
  2. 1 0
      editor/code_editor.h

+ 5 - 0
editor/code_editor.cpp

@@ -873,6 +873,10 @@ void CodeTextEditor::_reset_zoom() {
 }
 }
 
 
 void CodeTextEditor::_line_col_changed() {
 void CodeTextEditor::_line_col_changed() {
+	if (!code_complete_timer->is_stopped() && code_complete_timer_line != text_editor->get_caret_line()) {
+		code_complete_timer->stop();
+	}
+
 	String line = text_editor->get_line(text_editor->get_caret_line());
 	String line = text_editor->get_line(text_editor->get_caret_line());
 
 
 	int positional_column = 0;
 	int positional_column = 0;
@@ -902,6 +906,7 @@ void CodeTextEditor::_line_col_changed() {
 
 
 void CodeTextEditor::_text_changed() {
 void CodeTextEditor::_text_changed() {
 	if (text_editor->is_insert_text_operation()) {
 	if (text_editor->is_insert_text_operation()) {
+		code_complete_timer_line = text_editor->get_caret_line();
 		code_complete_timer->start();
 		code_complete_timer->start();
 	}
 	}
 
 

+ 1 - 0
editor/code_editor.h

@@ -158,6 +158,7 @@ class CodeTextEditor : public VBoxContainer {
 	Label *info = nullptr;
 	Label *info = nullptr;
 	Timer *idle = nullptr;
 	Timer *idle = nullptr;
 	Timer *code_complete_timer = nullptr;
 	Timer *code_complete_timer = nullptr;
+	int code_complete_timer_line = 0;
 
 
 	Timer *font_resize_timer = nullptr;
 	Timer *font_resize_timer = nullptr;
 	int font_resize_val;
 	int font_resize_val;