[ 
https://issues.apache.org/jira/browse/FLEX-34344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mihai Chira updated FLEX-34344:
-------------------------------

    Description: 
*Steps to reproduce [DropDownList]*:
1. Import and run the project called "_DropDownListListeningTooMuch.fxp".
2. Click on the dropdown and select an item.
3. Right click on the dropdown, which removes it from stage.
4. Press UP/DOWN.

*Actual behaviour*: the dropdown's _proposedSelectedIndex keeps changing, 
showing the dropdown is still acting on keyboard events.
*Desired behaviour*: once it's off stage, the dropdown should not react to 
keyboard - or any other - events.

*Notes*:
-the same behaviour can be made visible by placing a breakpoint in 
DropDownListBase.keyDownHandler after step 3.
-the dropdown stops reacting to keyboard events when it's removed directly, as 
opposed to when its parent group is removed.
-I noticed that UIComponent adds event listeners for KEY_DOWN, KEY_UP, FOCUS_IN 
and FOCUS_OUT, but never removes them. Is the expectation that components 
themselves will remove these listeners when they're off stage, or is it an 
omission?
-It feels like this issue has memory management implications, though I'm not 
too sure.

----

*Steps to reproduce [NumericStepper]*:
1. Import and run the project called "_NumericStepperListListeningTooMuch.fxp".
2. Click on the numeric stepper.
3. Right click on the numeric stepper, which removes it from stage.
4. Press UP/DOWN.

*Actual behaviour*: the numeric stepper's value keeps changing, showing it's 
still acting on keyboard events.
*Desired behaviour*: once it's off stage, the numeric stepper should not react 
to keyboard - or any other - events.

----

*Steps to reproduce [TextInput]*:
1. Import and run the project called "_TextInputListeningTooMuch.fxp".
2. Type something in the text input.
3. Right click on the text input, which removes it from stage.
4. Continue typing.

*Actual behaviour*: the the text input's contents keep changing, showing it's 
still acting on keyboard events.
*Desired behaviour*: once it's off stage, the text input should not react to 
keyboard - or any other - events.

  was:
*Steps to reproduce [DropDownList]*:
1. Import and run the project called "_DropDownListListeningTooMuch.fxp".
2. Click on the dropdown and select an item.
3. Right click on the dropdown, which removes it from stage.
4. Press UP/DOWN.

*Actual behaviour*: the dropdown's _proposedSelectedIndex keeps changing, 
showing the dropdown is still acting on keyboard events.
*Desired behaviour*: once it's off stage, the dropdown should not react to 
keyboard - or any other - events.

*Notes*:
-the same behaviour can be made visible by placing a breakpoint in 
DropDownListBase.keyDownHandler after step 3.
-the dropdown stops reacting to keyboard events when it's removed directly, as 
opposed to when its parent group is removed.
-I noticed that UIComponent adds event listeners for KEY_DOWN, KEY_UP, FOCUS_IN 
and FOCUS_OUT, but never removes them. Is the expectation that components 
themselves will remove these listeners when they're off stage, or is it an 
omission?

----

*Steps to reproduce [NumericStepper]*:
1. Import and run the project called "_NumericStepperListListeningTooMuch.fxp".
2. Click on the numeric stepper.
3. Right click on the numeric stepper, which removes it from stage.
4. Press UP/DOWN.

*Actual behaviour*: the numeric stepper's value keeps changing, showing it's 
still acting on keyboard events.
*Desired behaviour*: once it's off stage, the numeric stepper should not react 
to keyboard - or any other - events.

----

*Steps to reproduce [TextInput]*:
1. Import and run the project called "_TextInputListeningTooMuch.fxp".
2. Type something in the text input.
3. Right click on the text input, which removes it from stage.
4. Continue typing.

*Actual behaviour*: the the text input's contents keep changing, showing it's 
still acting on keyboard events.
*Desired behaviour*: once it's off stage, the text input should not react to 
keyboard - or any other - events.


> Many components (e.g. TextInput, DropDownList, NumericStepper) keep acting on 
> keyDown and other events after being removed from stage
> -------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FLEX-34344
>                 URL: https://issues.apache.org/jira/browse/FLEX-34344
>             Project: Apache Flex
>          Issue Type: Bug
>          Components: Spark: DropDownList
>    Affects Versions: Apache Flex 4.12.0
>            Reporter: Mihai Chira
>              Labels: easytest
>             Fix For: Apache Flex 4.13.0
>
>         Attachments: _DropDownListListeningTooMuch.fxp, 
> _NumericStepperListListeningTooMuch.fxp, _TextInputListeningTooMuch.fxp
>
>
> *Steps to reproduce [DropDownList]*:
> 1. Import and run the project called "_DropDownListListeningTooMuch.fxp".
> 2. Click on the dropdown and select an item.
> 3. Right click on the dropdown, which removes it from stage.
> 4. Press UP/DOWN.
> *Actual behaviour*: the dropdown's _proposedSelectedIndex keeps changing, 
> showing the dropdown is still acting on keyboard events.
> *Desired behaviour*: once it's off stage, the dropdown should not react to 
> keyboard - or any other - events.
> *Notes*:
> -the same behaviour can be made visible by placing a breakpoint in 
> DropDownListBase.keyDownHandler after step 3.
> -the dropdown stops reacting to keyboard events when it's removed directly, 
> as opposed to when its parent group is removed.
> -I noticed that UIComponent adds event listeners for KEY_DOWN, KEY_UP, 
> FOCUS_IN and FOCUS_OUT, but never removes them. Is the expectation that 
> components themselves will remove these listeners when they're off stage, or 
> is it an omission?
> -It feels like this issue has memory management implications, though I'm not 
> too sure.
> ----
> *Steps to reproduce [NumericStepper]*:
> 1. Import and run the project called 
> "_NumericStepperListListeningTooMuch.fxp".
> 2. Click on the numeric stepper.
> 3. Right click on the numeric stepper, which removes it from stage.
> 4. Press UP/DOWN.
> *Actual behaviour*: the numeric stepper's value keeps changing, showing it's 
> still acting on keyboard events.
> *Desired behaviour*: once it's off stage, the numeric stepper should not 
> react to keyboard - or any other - events.
> ----
> *Steps to reproduce [TextInput]*:
> 1. Import and run the project called "_TextInputListeningTooMuch.fxp".
> 2. Type something in the text input.
> 3. Right click on the text input, which removes it from stage.
> 4. Continue typing.
> *Actual behaviour*: the the text input's contents keep changing, showing it's 
> still acting on keyboard events.
> *Desired behaviour*: once it's off stage, the text input should not react to 
> keyboard - or any other - events.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to