[Laszlo-checkins] r12771 - openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9

max@openlaszlo.org max at openlaszlo.org
Fri Feb 6 19:27:47 PST 2009


Author: max
Date: 2009-02-06 19:27:45 -0800 (Fri, 06 Feb 2009)
New Revision: 12771

Modified:
   openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzMouseKernel.as
Log:
Change 20090206-maxcarlson-y by maxcarlson at Bank.local on 2009-02-06 19:03:11 PST
    in /Users/maxcarlson/openlaszlo/trunk-clean
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Send mouseup events when mouse goes up outside the app in swf9

Bugs Fixed: LPP-7724 - Mouse events behave wrong in opaque mode (FireFox)

Technical Reviewer: andre.bargull at udo.edu
QA Reviewer: hminsky

Details: Add mouseLeft flag to track whether the mouse left the app.  Send a mouseup event if the mouse left the app, the button is still down and there is a view to receive the event (lastMouseDown)

Tests: See LPP-7724.



Modified: openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzMouseKernel.as
===================================================================
--- openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzMouseKernel.as	2009-02-07 03:12:15 UTC (rev 12770)
+++ openlaszlo/trunk/WEB-INF/lps/lfc/kernel/swf9/LzMouseKernel.as	2009-02-07 03:27:45 UTC (rev 12771)
@@ -1,7 +1,7 @@
 /**
   * LzMouseKernel.as
   *
-  * @copyright Copyright 2001-2008 Laszlo Systems, Inc.  All Rights Reserved.
+  * @copyright Copyright 2001-2009 Laszlo Systems, Inc.  All Rights Reserved.
   *            Use is subject to license terms.
   *
   * @topic Kernel
@@ -26,6 +26,7 @@
     static var __callback = null;
     static var __scope = null;
     static var __lastMouseDown = null;
+    static var __mouseLeft:Boolean = false;
     static var __listeneradded:Boolean = false ;
 
     /**
@@ -53,6 +54,13 @@
             LzMouseKernel.__lastMouseDown.__globalmouseup(event);
             __lastMouseDown = null;
         } else {
+            if (__mouseLeft && event.buttonDown && LzMouseKernel.__lastMouseDown != null) {
+                __mouseLeft = false;
+                //Debug.write(eventname, event.buttonDown, LzMouseKernel.__lastMouseDown);
+                var ev = new MouseEvent('mouseup');
+                LzMouseKernel.__lastMouseDown.__globalmouseup(ev);
+                LzMouseKernel.__lastMouseDown = null;
+            }
             LzMouseKernel.__sendEvent(null, eventname);
         }
     }
@@ -60,6 +68,7 @@
     // handles MOUSE_LEAVES event
     static function __mouseLeavesHandler(event:Event):void {
         var eventname = 'on' + event.type.toLowerCase();
+        LzMouseKernel.__mouseLeft = true;
         LzMouseKernel.__sendEvent(null, eventname);
     }
 



More information about the Laszlo-checkins mailing list