FLUID-3288: Moving an item with the keyboard "loses" the "ctrl-key is down" status

Metadata

Source
FLUID-3288
Type
Bug
Priority
Critical
Status
Closed
Resolution
Fixed
Assignee
Justin Obara
Reporter
Anastasia Cheetham
Created
2009-10-13T17:26:48.000-0400
Updated
2010-12-13T14:52:37.641-0500
Versions
  1. 1.1.2
  2. 1.2
Fixed Versions
  1. 1.3
Component
  1. Image Reorderer
  2. Reorderer

Description

In Safari on Mac OS X and Windows:
When using the keyboard to move items, once the item is moved once, the fact that the Ctrl key is still held down seems to be forgotten. The arrow key must be pressed again to restore the status, and then yet again to actually move.

To reproduce:
1) Open any reorderer demo, like http://build.fluidproject.org/infusion/demos/reorderer/listReorderer/demo.html
2) Tab to the list, and use the arrow keys to select something to move
3) Press and hold down the Ctrl key - note the styling change, which is appropriate
4) Use the arrow key to move the item once - do NOT release the Ctrl key

  • Note that the item moves properly, but the styling has reverted
    5) Press the arrow key again
  • Note that the styling changes back, but the item doesn't move
    6) Press the arrow key again
  • Note that the item now moves

Environments

Safari 4 on Mac OS X and Windows
Chrome 4 (Win XP)
Ubuntu 9.10, Firefox 3.5.3

Comments

  • Alison Benjamin commented 2009-10-14T10:42:05.000-0400

    I had the same problem in image reorderer so I have added this component to the jira.

  • Justin Obara commented 2010-12-03T13:50:05.851-0500

    Did some investigation using Safari. It appears that this is all related to a blur event being called on the selectable element.

    In Reorderer.js

    Line: 395
    selectable.blur(handleBlur) is called

    Line: 380
    The handleBlur function calls changeSelectedToDefault

    Line: 358
    The changeSelectedToDefault function removes the dragging style

    Line: 218

    There is a conditional to see if the dragging style is applied.
    Since the dragging style was removed, it has to be re-added before the movement can happen.

  • Justin Obara commented 2010-12-03T16:07:43.353-0500

    FLUID-3288.patch.txt has a potential fix. Please let me know if it is good enough to go in. Note I haven't had a chance to write any unit tests yet.

  • Justin Obara commented 2010-12-07T12:53:14.335-0500

    Attached patch (FLUID-3288.v2.patch.txt) which fixes the event namespacing from the previous patch.

  • Justin Obara commented 2010-12-07T14:04:25.845-0500

    Attaching patch FLUID-3288.v3.patch.txt which is the same as FLUID-3288.v2.patch.txt but with unit tests

  • Justin Obara commented 2010-12-07T14:08:42.805-0500

    "Bug Parade Infusion 1.3"

  • Justin Obara commented 2010-12-07T14:08:52.169-0500

    committed the patch, FLUID-3288.v3.patch.txt, but it still needs to be code reviewed. for the bug parade.

  • Antranig Basman commented 2010-12-13T14:40:07.169-0500

    I have reviewed the changes in the patch and the changes seem sound, also the test cases thoroughly exercise the behaviour which is fixed.

  • Justin Obara commented 2010-12-13T14:52:37.633-0500

    I committed, antranig review, it was tested.. time to close