From c7fbc63cc23dc1f62e92dca3abab477f425d22e3 Mon Sep 17 00:00:00 2001 From: Alexey Kashlakov <42632842+Leytak@users.noreply.github.com> Date: Mon, 8 Apr 2019 12:31:41 +0700 Subject: [PATCH] Reset button state on exit tree Steps to reproduce a bug: 1) Hold / hover the button 2) Remove it (or parent node) from the tree 3) When we return the button back to the tree, it's pressed / hover --- scene/gui/base_button.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/scene/gui/base_button.cpp b/scene/gui/base_button.cpp index 806c8afa5bb..a8e021047d1 100644 --- a/scene/gui/base_button.cpp +++ b/scene/gui/base_button.cpp @@ -282,10 +282,7 @@ void BaseButton::_notification(int p_what) { if (p_what == NOTIFICATION_ENTER_TREE) { } - if (p_what == NOTIFICATION_EXIT_TREE) { - } - - if (p_what == NOTIFICATION_VISIBILITY_CHANGED && !is_visible_in_tree()) { + if (p_what == NOTIFICATION_EXIT_TREE || (p_what == NOTIFICATION_VISIBILITY_CHANGED && !is_visible_in_tree())) { if (!toggle_mode) { status.pressed = false;