Page MenuHome GnuPG

pinentry-qt hangsup
Closed, ResolvedPublic

Description

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.

Details

Due Date
Apr 30 2007, 2:00 AM
Version
pinentry-qt 0.7.2

Related Objects

Event Timeline

tokoe set Version to pinentry-qt 0.7.2.Mar 5 2007, 7:10 PM
tokoe added a project: Bug Report.
tokoe added a subscriber: tokoe.

Anyone with Qt knowledge here?

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>.
marcus reopened this task as Open.
marcus claimed this task.
marcus added a project: Testing.
werner set Due Date to Apr 30 2007, 2:00 AM.Apr 16 2007, 2:58 PM
marcus removed a project: Testing.

No further feedback, so setting to resolved.