diff options
| author | Stephen Blott | 2016-03-27 12:20:39 +0100 | 
|---|---|---|
| committer | Stephen Blott | 2016-03-27 12:20:43 +0100 | 
| commit | 9c96f750f7c2d22eb0098dcb05b34c51c802e8ac (patch) | |
| tree | 712e74a7d92ff94d9b5bbb8a309c1dd1ee60e647 /pages | |
| parent | f0911e52f0e71c6d2539bdc74a09ff2dbd5ab125 (diff) | |
| download | vimium-9c96f750f7c2d22eb0098dcb05b34c51c802e8ac.tar.bz2 | |
Handle focus events for UI components.
The help-dialog UI component was ignoring requests to "hide" when other
frames are focused (because previously it covered the whole screen, and
no other frame could get the focus).
With f0911e52f0e71c6d2539bdc74a09ff2dbd5ab125, the help dialog no longer
covers the whole screen, so it must listen for and react to
"frameFocused" events.
However, the help dialog should not "hide" when the frame that is
focused is itself!  This required a little extra plumbing.  That
plumbing is helpful, though, because it allows individual UI components
to decide what to do when another frame receives the focus (as opposed
to the previious version, which simply unilaterally sent a "hide"
message).
Diffstat (limited to 'pages')
| -rw-r--r-- | pages/help_dialog.coffee | 11 | ||||
| -rw-r--r-- | pages/vomnibar.coffee | 3 | 
2 files changed, 10 insertions, 4 deletions
| diff --git a/pages/help_dialog.coffee b/pages/help_dialog.coffee index 997ea915..f12b19a3 100644 --- a/pages/help_dialog.coffee +++ b/pages/help_dialog.coffee @@ -84,9 +84,14 @@ HelpDialog =      HelpDialog.dialogElement.classList[addOrRemove] "showAdvanced"  UIComponentServer.registerHandler (event) -> -  return if event.data == "hide" -  HelpDialog.init() -  HelpDialog.show event.data +  switch event.data.name ? event.data +    when "frameFocused" +      HelpDialog.hide() unless event.data.focusFrameId == frameId +    when "hide" +      HelpDialog.hide() +    else +      HelpDialog.init() +      HelpDialog.show event.data  root = exports ? window  root.HelpDialog = HelpDialog diff --git a/pages/vomnibar.coffee b/pages/vomnibar.coffee index 67fca64c..0332b12f 100644 --- a/pages/vomnibar.coffee +++ b/pages/vomnibar.coffee @@ -330,7 +330,8 @@ class BackgroundCompleter        chrome.runtime.sendMessage handler: "selectSpecificTab", id: tabId  UIComponentServer.registerHandler (event) -> -  switch event.data +  switch event.data.name ? event.data +    when "frameFocused" then Vomnibar.hide()      when "hide" then Vomnibar.hide()      when "hidden" then Vomnibar.onHidden()      else Vomnibar.activate event.data | 
