From 660ca0f52657a633f7852019b6242cfabe319c70 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Tue, 22 Jul 2003 16:30:00 +0000 Subject: fixed button hotkeys in dialogs with a focused widget (e.g. the F5 save/load dialog) svn-id: r9127 --- gui/dialog.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'gui') diff --git a/gui/dialog.cpp b/gui/dialog.cpp index 745e48ce10..42f6711542 100644 --- a/gui/dialog.cpp +++ b/gui/dialog.cpp @@ -181,20 +181,20 @@ void Dialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { if (_focusedWidget) { if (_focusedWidget->handleKeyDown(ascii, keycode, modifiers)) return; - } else { - // Hotkey handling - Widget *w = _firstWidget; - ascii = toupper(ascii); - while (w) { - if (w->_type == kButtonWidget && ascii == toupper(((ButtonWidget *)w)->_hotkey)) { - // We first send a mouseDown then a mouseUp. - // FIXME: insert a brief delay between both. - w->handleMouseDown(0, 0, 1, 1); - w->handleMouseUp(0, 0, 1, 1); - return; - } - w = w->_next; + } + + // Hotkey handling + Widget *w = _firstWidget; + ascii = toupper(ascii); + while (w) { + if (w->_type == kButtonWidget && ascii == toupper(((ButtonWidget *)w)->_hotkey)) { + // The hotkey for widget w was pressed. We fake a mouse click into the + // button by invoking the appropriate methods. + w->handleMouseDown(0, 0, 1, 1); + w->handleMouseUp(0, 0, 1, 1); + return; } + w = w->_next; } // ESC closes all dialogs by default -- cgit v1.2.3