1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-11 13:10:58 +00:00

fixed popup_menu buttons getting triggered by lmb press instead of release.

This commit is contained in:
ThreeRhinosInAnElephantCostume
2021-08-19 15:54:32 +02:00
parent 819aa47fee
commit 0aa13ecd30

View File

@@ -358,9 +358,10 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) {
} }
int button_idx = b->get_button_index(); int button_idx = b->get_button_index();
if (b->is_pressed() || (!b->is_pressed() && during_grabbed_click)) { if (!b->is_pressed()) {
// Allow activating item by releasing the LMB or any that was down when the popup appeared. // Activate the item on release of either the left mouse button or
// However, if button was not held when opening menu, do not allow release to activate item. // 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)))) { if (button_idx == MOUSE_BUTTON_LEFT || (initial_button_mask & (1 << (button_idx - 1)))) {
bool was_during_grabbed_click = during_grabbed_click; bool was_during_grabbed_click = during_grabbed_click;
during_grabbed_click = false; during_grabbed_click = false;