Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
5.14.2, 6.0.2
-
None
Description
We use Qt for palettes and modal dialogs inside Adobe Illustrator on macOS, i.e. with AA_PluginApplication.
While upgrading from Qt 5.4, we bumped into a regression caused by QTBUG-45768 introduced in Qt 5.7:
a) Every single keydown generates a beep in modal dialogs
b) In some cases dialog rejection with the Escape key is handled twice
This was solved for non-AA_PluginApplication use-cases in QTBUG-54211.
But in our AA_PluginApplication case, all keys are still propagated in keyDown().
When stepped thru handleKeyEvent() in qnsview_keys.mm, I noticed that QWindowSystemInterface::handleExtendedKeyEvent() returns whether the key has been consumed.
But the return value is discarded and the call is followed by "accepted = QWindowSystemInterface::flushWindowSystemEvents();".
But this seems to always return false because QWindowSystemInterfacePrivate::windowSystemEventQueue is empty.
Thus I believe handleKeyEvent() should propagate the value returned by handleExtendedKeyEvent().
I am not sure what it should do with the return value of flushWindowSystemEvents().
I am providing patch files for Qt 5.14.2 and 6.0.2, where both return values are or-ed.
Attachments
Issue Links
- relates to
-
QTBUG-54211 [REG 5.6-5.7.0][macOS]: QLineEdit emits annoying sound after pressing return key
- Closed
- resulted from
-
QTBUG-45768 Keyboard event handling in plugins
- Reported