Opened 13 years ago

Closed 12 years ago

Last modified 12 years ago

#3281 closed defect (fixed)

Stray keyup event after menu closed via keyboard.

Reported by: davidb Owned by: davidb
Priority: high Milestone: 0.9
Component: Dijit Version: 0.9
Keywords: Cc: simonjb, Becky Gibson
Blocked By: Blocking:

Description

Here is a known example:

  1. a popup menu is invoked.
  2. a menu item is selected via the spacebar,
  3. the menu item activation happens when the space key is pressed down,
  4. the menu is closed
  5. focus returns to wherever it was before the menu popped up
    • it appears the browser now has a stray keyup event to deal with...
  6. the problem can occur if the focus returns to a dom node.
  7. the browser maps the stray keyup event to the currently focused node.
  8. if the newly focused node has an onclick handler, it will fire.
    • presumably a space bar keyup event can fire an onclick generally (depends on browser?).
    • presumably if the node is listening for keyup events this can be a potential problem for any keypress event that closes the menu.

This is confirmed to happen at least in FF2.

(I think this blocks 3062)

Attachments (1)

3281-stray-event.diff (2.6 KB) - added by davidb 12 years ago.
fix (unpolished) posted for discussion

Download all attachments as: .zip

Change History (10)

comment:1 Changed 13 years ago by davidb

Catch me, davidb on #dojo for more details.

comment:2 Changed 13 years ago by davidb

To test this in dijit/form/test_Button.html:

In FF2 on windows or linux:

  1. tab to the edit drop down button
  2. invoke via enter or space key
  3. select a menuitem (the default/first one) via space key
  4. note the menu re-pops up after closing.

I believe this is because of a stray space key up event (described in the ticket above).

comment:3 Changed 12 years ago by bill

Milestone: 0.9
Owner: changed from bill to davidb

OK, just mailed David... I'd like you to try firing the menu on onkeyup and see if that can solve this problem elegantly.

comment:4 Changed 12 years ago by davidb

Menus appear to have been recently broken?

comment:5 Changed 12 years ago by davidb

Note broken menus has ticket 3433

Changed 12 years ago by davidb

Attachment: 3281-stray-event.diff added

fix (unpolished) posted for discussion

comment:6 Changed 12 years ago by davidb

The "fix" I just posted (for discussion) reintroduces #3428 because drop down was fixed to cause the popup on a key down event.

Things should only popup or close on a key down XOR a key up. We need to decide which.

comment:7 Changed 12 years ago by davidb

Status: newassigned

comment:8 Changed 12 years ago by davidb

Resolution: fixed
Status: assignedclosed

Fixed via [9304]

comment:9 Changed 12 years ago by bill

Resolution: fixed

(In [9731]) Just some fixup to properly support the two signatures of dijit.focus(), even if the argument is dijit.focus({ node: null, ... }).

Fixes #3281.

Note: See TracTickets for help on using tickets.