From be5205e6153e39d7c08f229c2b9183fab153f823 Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Fri, 29 Jan 2016 14:16:20 +0000 Subject: Wait-for-enter: for filtered hints. This affects filtered hints only. If a hint is triggered because the user typed the link text, then: - highlight the link - but wait until the user types `Enter` before activating the link. --- lib/dom_utils.coffee | 10 +++++++--- lib/settings.coffee | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/dom_utils.coffee b/lib/dom_utils.coffee index 7473df17..db90c43a 100644 --- a/lib/dom_utils.coffee +++ b/lib/dom_utils.coffee @@ -262,8 +262,7 @@ DomUtils = # but Webkit will. Dispatching a click on an input box does not seem to focus it; we do that separately element.dispatchEvent(mouseEvent) - # momentarily flash a rectangular border to give user some visual feedback - flashRect: (rect) -> + addFlashRect: (rect) -> flashEl = @createElement "div" flashEl.id = "vimiumFlash" flashEl.className = "vimiumReset" @@ -271,7 +270,12 @@ DomUtils = flashEl.style.top = rect.top + window.scrollY + "px" flashEl.style.width = rect.width + "px" flashEl.style.height = rect.height + "px" - document.documentElement.appendChild(flashEl) + document.documentElement.appendChild flashEl + flashEl + + # momentarily flash a rectangular border to give user some visual feedback + flashRect: (rect) -> + flashEl = @addFlashRect rect setTimeout((-> DomUtils.removeElement flashEl), 400) suppressPropagation: (event) -> diff --git a/lib/settings.coffee b/lib/settings.coffee index 79ee04a9..a33a88e8 100644 --- a/lib/settings.coffee +++ b/lib/settings.coffee @@ -170,6 +170,7 @@ Settings = newTabUrl: "chrome://newtab" grabBackFocus: false regexFindMode: false + waitForEnterForFilteredHints: true # Once properly implmented, this will default to false. settingsVersion: Utils.getCurrentVersion() helpDialog_showAdvancedCommands: false -- cgit v1.2.3 From ad71e692fd0254b430c38b47b6c5a9ab3e08290b Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Mon, 1 Feb 2016 12:16:32 +0000 Subject: Wait-for-enter: add necessary option support. --- lib/settings.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/settings.coffee b/lib/settings.coffee index a33a88e8..68333cae 100644 --- a/lib/settings.coffee +++ b/lib/settings.coffee @@ -170,7 +170,7 @@ Settings = newTabUrl: "chrome://newtab" grabBackFocus: false regexFindMode: false - waitForEnterForFilteredHints: true # Once properly implmented, this will default to false. + waitForEnterForFilteredHints: false settingsVersion: Utils.getCurrentVersion() helpDialog_showAdvancedCommands: false -- cgit v1.2.3 From eada4a7affd175821f668da1116cc0b66812ad59 Mon Sep 17 00:00:00 2001 From: Stephen Blott Date: Fri, 12 Feb 2016 16:45:29 +0000 Subject: Wait-for-enter: default to "true" for new users. For existing users, the default is "false"; but for new users wait-for-enter defaults to "true". --- lib/settings.coffee | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/settings.coffee b/lib/settings.coffee index 68333cae..da45eb61 100644 --- a/lib/settings.coffee +++ b/lib/settings.coffee @@ -170,7 +170,7 @@ Settings = newTabUrl: "chrome://newtab" grabBackFocus: false regexFindMode: false - waitForEnterForFilteredHints: false + waitForEnterForFilteredHints: false # Note: this defaults to true for new users; see below. settingsVersion: Utils.getCurrentVersion() helpDialog_showAdvancedCommands: false @@ -182,6 +182,15 @@ Settings.init() # Perform migration from old settings versions, if this is the background page. if Utils.isBackgroundPage() + if not Settings.get "settingsVersion" + # This is a new install. For some settings, we retain a legacy default behaviour for existing users but + # use a non-default behaviour for new users. + + # For waitForEnterForFilteredHints, we (smblott) think that "true" gives a better UX; see #1950. However, + # forcing the change on existing users would be unnecessarily disruptive. So, only new users default to + # "true". + Settings.set "waitForEnterForFilteredHints", true + # We use settingsVersion to coordinate any necessary schema changes. Settings.set("settingsVersion", Utils.getCurrentVersion()) -- cgit v1.2.3