File tree 1 file changed +25
-0
lines changed
1 file changed +25
-0
lines changed Original file line number Diff line number Diff line change @@ -34,6 +34,9 @@ class ScreenImpl extends ScreenBase {
34
34
return false;
35
35
});
36
36
*/
37
+
38
+ Browser .document .documentElement .addEventListener (" mouseleave" , onMouseLeave );
39
+ Browser .document .documentElement .addEventListener (" mouseenter" , onMouseEnter );
37
40
}
38
41
39
42
private override function set_options (value : ToolkitOptions ): ToolkitOptions {
@@ -417,6 +420,26 @@ class ScreenImpl extends ScreenBase {
417
420
return __onMouseEvent (event );
418
421
}
419
422
423
+ private var _lastX : Null <Float > = null ;
424
+ private var _lastY : Null <Float > = null ;
425
+ private function onMouseLeave () {
426
+ dispatchMouseUp ();
427
+ }
428
+
429
+ private function onMouseEnter () {
430
+ dispatchMouseUp ();
431
+ }
432
+
433
+ private function dispatchMouseUp () {
434
+ if (_lastX != null && _lastY != null ) {
435
+ var fn = _mapping .get (MouseEvent .MOUSE_UP );
436
+ if (fn != null ) {
437
+ var event = new MouseEvent (MouseEvent .MOUSE_UP );
438
+ fn (event );
439
+ }
440
+ }
441
+ }
442
+
420
443
private function __onMouseEvent (event : js.html. Event ) {
421
444
var which : Int = - 1 ;
422
445
var sx : Float = - 1 ;
@@ -466,6 +489,8 @@ class ScreenImpl extends ScreenBase {
466
489
467
490
if (type != null ) {
468
491
var fn = _mapping .get (type );
492
+ _lastX = sx ;
493
+ _lastY = sy ;
469
494
if (fn != null ) {
470
495
var mouseEvent = new MouseEvent (type );
471
496
mouseEvent ._originalEvent = event ;
You can’t perform that action at this time.
0 commit comments