The various deselect() methods do different things:
swf8:
- clears the native flash focus
swf9+:
- sets the selection size to zero
dhtml:
- hides the click-divs, restores cancelKeys, etc.

Therefore simply removing the call to deselect() sounds a bit wrong.

---

In general, focus handling for the swf runtimes is implemented as follows:
(1) Explicit focus changes by Lz.Focus:
a) "onfocus" ::
lz.InputText#_gotFocusEvent() -> LzInputTextSprite#gotFocus() -> LzInputTextSprite#select() [followed by instructions in 2a]
b) "onblur" ::
lz.InputText#_gotBlurEvent() -> LzInputTextSprite#gotBlur() -> LzInputTextSprite#deselect() [followed by instructions in 2b]

(2) Native focus changes:
a) "onSetFocus" / "FOCUS_IN" ::
LzInputTextSprite#__gotFocus() -> lz.InputText#inputtextevent('onfocus') -> Lz.Focus.setFocus() [followed by instructions in 1a]
b) "onKillFocus" / "FOCUS_OUT" ::
LzInputTextSprite#__lostFocus() -> lz.InputText#inputtextevent('onblur') -> Lz.Focus.clearFocus() [followed by instructions in 1b]

swf8 defers the call to inputtextevent('onblur'), see __handlelostFocus(). Maybe the intent was to make it possible to query the selection before the native focus is removed, here's the comment from that function:
/**
* must be called after an idle event to prevent the selection from being
  * cleared prematurely, e.g. before a button click.  If the selection is
  * cleared, the button doesn't send mouse events.
  * @access private
  */
The first sentence indicates this is about querying the selection. But I'm not sure about the second sentence, maybe someone else can explain what it means...




On 12/5/2010 6:43 AM, Henry Minsky wrote:

Change hqm-20101205-R9I by [email protected] on 2010-12-05 00:39:47 EST
     in /Users/hqm/openlaszlo/trunk2
     for http://svn.openlaszlo.org/openlaszlo/trunk

Summary:  LzInputTextSprite.gotBlur should not clear selection

New Features:

Bugs Fixed: LPP-9562

Technical Reviewer: max
QA Reviewer: ffeng
Doc Reviewer: (pending)

Documentation:

Release Notes:

Overview:


Details:

This change makes it so that LzInputTextSprite.gotBlur no longer clears the 
selection


Tests:

test case from bug report

Files:

M       WEB-INF/lps/lfc/kernel/swf/LzInputTextSprite.as
M       WEB-INF/lps/lfc/kernel/dhtml/LzInputTextSprite.js
M       WEB-INF/lps/lfc/kernel/swf9/LzInputTextSprite.as

Changeset: http://svn.openlaszlo.org/openlaszlo/patches/hqm-20101205-R9I.tar


Reply via email to