summaryrefslogtreecommitdiff
path: root/scene/gui
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <remi@verschelde.fr>2021-08-19 17:49:01 +0200
committerGitHub <noreply@github.com>2021-08-19 17:49:01 +0200
commit93dac1c7db0837eba82831e6391a022d454b67f9 (patch)
treef3249473efaca7917c34def1feb0fb975ba6ca3a /scene/gui
parent276d1e484485c8daf5acdfcf77c775b76500ffce (diff)
parent0aa13ecd30b32c64860a5176dab4c12d4e753a8c (diff)
Merge pull request #51804 from ThreeRhinosInAnElephantCostume/fixundoredo
Diffstat (limited to 'scene/gui')
-rw-r--r--scene/gui/popup_menu.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/scene/gui/popup_menu.cpp b/scene/gui/popup_menu.cpp
index 4bd88fde5f..aff367e398 100644
--- a/scene/gui/popup_menu.cpp
+++ b/scene/gui/popup_menu.cpp
@@ -358,9 +358,10 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) {
}
int button_idx = b->get_button_index();
- if (b->is_pressed() || (!b->is_pressed() && during_grabbed_click)) {
- // Allow activating item by releasing the LMB or any that was down when the popup appeared.
- // However, if button was not held when opening menu, do not allow release to activate item.
+ if (!b->is_pressed()) {
+ // Activate the item on release of either the left mouse button or
+ // any mouse button held down when the popup was opened.
+ // This allows for opening the popup and triggering an action in a single mouse click.
if (button_idx == MOUSE_BUTTON_LEFT || (initial_button_mask & (1 << (button_idx - 1)))) {
bool was_during_grabbed_click = during_grabbed_click;
during_grabbed_click = false;