From 25fc113c37ce74e56bc23a69b39cd223a0d0bb43 Mon Sep 17 00:00:00 2001 From: David Capello Date: Tue, 17 Jul 2012 23:18:43 -0300 Subject: [PATCH] Fix issue #142: Crash keeping a key pressed while we're en menu logic. We cannot send another Menu::closeAll() request if we are processing other open/close popup requests. This also fix a crash if we keep the left or right key pressed to navigate through menus. --- src/ui/menu.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/ui/menu.cpp b/src/ui/menu.cpp index 4b3c058c2..f2fb9b2f8 100644 --- a/src/ui/menu.cpp +++ b/src/ui/menu.cpp @@ -1188,11 +1188,17 @@ void MenuBox::closePopup() void MenuBox::cancelMenuLoop() { Menu* menu = getMenu(); - if (menu) + if (menu) { + // Do not close the popup menus if we're already processing + // open/close popup messages. + if (get_base(this)->is_processing) + return; + menu->closeAll(); - // Lost focus - Manager::getDefault()->freeFocus(); + // Lost focus + Manager::getDefault()->freeFocus(); + } } void MenuItem::executeClick()