<div dir="ltr"><div>Hi all,</div><div><br></div><div>it's been a while since I was active on this mailing list. Sorry for the long silence. I am still working with JavaFX and generally very happy.</div><div><br></div><div>However, a couple of days ago I noticed that direct touch support on Windows is broken on a surprisingly large number of devices since JavaFX 16. I tracked the problem down to a relatively naive attempt at distinguishing *direct* touch events (finger based touch) from *indirect* stylus/pen based touch events (which are basically just mouse events) which was introduced as part of fixing <a href="https://bugs.openjdk.org/browse/JDK-8249737">https://bugs.openjdk.org/browse/JDK-8249737</a>.</div><div><br></div><div>The problem is that on a large number of touch devices without a pen, touch events are always reported as indirect. Examples are iiyama touch monitors (capacitive, multitouch) for Windows PCs .Those devices and even most Surface devices since the Surface Pro 3 (verified with Surface Pro 4, 7 and Studio) fall under that category.</div><div><br></div><div>The unfortunate result is that only gesture based multitouch works as expected. I created a PR on GitHub that fixes the issue by introducing a boolean property to the Scene class. The proposed interface can be seen here: <a href="https://github.com/openjdk/jfx/pull/927/commits/0caf15712a7e2e4492e6c2b5bb13417a514e41a5">https://github.com/openjdk/jfx/pull/927/commits/0caf15712a7e2e4492e6c2b5bb13417a514e41a5</a></div><div><br></div><div>I tried to explain the reasons for this API proposal here: <a href="https://github.com/openjdk/jfx/pull/927">https://github.com/openjdk/jfx/pull/927</a></div><div><br></div><div>I fully understand that such a change cannot be introduced without prior discussion. But since it's very urgent for our company to get this fixed, I created the PR anyway. Just as a public draft. And we are documenting the changes that we introduced in our JFX build. In the meantime, our company will roll out a custom JFX build with the proposed API.</div><div><br></div><div>What are your thoughts? Do you agree with the proposed API? Would you prefer a different solution?</div><div><br></div><div>Regards,</div><div>Michael</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>--</div><div><br></div><div><table cellpadding="0" cellspacing="0" width="550"><tbody><tr style="color:rgb(0,0,0);font-family:Times;font-size:medium"><td valign="top"><table cellpadding="0" cellspacing="0"><tbody><tr><td><br><br><br><br></td></tr><tr><td><table cellpadding="0" cellspacing="0" style="font-size:0px"><tbody><tr><td align="center"><p style="margin:0px;border-radius:3px;background-color:rgb(64,158,255)">        <a href="https://twitter.com/mihosoft" style="display:inline-block;border-radius:3px" target="_blank"></a></p></td><td width="2"><br></td><td align="center"><br></td><td width="2"><br></td><td align="center"><br></td></tr></tbody></table></td></tr></tbody></table></td><td valign="top" width="100%"><table cellpadding="0" cellspacing="0"><tbody><tr style="font-weight:600"><td valign="top" style="font-size:0px"><p style="font-size:14px;font-family:Arial,Helvetica,sans-serif;margin:0px;line-height:21px"><span style="color:rgb(64,158,255)">Dr. Michael Hoffer</span></p></td></tr><tr><td valign="top" style="font-size:0px;padding-bottom:5px"><p style="font-size:12px;font-family:Arial,Helvetica,sans-serif;margin:0px;line-height:18px"></p></td></tr><tr><td valign="top" style="font-size:0px;border-top:1px solid rgb(221,221,221);padding-top:5px"><p style="font-size:12px;font-family:Arial,Helvetica,sans-serif;margin:0px;line-height:18px"><span style="padding-right:0px;font-weight:600;color:rgb(64,158,255)">Website:  </span><a href="http://www.mihosoft.eu" target="_blank">www.mihosoft.eu</a></p></td></tr><tr><td valign="top" style="font-size:0px"><p style="font-size:12px;font-family:Arial,Helvetica,sans-serif;margin:0px;line-height:18px"><span style="padding-right:0px;font-weight:600;color:rgb(64,158,255)">Email:      </span><a href="mailto:http://info@michaelhoffer.de" target="_blank">info@michaelhoffer.de</a></p></td></tr><tr><td valign="top" style="font-size:0px"></td></tr></tbody></table>              <table cellpadding="0" cellspacing="0" width="550" style="color:rgb(34,34,34);font-family:Arial,Helvetica,sans-serif;font-size:small"><tbody><tr style="color:rgb(0,0,0);font-family:Times;font-size:medium"><td valign="top"><table cellpadding="0" cellspacing="0"><tbody><tr><td><table cellpadding="0" cellspacing="0" style="font-size:0px"><tbody><tr><td align="center"><p style="margin:0px;border-radius:3px;background-color:rgb(64,158,255)"><a href="https://twitter.com/mihosoft" style="display:inline-block;border-radius:3px" target="_blank"><br><img width="20" height="20" src="https://s3.eu-central-1.amazonaws.com/mysigmail/icons/new/twitter.png" alt="social-icon-twitter" style="display:table-cell;vertical-align:middle;border-radius:3px"></a></p></td><td width="2"></td><td align="center"><p style="margin:0px;border-radius:3px;background-color:rgb(64,158,255)"><a href="https://www.linkedin.com/in/mihosoft/" style="display:inline-block;border-radius:3px" target="_blank"><img width="20" height="20" src="https://s3.eu-central-1.amazonaws.com/mysigmail/icons/new/linkedin.png" alt="social-icon-linkedin" style="display:table-cell;vertical-align:middle;border-radius:3px"></a></p></td><td width="2"></td><td align="center"><p style="margin:0px;border-radius:3px;background-color:rgb(64,158,255)"><a href="https://github.com/miho" style="display:inline-block;border-radius:3px" target="_blank"><img width="20" height="20" src="https://s3.eu-central-1.amazonaws.com/mysigmail/icons/new/github.png" alt="social-icon-github" style="display:table-cell;vertical-align:middle;border-radius:3px"></a></p><div><br></div></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></td></tr><tr style="color:rgb(0,0,0);font-family:Times;font-size:medium"><td colspan="2" style="padding-top:10px"><table cellspacing="0" cellpadding="0" border="0" style="font-size:0px"><tbody><tr><td valign="top" style="border-top:1px solid rgb(221,221,221);padding-top:5px"></td></tr></tbody></table></td></tr></tbody></table></div><div><br></div></div></div></div></div></div></div></div></div></div></div></div></div>