diff --git a/common/content/completion.js b/common/content/completion.js index 32e0a446..59e61fe9 100644 --- a/common/content/completion.js +++ b/common/content/completion.js @@ -1300,7 +1300,6 @@ function Completion() //{{{ cmdContext.completions = compObject.items; } } - context.updateAsync = true; } }, diff --git a/common/content/hints.js b/common/content/hints.js index 49e058d2..d1536915 100644 --- a/common/content/hints.js +++ b/common/content/hints.js @@ -47,7 +47,6 @@ function Hints() //{{{ var pageHints = []; var validHints = []; // store the indices of the "hints" array with valid elements - var escapeNumbers = false; // escape mode for numbers. true -> treated as hint-text var activeTimeout = null; // needed for hinttimeout > 0 var canUpdate = false; @@ -89,7 +88,7 @@ function Hints() //{{{ validHints = []; canUpdate = false; docs = []; - escapeNumbers = false; + hints.escNumbers = false; if (activeTimeout) clearTimeout(activeTimeout); @@ -98,7 +97,7 @@ function Hints() //{{{ function updateStatusline() { - statusline.updateInputBuffer((escapeNumbers ? mappings.getMapLeader() : "") + (hintNumber || "")); + statusline.updateInputBuffer((hints.escNumbers ? mappings.getMapLeader() : "") + (hintNumber || "")); } function generate(win) @@ -724,8 +723,8 @@ function Hints() //{{{ break; case mappings.getMapLeader(): - escapeNumbers = !escapeNumbers; - if (escapeNumbers && usedTabKey) // hintNumber not used normally, but someone may wants to toggle + hints.escNumbers = !hints.escNumbers; + if (hints.escNumbers && usedTabKey) // hintNumber not used normally, but someone may wants to toggle hintNumber = 0; // s ? reset. Prevent to show numbers not entered. updateStatusline(); @@ -734,18 +733,6 @@ function Hints() //{{{ default: if (/^\d$/.test(key)) { - // FIXME: Kludge. - if (escapeNumbers) - { - let cmdline = document.getElementById("liberator-commandline-command"); - let start = cmdline.selectionStart; - let end = cmdline.selectionEnd; - cmdline.value = cmdline.value.substr(0, start) + key + cmdline.value.substr(start); - cmdline.selectionStart = start + 1; - cmdline.selectionEnd = end + 1; - return; - } - prevInput = "number"; var oldHintNumber = hintNumber; @@ -779,7 +766,7 @@ function Hints() //{{{ // the hint after a timeout, as the user might have wanted to follow link 34 if (hintNumber > 0 && hintNumber * 10 <= validHints.length) { - var timeout = options["hinttimeout"]; + let timeout = options["hinttimeout"]; if (timeout > 0) activeTimeout = setTimeout(function () { processHints(true); }, timeout); diff --git a/common/content/modes.js b/common/content/modes.js index fbf416df..15b23dd7 100644 --- a/common/content/modes.js +++ b/common/content/modes.js @@ -86,10 +86,9 @@ const modes = (function () //{{{ case modes.VISUAL: if (newMode == modes.CARET) { - // clear any selection made - var selection = window.content.getSelection(); try - { // a simple if (selection) does not work + { // clear any selection made; a simple if (selection) does not work + let selection = window.content.getSelection(); selection.collapseToStart(); } catch (e) {} @@ -113,7 +112,7 @@ const modes = (function () //{{{ if (newMode == modes.NORMAL) { // disable caret mode when we want to switch to normal mode - var value = options.getPref("accessibility.browsewithcaret", false); + let value = options.getPref("accessibility.browsewithcaret", false); if (value) options.setPref("accessibility.browsewithcaret", false); @@ -124,7 +123,7 @@ const modes = (function () //{{{ let urlbar = document.getElementById("urlbar"); if (!urlbar || focus != urlbar.inputField) liberator.focusContent(false); - }, 100); + }, 0); } } diff --git a/common/content/ui.js b/common/content/ui.js index ca0da405..af165807 100644 --- a/common/content/ui.js +++ b/common/content/ui.js @@ -102,7 +102,7 @@ function CommandLine() //{{{ let self = this; context.onUpdate = function () { - self.reset(true); + self._reset(); }; this.context = context; this.editor = context.editor; @@ -165,7 +165,9 @@ function CommandLine() //{{{ this.context.reset(); this.context.tabPressed = tabPressed; liberator.triggerCallback("complete", currentExtendedMode, this.context); + this.context.updateAsync = true; this.reset(show, tabPressed); + this.wildIndex = 0; }, preview: function preview() @@ -230,7 +232,6 @@ function CommandLine() //{{{ reset: function reset(show) { - this.wildtypes = this.wildmode.values; this.wildIndex = -1; this.prefix = this.context.value.substring(0, this.start); @@ -244,6 +245,22 @@ function CommandLine() //{{{ this.wildIndex = 0; } + this.wildtypes = this.wildmode.values; + this.preview(); + }, + + _reset: function _reset() + { + this.prefix = this.context.value.substring(0, this.start); + this.value = this.context.value.substring(this.start, this.caret); + this.suffix = this.context.value.substring(this.caret); + + this.itemList.reset(); + this.itemList.selectItem(this.selected); + + this.wildIndex = 0; + this.wildtypes = this.wildmode.values; + this.preview(); }, @@ -288,7 +305,7 @@ function CommandLine() //{{{ { // Check if we need to run the completer. if (this.context.waitingForTab || this.wildIndex == -1) - this.complete(true, true); + this.complete(false, true); if (this.items.length == 0) { @@ -350,7 +367,8 @@ function CommandLine() //{{{ completions.itemList.show(); }); - var tabTimer = new util.Timer(10, 10, function tabTell(event) { + var tabTimer = new util.Timer(0, 0, function tabTell(event) { + liberator.dump("tabTell"); if (completions) completions.tab(event.shiftKey); }); @@ -1076,7 +1094,8 @@ function CommandLine() //{{{ // user pressed TAB to get completions of a command else if (key == "" || key == "") { - tabTimer.tell(event); + // tabTimer.tell(event); + completions.tab(event.shiftKey); // prevent tab from moving to the next field event.preventDefault(); event.stopPropagation();