Forráskód Böngészése

Improve null check in FindReplaceBar

Yuri Sizov 5 éve
szülő
commit
e94b8a6acc
1 módosított fájl, 18 hozzáadás és 15 törlés
  1. 18 15
      editor/code_editor.cpp

+ 18 - 15
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();
 		}
 	}
 }