|
|
|
[
Permlink
| « Hide
]
Jennifer Schachter - 25/Apr/07 02:21 PM
<inputtext> also fires two onblur and two onfocus events.
Verified the <inputtext> variation, too, and changed summary therefore.
@Frisco
As <inputtext> is also affected, you should probably change the field "Component/s" from "Components - LZ" to "LFC" to give this issue at least somehow a higher priority. Author: max
Date: 2007-08-17 15:29:20 -0700 (Fri, 17 Aug 2007) New Revision: 6132 Modified: openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/kernel/swf/LzInputTextSprite.as openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/views/LzInputText.lzs Log: Change 20070817-maxcarlson-I by maxcarlson@plastik on 2007-08-17 12:08:41 PDT in /Users/maxcarlson/openlaszlo/wafflecone for http://svn.openlaszlo.org/openlaszlo/branches/wafflecone Summary: Fix duplicate onfocus and onblur events New Features: Bugs Fixed: Technical Reviewer: promanik QA Reviewer: jcrowley Doc Reviewer: (pending) Documentation: Release Notes: Details: LzInputTextSprite.as - Fix test for current focus in __handlelostFocus(). LzInputTextSprite.lzs - Track current focus/blur state to avoid sending duplicate events. Tests: Testcase from Modified: openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/kernel/swf/LzInputTextSprite.as =================================================================== --- openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/kernel/swf/LzInputTextSprite.as 2007-08-17 22:22:51 UTC (rev 6131) +++ openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/kernel/swf/LzInputTextSprite.as 2007-08-17 22:29:20 UTC (rev 6132) @@ -256,8 +256,8 @@ * @access private */ TextField.prototype.__handlelostFocus = function ( ){ - //Debug.write('lostfocus', this.__lzview.hasFocus, dunno, LzFocus.lastfocus, this, LzFocus.getFocus(), this.__lzview); - if (this.__lzview.hasFocus) { + //Debug.write('lostfocus', this.__lzview.hasFocus, LzFocus.lastfocus, this, LzFocus.getFocus(), this.__lzview, this.__lzview.inputtextevent); + if (this.__lzview == LzFocus.getFocus()) { LzFocus.clearFocus(); if (this.__lzview) this.__lzview.inputtextevent('onblur'); } Modified: openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/views/LzInputText.lzs =================================================================== --- openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/views/LzInputText.lzs 2007-08-17 22:22:51 UTC (rev 6131) +++ openlaszlo/branches/wafflecone/WEB-INF/lps/lfc/views/LzInputText.lzs 2007-08-17 22:29:20 UTC (rev 6132) @@ -162,20 +162,27 @@ /** @access private */ function _gotFocusEvent(){ + this._focused = true; this.sprite.gotFocus(); } /** @access private */ function _gotBlurEvent(){ + this._focused = false; this.sprite.gotBlur(); } // Receive input text events from sprite function inputtextevent (eventname, value){ + //Debug.warn('inputtextevent', eventname, value); + if (eventname == 'onfocus' && this._focused) return; + if (eventname == 'onblur' && ! this._focused) return; if (eventname == 'onfocus' || eventname == 'onmousedown') { + this._focused = true; if (LzFocus.getFocus() != this) { var tabdown = LzKeys.isKeyDown('tab'); LzFocus.setFocus(this, tabdown); + return; } } else if (eventname == 'onchange') { //multiline resizable fields adjust their height @@ -186,7 +193,9 @@ } if (this.ontext.ready) this.ontext.sendEvent(value); return; - } + } else if (eventname == 'onblur') { + this._focused = false; + } if (this[eventname].ready) this[eventname].sendEvent(value); } _______________________________________________ Laszlo-checkins mailing list Laszlo-checkins@openlaszlo.org http://www.openlaszlo.org/mailman/listinfo/laszlo-checkins (wafflecone branch local build r6169)
Test now works in swf7, swf8, and dhtml. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||