ngoncalves
8th June 2016, 08:58
Hello,
As part of a GUI test automation set of tools, I am building a tool to log user keyboard and mouse events in X11, and then
latter can replay these events.
I can log events without any problem, and I am using the X11 XSendEvent() function to generate fake user events.
However in Qt applications, replay of events does not working 100%:
- the keyboard modifiers (ALT, SHIFT, CTRL, etc) are ignored. On an US QWERTY keyboard, simulating a "SHIFT + 1"
should produce "!" but instead I get "1".
- the mouse button click events are sometimes ignored, but I can't really see a pattern
Googling, I found these similar reports but they were not answered:
https://bugreports.qt.io/browse/QTBUG-49448
http://www.qtcentre.org/threads/63126-XSendEvent-failed-for-unicode-special-characters-in-Linux
Can anybody provide some light on why is Qt 5.4 handling X11 XSendEvent() generated events in such a weird way ?
As part of a GUI test automation set of tools, I am building a tool to log user keyboard and mouse events in X11, and then
latter can replay these events.
I can log events without any problem, and I am using the X11 XSendEvent() function to generate fake user events.
However in Qt applications, replay of events does not working 100%:
- the keyboard modifiers (ALT, SHIFT, CTRL, etc) are ignored. On an US QWERTY keyboard, simulating a "SHIFT + 1"
should produce "!" but instead I get "1".
- the mouse button click events are sometimes ignored, but I can't really see a pattern
Googling, I found these similar reports but they were not answered:
https://bugreports.qt.io/browse/QTBUG-49448
http://www.qtcentre.org/threads/63126-XSendEvent-failed-for-unicode-special-characters-in-Linux
Can anybody provide some light on why is Qt 5.4 handling X11 XSendEvent() generated events in such a weird way ?