On Wed, 22 May 2024 08:10:16 GMT, Jose Pereda <jper...@openjdk.org> wrote:
>> This PR fixes a bug >> ([JDK-8289115](https://bugs.openjdk.org/browse/JDK-8289115)) that was >> introduced with #394, which changed the following line in the >> `NotifyTouchInput` function (ViewContainer.cpp): >> >> - const bool isDirect = true; >> + const bool isDirect = IsTouchEvent(); >> >> >> `IsTouchEvent` is a small utility function that uses the Windows SDK >> function `GetMessageExtraInfo` to distinguish between mouse events and pen >> events as described in this article: >> https://learn.microsoft.com/en-us/windows/win32/tablet/system-events-and-mouse-messages >> >> I think that using this function to distinguish between touchscreen events >> and pen events is erroneous. The linked article states: >> _"When your application receives a **mouse message** (such as >> WM_LBUTTONDOWN) [...]"_ >> >> But we are not receiving a mouse message in `NotifyTouchInput`, we are >> receiving a `WM_TOUCH` message. >> I couldn't find any information on whether this API usage is also supported >> for `WM_TOUCH` messages, but my testing shows that that's probably not the >> case (I tested this with a XPS 15 touchscreen laptop, where >> `GetMessageExtraInfo` returns 0 for `WM_TOUCH` messages). >> >> My suggestion is to check the `TOUCHEVENTF_PEN` flag of the `TOUCHINPUT` >> structure instead: >> >> const bool isDirect = (ti->dwFlags & TOUCHEVENTF_PEN) == 0; > > Yes, I'll do that, I still have it around. Reviewer: @jperedadnr ------------- PR Comment: https://git.openjdk.org/jfx/pull/1459#issuecomment-2124650489