Add workaround for handling table press correctly in WinInk mode
Original problem: widgets do not get synthesized mouse-down and mouse-press events until the stylus is released Reason: if the app accepts the event, WndProc should report that to the system (by returning true). This is the only way to prevent Windows from starting some system-wide gestures, like click+hold -> right button click. If we ignore the event, then OS postpones all synthesized mouse events until the entire gesture is completed. The patch implements a "hackish" workaround for the original problem by using the following rules: 1) All tablet-move events are ignored (without synthesized mouse events OS doesn't generate any Enter/Leave events) 2) All not-accepted tablet press- and release-events and also reported as ignored (without it D&D doesn't work). 3) All accepted tablet press- and release-events are reported as "accepted", **but** we artificially synthesize mouse events for them. TODO: there are still two problems: 1) Perhaps this synthesizeMouseEvent() is not needed at all. But we should first check if Qt relies on these synthesized messages anywhere in the code or not. 2) If we still keep synthesizeMouseEvent(), then it should fetch actual tablet buttons from QGuiApplicationPrivate::tabletDevicePoint(). Right now it always synthesizes left-click, whatever the button was pressed/ released. CCBUG:406668
Showing with 263 additions and 0 deletions
This diff is collapsed.