From 4f8a41505461e36e9867bedc66dd0af8135660cd Mon Sep 17 00:00:00 2001 From: Doug Kearns Date: Mon, 27 Aug 2007 12:08:21 +0000 Subject: [PATCH] GNU make 3.80 can't parse "else ifeq" --- Makefile | 4 ++- chrome/content/vimperator/events.js | 48 +++++++++++++++++++------ chrome/content/vimperator/vimperator.js | 1 + 3 files changed, 41 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index 07ea0259..05e124c3 100644 --- a/Makefile +++ b/Makefile @@ -41,12 +41,14 @@ SED = sed ifeq (${OS},Darwin) FIREFOX_DEFAULT = $(wildcard ${HOME}/Library/Application\ Support/Firefox/Profiles/*default) -else ifeq ($(findstring CYGWIN,${OS}),CYGWIN) +else +ifeq ($(findstring CYGWIN,${OS}),CYGWIN) HOME = $(shell cygpath -sm "${USERPROFILE}") FIREFOX_DEFAULT = $(wildcard ${HOME}/Application\ Data/Mozilla/Firefox/Profiles/*default) else FIREFOX_DEFAULT = $(wildcard ${HOME}/.mozilla/firefox/*.default) endif +endif VIMPERATOR_CHROME_EMAIL = ${FIREFOX_DEFAULT}/extensions/vimperator@mozdev.org/chrome/ FOUND_CHROME_UUID = $(dir $(wildcard ${FIREFOX_DEFAULT}/extensions/{*-*-*-*-*}/chrome/vimperator.jar)) diff --git a/chrome/content/vimperator/events.js b/chrome/content/vimperator/events.js index a66b3b3c..8112ba5b 100644 --- a/chrome/content/vimperator/events.js +++ b/chrome/content/vimperator/events.js @@ -72,14 +72,40 @@ function Events() //{{{ vimperator.setMode(); // trick to reshow the mode in the command line }, null); - // Code for keeping track if a popup is currently active - // XXX: does currently not handle submenus + // track if a popup is open or the menubar is active this.openPopupCount = 0; - this.menuBarActive = 100; - window.addEventListener("popupshown", function() { vimperator.log(++vimperator.events.openPopupCount); vimperator.addMode(null, vimperator.modes.MENU); }, true); - window.addEventListener("popuphidden", function() { vimperator.log(--vimperator.events.openPopupCount); vimperator.removeMode(null, vimperator.modes.MENU); }, true); - window.addEventListener("DOMMenuBarActive", function() { vimperator.log(++vimperator.events.menuBarActive);vimperator.addMode(null, vimperator.modes.MENU); }, true); - window.addEventListener("DOMMenuBarInactive", function() { vimperator.log(--vimperator.events.menuBarActive); vimperator.removeMode(null, vimperator.modes.MENU); }, true); + this.menuBarActive = false; + + function enterPopupMode() + { + vimperator.events.openPopupCount++; + //vimperator.log("Open popup window count: " + vimperator.events.openPopupCount, 9); + vimperator.addMode(null, vimperator.modes.MENU); + } + function exitPopupMode() + { + vimperator.events.openPopupCount--; + //vimperator.log("Open popup window count: " + vimperator.events.openPopupCount, 9); + if (vimperator.events.openPopupCount == 0) + vimperator.removeMode(null, vimperator.modes.MENU); + } + function enterMenuMode() + { + this.menuBarActive = true; + //vimperator.log("Menubar is active", 9); + vimperator.addMode(null, vimperator.modes.MENU) + } + function exitMenuMode() + { + this.menuBarActive = false; + //vimperator.log("Menubar is inactive", 9); + vimperator.removeMode(null, vimperator.modes.MENU); + } + + window.addEventListener("popupshown", enterPopupMode, true); + window.addEventListener("popuphidden", exitPopupMode, true); + window.addEventListener("DOMMenuBarActive", enterMenuMode, true); + window.addEventListener("DOMMenuBarInactive", exitMenuMode, true); window.document.addEventListener("DOMTitleChanged", function(event) { @@ -219,10 +245,10 @@ function Events() //{{{ getBrowser().removeProgressListener(this.progressListener); - window.removeEventListener("popupshowing"); - window.removeEventListener("popuphidden"); - window.removeEventListener("DOMMenuBarActive"); - window.removeEventListener("DOMMenuBarInactive"); + window.removeEventListener("popupshowing", enterPopupMode(), true); + window.removeEventListener("popuphidden", exitPopupMode(), true); + window.removeEventListener("DOMMenuBarActive", enterMenuMode(), true); + window.removeEventListener("DOMMenuBarInactive", exitMenuMode(), true); } // This method pushes keys into the event queue from vimperator diff --git a/chrome/content/vimperator/vimperator.js b/chrome/content/vimperator/vimperator.js index 16701bc8..e7435357 100644 --- a/chrome/content/vimperator/vimperator.js +++ b/chrome/content/vimperator/vimperator.js @@ -64,6 +64,7 @@ const vimperator = (function() //{{{ mode_messages[modes.QUICK_HINT] = "quick"; mode_messages[modes.EXTENDED_HINT] = "extended"; mode_messages[modes.ALWAYS_HINT] = "always"; + mode_messages[modes.MENU] = "menu"; var mode = modes.NORMAL; var extended_mode = modes.NONE;