Can CheerpJ extend Java mouseDragged actions outside an applet frame?

72 Views Asked by At

In this page the CheerpJ conversion of the applet in this page (with identical byte-code) does not seem to recognize mouse dragging past the applet frame boundary. It would be nice if that were possible.

Is this just a problem with my client-side setup (Linux Debian 9.2), or do others see the same behvior?

What is very strange, is that the original behavior is converted correctly on the not-supported-by-CheerpJ iphone browsers (I have checked safari and firefox there). Could investigation of this fact help CheerpJ developers understand how to make the MouseMotionListener interface recognize mouse dragging anywhere on the screen, not just within the applet frame?

Maybe this is impossible, but I thought it was worth asking.

Edit: Changed title to be less negative about CheerpJ (which overall I find almost too cool to be true!) and more reflective of actual the question.

1

There are 1 best solutions below

1
alexp On BEST ANSWER

The mouseDragged method is correctly implemented to the best of our understanding. The Java event is derived from the mousemove JavaScript event which is not delivered when the mouse is outside of the applet surface. With the legacy plugin applets are displayed on native windows which have different behavior.

It could be possible that using different JavaScript events, like mousedrag would make CheerpJ behavior more similar to native, but reworking this without causing regressions would require significant work and it is not currently a priority for us. Especially considering that our customers normally have full screen Swing applets which cannot exhibit the problem

On mobile devices the touchmove event is used, which is probably what causes the difference you see.

If you want to report a bug you can do it here: https://github.com/leaningtech/cheerpj-meta/issues