Changes between Initial Version and Version 1 of Ticket #16543


Ignore:
Timestamp:
Jan 5, 2013, 7:48:06 AM (9 years ago)
Author:
bill
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #16543

    • Property Owner changed from Kris Zyp to bill
    • Property Status changed from new to assigned
    • Property Milestone changed from tbd to 1.9
  • Ticket #16543 – Description

    initial v1  
    1313}}}
    1414
    15 When the user clicks the div, the div.click listener creates a new click event on the button.  Although the new (synthetic) click is a new event, since the two events arrive nearly simultaneously, and have the same type the on._fixEvent processing assumes they are the same event.   I.E. lastEvent matches the new event.
     15When the user clicks the <div>, the div.click listener modifies the original evt (by calling stopPropagation), and then creates a new click event on the <button>.  Although the new (synthetic) click is a new event, since the two events arrive nearly simultaneously, and have the same type, the on._fixEvent processing assumes they are the same event.   I.E. lastEvent matches the new event.
    1616
    17 My [30051] tried to fix this, but broke dojo/tests/on/on (for IE).   On IE, evt.target (for native events) is not defined, so I should have been checking for evt.srcElement == lastEvent.srcElement instead.    But then Menu etc. breaks:
    18 
    19    1. focus a !MenuBarItem
    20    2. down arrow to open the Menu
    21    3. down arrow again: nothing happens
    22 
    23 (The automated tests are failing for this reason.)
    24 
    25 The problem happens because after step \#2, Menu.focusedChild is null since Menu never got the focusin notification.   And so far I *think* that's because the keydown handler calls focus(), setting off a new focusin event, before the keydown event has finished processing.   And having two simultaneous events overwhelms the lastEvent code in dojo/on.
     17My [30051] tried to fix this, but broke dojo/tests/on/on (for IE).   On IE, evt.target (for native events) is not defined, so I should have been checking for evt.srcElement.