Details
-
Type:
Bug
-
Status: Open
-
Priority:
P2: Important
-
Resolution: Unresolved
-
Affects Version/s: 5.14.2, 6.0.2
-
Fix Version/s: None
-
Component/s: QPA
-
Labels:None
-
Platform/s:
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
-