Close old menu properly when a different type of menu is opened.

This commit is contained in:
ccd0 2015-02-07 10:52:20 -08:00
parent adc970c9cb
commit 84dc51e2cf

View File

@ -46,15 +46,15 @@ UI = do ->
# Close if it's already opened. # Close if it's already opened.
# Reopen if we clicked on another button. # Reopen if we clicked on another button.
previousButton = lastToggledButton previousButton = lastToggledButton
@close() currentMenu.close()
return if previousButton is button return if previousButton is button
return unless @entries.length return unless @entries.length
@open button, data @open button, data
open: (button, data) -> open: (button, data) ->
menu = @makeMenu() menu = @menu = @makeMenu()
currentMenu = menu currentMenu = @
lastToggledButton = button lastToggledButton = button
@entries.sort (first, second) -> @entries.sort (first, second) ->
@ -65,7 +65,7 @@ UI = do ->
$.addClass lastToggledButton, 'active' $.addClass lastToggledButton, 'active'
$.one d, 'click scroll CloseMenu', @close $.on d, 'click scroll CloseMenu', @close
$.add button, menu $.add button, menu
# Position # Position
@ -116,10 +116,12 @@ UI = do ->
return return
close: => close: =>
$.rm currentMenu $.rm @menu
delete @menu
$.rmClass lastToggledButton, 'active' $.rmClass lastToggledButton, 'active'
currentMenu = null currentMenu = null
lastToggledButton = null lastToggledButton = null
$.off d, 'click scroll CloseMenu', @close
findNextEntry: (entry, direction) -> findNextEntry: (entry, direction) ->
entries = [entry.parentNode.children...] entries = [entry.parentNode.children...]
@ -127,7 +129,7 @@ UI = do ->
entries[entries.indexOf(entry) + direction] entries[entries.indexOf(entry) + direction]
keybinds: (e) => keybinds: (e) =>
entry = $ '.focused', currentMenu entry = $ '.focused', @menu
while subEntry = $ '.focused', entry while subEntry = $ '.focused', entry
entry = subEntry entry = subEntry