https://bugs.kde.org/show_bug.cgi?id=437196

Alvin Wong <al...@alvinhc.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dimul...@gmail.com

--- Comment #1 from Alvin Wong <al...@alvinhc.com> ---
@Dmitry:

I traced the window messages and seem to have found a pattern. This is how the
messages seem to arrive:

1. When drawing a stroke, WM_POINTERDOWN / WM_POINTERUPDATE / WM_POINTERUP are
received for the pen input.
2. Synthesized WM_LBUTTONDOWN / WM_MOUSEMOVE / WM_LBUTTONUP are also received.
3. As the pen is released and the touch docker is touched, WM_POINTERDOWN /
WM_POINTERUPDATE / WM_POINTERUP are received for the touch point.
4. Synthesized WM_TOUCH messages are also received.
5. Finally, synthesized WM_LBUTTONDOWN / WM_LBUTTONUP are received.

Whenever the command gets triggered twice, however, the window received extra
WM_PINTERUPDATE messages generated from the pen moving, in between item 3 and
5.

Effectively, you don't need to draw on the canvas to trigger the bug. Simply
shaking the pen hovering on the canvas and touching the touch docker buttons at
the same time can trigger the bug.

I suspect this to be the culprit:
https://invent.kde.org/qt/qt/qtbase/-/commit/786c58817187bb18552934c807ba7a7ea845f49e#5fba19dc9f238dadbe8c1589df5a5f8c5c8a8537_732_734

I'm not sure if it is safe to just revert that commit though, since it does
mention Qt Quick relies on this. What do you think?

P.S. the code comment states that "using the bit 7 of the extra msg info for
checking if synthesized for touch does not work", but I suspect it is related
to the thing where Windows starts synthesizing touch events from pen input
since 1709.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to