summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scene/gui/dialogs.cpp35
-rw-r--r--scene/gui/dialogs.h3
2 files changed, 3 insertions, 35 deletions
diff --git a/scene/gui/dialogs.cpp b/scene/gui/dialogs.cpp
index 0860bf3968..9e99bda60b 100644
--- a/scene/gui/dialogs.cpp
+++ b/scene/gui/dialogs.cpp
@@ -44,12 +44,6 @@ void AcceptDialog::_input_from_window(const Ref<InputEvent> &p_event) {
}
}
-void AcceptDialog::_parent_focused() {
- if (close_on_escape && !is_exclusive()) {
- _cancel_pressed();
- }
-}
-
void AcceptDialog::_update_theme_item_cache() {
Window::_update_theme_item_cache();
@@ -70,16 +64,6 @@ void AcceptDialog::_notification(int p_what) {
get_ok_button()->grab_focus();
}
_update_child_rects();
-
- parent_visible = get_parent_visible_window();
- if (parent_visible) {
- parent_visible->connect("focus_entered", callable_mp(this, &AcceptDialog::_parent_focused));
- }
- } else {
- if (parent_visible) {
- parent_visible->disconnect("focus_entered", callable_mp(this, &AcceptDialog::_parent_focused));
- parent_visible = nullptr;
- }
}
} break;
@@ -92,10 +76,9 @@ void AcceptDialog::_notification(int p_what) {
}
} break;
- case NOTIFICATION_EXIT_TREE: {
- if (parent_visible) {
- parent_visible->disconnect("focus_entered", callable_mp(this, &AcceptDialog::_parent_focused));
- parent_visible = nullptr;
+ case NOTIFICATION_WM_WINDOW_FOCUS_OUT: {
+ if (close_on_escape && !is_exclusive()) {
+ _cancel_pressed();
}
} break;
@@ -129,21 +112,9 @@ void AcceptDialog::_ok_pressed() {
}
void AcceptDialog::_cancel_pressed() {
- Window *parent_window = parent_visible;
- if (parent_visible) {
- parent_visible->disconnect("focus_entered", callable_mp(this, &AcceptDialog::_parent_focused));
- parent_visible = nullptr;
- }
-
call_deferred(SNAME("hide"));
-
emit_signal(SNAME("canceled"));
-
cancel_pressed();
-
- if (parent_window) {
- //parent_window->grab_focus();
- }
set_input_as_handled();
}
diff --git a/scene/gui/dialogs.h b/scene/gui/dialogs.h
index 1821a886c0..ebe5ce326a 100644
--- a/scene/gui/dialogs.h
+++ b/scene/gui/dialogs.h
@@ -44,8 +44,6 @@ class LineEdit;
class AcceptDialog : public Window {
GDCLASS(AcceptDialog, Window);
- Window *parent_visible = nullptr;
-
Panel *bg_panel = nullptr;
Label *message_label = nullptr;
HBoxContainer *buttons_hbox = nullptr;
@@ -65,7 +63,6 @@ class AcceptDialog : public Window {
static bool swap_cancel_ok;
void _input_from_window(const Ref<InputEvent> &p_event);
- void _parent_focused();
protected:
virtual Size2 _get_contents_minimum_size() const override;