浏览代码

Improve null check in FindReplaceBar

(cherry picked from commit e94b8a6accfb07003ee75ba6f8aab4f7f54f070a)
Yuri Sizov 5 年之前
父节点
当前提交
3f57cb12b4
共有 1 个文件被更改,包括 16 次插入18 次删除
  1. 16 18
      editor/code_editor.cpp

+ 16 - 18
editor/code_editor.cpp

@@ -116,27 +116,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_scancode()) {
-
-				case KEY_ESCAPE: {
+	if (!k.is_valid() || !k->is_pressed()) {
+		return;
+	}
 
-					_hide_bar();
-				} break;
-				default: {
+	Control *focus_owner = get_focus_owner();
+	if (text_edit->has_focus() || (focus_owner && vbc_lineedit->is_a_parent_of(focus_owner))) {
+		bool accepted = true;
 
-					accepted = false;
-				} break;
-			}
+		switch (k->get_scancode()) {
+			case KEY_ESCAPE: {
+				_hide_bar();
+			} break;
+			default: {
+				accepted = false;
+			} break;
+		}
 
-			if (accepted) {
-				accept_event();
-			}
+		if (accepted) {
+			accept_event();
 		}
 	}
 }