From 35f48d24bf5c85c3992385ff7c860e449ab603b9 Mon Sep 17 00:00:00 2001 From: Anton Khodakivskiy Date: Fri, 3 Jan 2014 16:12:13 +0200 Subject: [PATCH] Fix for popup passthrough mode stucking --- extension/packages/events.coffee | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/extension/packages/events.coffee b/extension/packages/events.coffee index 4d4650e..0195010 100644 --- a/extension/packages/events.coffee +++ b/extension/packages/events.coffee @@ -21,17 +21,19 @@ keyStrFromEvent = (event) -> # Passthrough mode is activated when VimFx should temporarily stop processing keyboard input, for # example when a menu is shown. -passthrough = false +popupPassthrough = false checkPassthrough = (event) -> if event.target.nodeName in ['menupopup', 'panel'] - passthrough = switch event.type + popupPassthrough = switch event.type when 'popupshown' then true when 'popuphidden' then false suppress = false keyListener = (event) -> try - return if passthrough or getPref('disabled') + # Suppress popup passthrough mode if there is no passthrough mode on the root document + return if popupPassthrough and !!utils.getEventRootWindow(event).document.popupNode + return if getPref('disabled') return unless window = utils.getEventCurrentTabWindow(event) return unless vim = vimBucket.get(window) return if vim.blacklisted -- 2.39.3