[Laszlo-checkins] r16825 - in openlaszlo/trunk: laszlo-explorer lps/components/extensions

max@openlaszlo.org max at openlaszlo.org
Mon Jun 28 20:22:36 PDT 2010


Author: max
Date: 2010-06-28 20:22:36 -0700 (Mon, 28 Jun 2010)
New Revision: 16825

Modified:
   openlaszlo/trunk/laszlo-explorer/explore-nav.lzx
   openlaszlo/trunk/lps/components/extensions/html.lzx
Log:
Change 20100628-maxcarlson-X by maxcarlson at friendly on 2010-06-28 09:52:27 PDT
    in /Users/maxcarlson/openlaszlo/trunk-clean
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Fix tabbing into LZX applications loaded in <html/> tags (FF 3.6 DHTML)

Bugs Fixed: LPP-9127 - OL 4.8.0 - DHTML - FF3.6 - Components - Button - Tab key can not work at all

Technical Reviewer: hminsky
QA Reviewer: ptw

Details:  html - Make HTML components focusable by default, to ensure they send onfocus/blur events when tabbed into.  Correct conditional event sending.

explore-nav - Force browser focus to the HTML iframe contents onload and onfocus to ensure tabbing continues into any app loaded there.

Tests: laszlo-explorer/index.html?lzr=dhtml#_lzbookmark=Components|Form%20Components|Button allows tabbing into the app demo on the right, provided the mouse cursor is hovering there (this is by design)



Modified: openlaszlo/trunk/laszlo-explorer/explore-nav.lzx
===================================================================
--- openlaszlo/trunk/laszlo-explorer/explore-nav.lzx	2010-06-29 03:11:37 UTC (rev 16824)
+++ openlaszlo/trunk/laszlo-explorer/explore-nav.lzx	2010-06-29 03:22:36 UTC (rev 16825)
@@ -436,6 +436,17 @@
         }
       ]]>
     </method>
+    <handler name="onload" args="ignore=null">
+      <![CDATA[
+        this.callJavascript('window.focus');
+      ]]>
+    </handler>
+
+    <handler name="onfocus" args="ignore=null">
+      <![CDATA[
+        this.callJavascript('window.focus');
+      ]]>
+    </handler>
   </html>
 
 

Modified: openlaszlo/trunk/lps/components/extensions/html.lzx
===================================================================
--- openlaszlo/trunk/lps/components/extensions/html.lzx	2010-06-29 03:11:37 UTC (rev 16824)
+++ openlaszlo/trunk/lps/components/extensions/html.lzx	2010-06-29 03:22:36 UTC (rev 16825)
@@ -181,8 +181,10 @@
           @access public
     -->
     <attribute name="framename" value="" type="string"/>
+    <attribute name="focusable" value="true" type="boolean"/>
     <event name="onload"/>
     <event name="onready"/>
+    <event name="ontarget"/>
     <setter name="target" args="t">
         if (t == null) return;
         this.target = t;
@@ -205,7 +207,7 @@
         }
         //Debug.write(t);
         this.__updatepos(null);
-        if (this['ontarget']) this.ontarget.sendEvent(t);
+        if (this.ontarget.ready) this.ontarget.sendEvent(t);
     </setter>
 
     <!--- Sets the visibility of the html tag
@@ -216,7 +218,7 @@
     <setter name="visible" args="v">
         this.visible = v;
         if (this['iframeid']) lz.embed.iframemanager.setVisible(this.iframeid, v);
-        if (this['onvisible']) this.onvisible.sendEvent(v);
+        if (this.onvisible.ready) this.onvisible.sendEvent(v);
     </setter>
 
     <!--- Sets the URL the html tag should load
@@ -233,7 +235,7 @@
         } else {
             this.__srcset = s;
         }
-        this.onsrc.sendEvent(s);
+        if (this.onsrc.ready) this.onsrc.sendEvent(s);
     </setter>
 
     <!--- @access private -->
@@ -284,7 +286,7 @@
         if (this['src'] == null) return;
         this.setAttribute('loading', false);
         this.__updatepos(null);
-        this.onload.sendEvent();
+        if (this.onload.ready) this.onload.sendEvent(null);
     </method>
     <method name="bringToFront">
         super.bringToFront();



More information about the Laszlo-checkins mailing list