diff options
-rw-r--r-- | common/content/events.js | 36 | ||||
-rw-r--r-- | common/content/liberator.xul | 4 | ||||
-rw-r--r-- | common/content/tabs.js | 6 | ||||
-rw-r--r-- | common/content/ui.js | 2 |
4 files changed, 26 insertions, 22 deletions
diff --git a/common/content/events.js b/common/content/events.js index f79a1cd9..1ad20b0b 100644 --- a/common/content/events.js +++ b/common/content/events.js @@ -811,7 +811,7 @@ function Events() //{{{ // This method pushes keys into the event queue from liberator // it is similar to vim's feedkeys() method, but cannot cope with - // 2 partially feeded strings, you have to feed one parsable string + // 2 partially-fed strings, you have to feed one parsable string // // @param keys: a string like "2<C-f>" to pass // if you want < to be taken literally, prepend it with a \\ @@ -829,6 +829,8 @@ function Events() //{{{ try { + liberator.threadYield(true, true); + noremap = !!noremap; for (var i = 0; i < keys.length; i++) @@ -1259,7 +1261,8 @@ function Events() //{{{ if (key == "<C-c>" && !event.isMacro) { events.feedingKeys = false; - setTimeout(function () { liberator.echomsg("Canceled playback of macro '" + lastMacro + "'") }, 100); + if (lastMacro) + setTimeout(function () { liberator.echomsg("Canceled playback of macro '" + lastMacro + "'") }, 100); event.preventDefault(); event.stopPropagation(); return true; @@ -1527,23 +1530,18 @@ function Events() //{{{ // TODO: move to buffer.js? progressListener: { - QueryInterface: function (aIID) - { - if (aIID.equals(Components.interfaces.nsIWebProgressListener) || - aIID.equals(Components.interfaces.nsIXULBrowserWindow) || // for setOverLink(); - aIID.equals(Components.interfaces.nsISupportsWeakReference) || - aIID.equals(Components.interfaces.nsISupports)) - return this; - throw Components.results.NS_NOINTERFACE; - }, + QueryInterface: XPCOMUtils.generateQI([ + Components.interfaces.nsIWebProgressListener, + Components.interfaces.nsIXULBrowserWindow + ]), // XXX: function may later be needed to detect a canceled synchronous openURL() onStateChange: function (webProgress, request, flags, status) { + const nsIWebProgressListener = Components.interfaces.nsIWebProgressListener; // STATE_IS_DOCUMENT | STATE_IS_WINDOW is important, because we also // receive statechange events for loading images and other parts of the web page - if (flags & (Components.interfaces.nsIWebProgressListener.STATE_IS_DOCUMENT | - Components.interfaces.nsIWebProgressListener.STATE_IS_WINDOW)) + if (flags & (nsIWebProgressListener.STATE_IS_DOCUMENT | nsIWebProgressListener.STATE_IS_WINDOW)) { // This fires when the load event is initiated // only thrown for the current tab, not when another tab changes @@ -1624,11 +1622,13 @@ function Events() //{{{ } }, - // stub functions for the interfaces - setJSStatus: function (status) { ; }, - setJSDefaultStatus: function (status) { ; }, - setDefaultStatus: function (status) { ; }, - onLinkIconAvailable: function () { ; } + // nsIXULBrowserWindow stubs + setJSDefaultStatus: function (status) {}, + setJSStatus: function (status) {}, + + // Stub for something else, presumably. Not in any documented + // interface. + onLinkIconAvailable: function () {} }, // TODO: move to options.js? diff --git a/common/content/liberator.xul b/common/content/liberator.xul index a2e67338..b8003cfd 100644 --- a/common/content/liberator.xul +++ b/common/content/liberator.xul @@ -59,11 +59,11 @@ the terms of any one of the MPL, the GPL or the LGPL. <commandset id="onVimperatorFocus" commandupdater="true" events="focus" - oncommandupdate="if (typeof liberator.modules.events != 'undefined') liberator.modules.events.onFocusChange(event);"/> + oncommandupdate="if (liberator.modules.events != undefined) liberator.modules.events.onFocusChange(event);"/> <commandset id="onVimperatorSelect" commandupdater="true" events="select" - oncommandupdate="if (typeof liberator.modules.events != 'undefined') liberator.modules.events.onSelectionChange(event);"/> + oncommandupdate="if (liberator.modules.events != undefined) liberator.modules.events.onSelectionChange(event);"/> <!-- As of Firefox 3.1pre, <iframe>.height changes do not seem to have immediate effect, therefore we need to put them into a <vbox> for which that works just fine --> diff --git a/common/content/tabs.js b/common/content/tabs.js index 4b521d2d..d82899df 100644 --- a/common/content/tabs.js +++ b/common/content/tabs.js @@ -663,14 +663,16 @@ function Tabs() //{{{ return store.options; }, - get localStore() + getLocalStore: function (tab) { - let tab = this.getTab(); + let tab = this.getTab(tab); if (!tab.liberatorStore) tab.liberatorStore = {}; return tab.liberatorStore; }, + get localStore() this.getLocalStore(), + get tabStrip() { if (config.hostApplication == "Firefox") diff --git a/common/content/ui.js b/common/content/ui.js index 5a8cf656..1c000ade 100644 --- a/common/content/ui.js +++ b/common/content/ui.js @@ -631,6 +631,8 @@ function CommandLine() //{{{ arg = util.objectToString(arg, useColor); else if (typeof arg == "string" && /\n/.test(arg)) arg = <span highlight="CmdOutput">{arg}</span>; + else + arg = String(arg); return arg; } |