Details
-
Bug
-
Resolution: Fixed
-
P2: Important
-
None
-
5.11.2
-
None
-
Observed on basically every MacOS
Description
Our application is using custom defined keyboard shortcuts, for various QMenu items, using this code:
q->setShortcut(QKeySequence(s.QAccel));
I am not sure if this applies for shortcuts defined via QtCreator's window designer as well, but it definitely does for these that we configured using above mentioned code snippet. The bug is simply that upon press of selected shortcut (single keystroke on keyboard) the related event / action function associated with it is called random amount of times, typically 1 - 4 times instead of once only. Just like if the key was pressed multiple times instead of once.
We created a workaround for this which is basically gathering the QDateTime::currentDateTime() everytime when key is pressed and compares with previously stored value and if the timespan is lower than 100ms the keypress is ignored.
The application is shipped for Windows and Linux as well, and this bug is only affecting MacOS.
To reproduce:
One of affected applications is this one, it's open source: https://github.com/huggle/huggle3-qt-lx
To reproduce bug, you can either compile it, following instructions here: https://github.com/huggle/huggle3-qt-lx/wiki/Building-on-MacOS
Or download precompiled package: https://github.com/huggle/huggle3-qt-lx/releases/download/3.4.4/huggle_3.4.4.dmg
To be able to track this bug within application, it's necessary to start it in verbose mode (parameter -v), you can bypass the login process simply by putting "Developer Mode" as login name (legacy login) and hitting enter.
In MainWindow of application, using any user defined shortcut will probably trigger the bug.