diff options
Diffstat (limited to 'gui')
-rw-r--r-- | gui/dialog.cpp | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/gui/dialog.cpp b/gui/dialog.cpp index 42f6711542..0a3c9ae0b8 100644 --- a/gui/dialog.cpp +++ b/gui/dialog.cpp @@ -184,17 +184,19 @@ void Dialog::handleKeyDown(uint16 ascii, int keycode, int modifiers) { } // 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; + if (ascii != 0) { + 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; } - w = w->_next; } // ESC closes all dialogs by default |