From 33a50572afc4cf279a5c175c62dfbea714642a93 Mon Sep 17 00:00:00 2001 From: Ben Spencer Date: Sun, 22 Dec 2013 13:53:05 +0000 Subject: [PATCH] isearch.js: add isearch_scroll_center_vertically user variable Only available from XULRunner 12.0 onwards. Added version checks to dtrt with various XULRunner versions. --- modules/isearch.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/modules/isearch.js b/modules/isearch.js index bd9fa06..18eb015 100644 --- a/modules/isearch.js +++ b/modules/isearch.js @@ -12,6 +12,9 @@ define_variable("isearch_keep_selection", false, "Set to `true' to make isearch leave the selection visible when a "+ "search is completed."); +define_variable("isearch_scroll_center_vertically", false, + "Set to `true' to vertically center the selection when scrolling during " + + "an isearch. Only available with XULRunner >= 12."); function initial_isearch_state (buffer, frame, forward) { this.screenx = frame.scrollX; @@ -53,9 +56,21 @@ isearch_session.prototype = { var sel = this.sel_ctrl.getSelection(selctrlcomp.SELECTION_NORMAL); sel.removeAllRanges(); sel.addRange(range.cloneRange()); + var xulrunner_version = get_mozilla_version(); + if (version_compare(xulrunner_version, "2.0") < 0) { + var flags = true; + } else { + flags = selctrlcomp.SCROLL_SYNCHRONOUS; + if (isearch_scroll_center_vertically && + version_compare(xulrunner_version, "12.0") >= 0) + { + flags |= selctrlcomp.SCROLL_CENTER_VERTICALLY; + } + } this.sel_ctrl.scrollSelectionIntoView(selctrlcomp.SELECTION_NORMAL, selctrlcomp.SELECTION_FOCUS_REGION, - true); + flags); + }, _clear_selection: function () { const selctrlcomp = Ci.nsISelectionController; -- 2.11.4.GIT