diff options
Diffstat (limited to 'editor/code_editor.cpp')
| -rw-r--r-- | editor/code_editor.cpp | 33 | 
1 files changed, 18 insertions, 15 deletions
diff --git a/editor/code_editor.cpp b/editor/code_editor.cpp index b73a27214d..70747b4956 100644 --- a/editor/code_editor.cpp +++ b/editor/code_editor.cpp @@ -108,22 +108,25 @@ void FindReplaceBar::_notification(int p_what) {  void FindReplaceBar::_unhandled_input(const Ref<InputEvent> &p_event) {  	Ref<InputEventKey> k = p_event; -	if (k.is_valid()) { -		if (k->is_pressed() && (text_edit->has_focus() || vbc_lineedit->is_a_parent_of(get_focus_owner()))) { -			bool accepted = true; - -			switch (k->get_keycode()) { -				case KEY_ESCAPE: { -					_hide_bar(); -				} break; -				default: { -					accepted = false; -				} break; -			} +	if (!k.is_valid() || !k->is_pressed()) { +		return; +	} -			if (accepted) { -				accept_event(); -			} +	Control *focus_owner = get_focus_owner(); +	if (text_edit->has_focus() || (focus_owner && vbc_lineedit->is_a_parent_of(focus_owner))) { +		bool accepted = true; + +		switch (k->get_keycode()) { +			case KEY_ESCAPE: { +				_hide_bar(); +			} break; +			default: { +				accepted = false; +			} break; +		} + +		if (accepted) { +			accept_event();  		}  	}  }  |