When you press the 'Menu' key followed by 'Esc' the pinentry-qt hangs up
(window disappears but app is still running) and doesn't respond to the
calling application.
Description
Details
- Due Date
- Apr 30 2007, 2:00 AM
- Version
- pinentry-qt 0.7.2
Related Objects
- Mentioned Here
- D37: 115_pinentry-qt.patch
Event Timeline
Hi,
I took a closer look at the sources and found the bug. When the dialog is
shown, QSecLineEdit->grabKeyboard() is called, so all keyboard events are sent
to the lineedit. When you press the Menu key, the menu is created and shown by
the lineedit, but you can't close the menu again, because all key events are
still forwarded to the lineedit. When the lineedit receives the Esc key event
it will forward it to the dialog which will close itself and hide all
childrens (the menu). However the menu is still there because it's event loop
is still running, that blocks the dialog from returning to pinentry.
As a bug fix I'd propose the attached patch which doesn't show the menu at
all. For a PIN entry field something like undo/redo/copy/paste doesn't make
sense from the usability point of view anyway.
Ciao,
Tobias
Thanks, I put it in.
2007-04-13 Marcus Brinkmann <marcus@g10code.de>
- qt/secqlineedit.h (SecQLineEdit::contextMenuEvent, SecQLineEdit::createPopupMenu): Remove prototype.
- qt/secqlineedit.cpp (SecQLineEdit::contextMenuEvent, SecQLineEdit::createPopupMenu): Remove implementation. Submitted by Tobias Koenig <tokoe@kde.org>.