diff options
| author | Stephen Blott | 2015-03-08 10:03:08 +0000 |
|---|---|---|
| committer | Stephen Blott | 2015-03-08 10:03:08 +0000 |
| commit | e49b701fb813e147a187058fe7eda4bfa2d40bec (patch) | |
| tree | 9aa44558ca52fa2674a4507f8f605085d86dc14f | |
| parent | ae60abb94665446200db8a750bbc1362895d04d2 (diff) | |
| download | vimium-e49b701fb813e147a187058fe7eda4bfa2d40bec.tar.bz2 | |
Better documentation of closing sequence for vomnibar.
| -rw-r--r-- | pages/vomnibar.coffee | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/pages/vomnibar.coffee b/pages/vomnibar.coffee index 906aa0f3..06ec9ee9 100644 --- a/pages/vomnibar.coffee +++ b/pages/vomnibar.coffee @@ -61,11 +61,21 @@ class VomnibarUI setForceNewTab: (forceNewTab) -> @forceNewTab = forceNewTab + # The sequence of events when the vomnibar is hidden is as follows: + # 1. Post a "hide" message to the host page. + # 2. The host page hides the vomnibar and posts back a "hidden" message. + # 3. Only once "hidden" message is received here is any required action (callback) invoked (in onHidden). + # This ensures that the vomnibar is actually hidden, and avoids flicker after opening a link in a new tab + # (see #1485). hide: (callback = null) -> UIComponentServer.postMessage "hide" @reset() @postHideCallback = callback + onHidden: -> + @postHideCallback?() + @postHideCallback = null + reset: -> @completionList.style.display = "" @input.value = "" @@ -73,12 +83,6 @@ class VomnibarUI @completions = [] @selection = @initialSelectionValue - # Called after the vomnibar has been hidden. We wait until after the vomnibar has been hidden to avoid - # vomnibar flicker (see #1485). - onHidden: -> - @postHideCallback?() - @postHideCallback = null - updateSelection: -> # We retain global state here (previousAutoSelect) to tell if a search item (for which autoSelect is set) # has just appeared or disappeared. If that happens, we set @selection to 0 or -1. |
