about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/librustdoc/html/static/main.js5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js
index e992c0b62bf..4db02d58c51 100644
--- a/src/librustdoc/html/static/main.js
+++ b/src/librustdoc/html/static/main.js
@@ -401,16 +401,21 @@ function getSearchElement() {
         var prev_line_id = 0;
 
         var set_fragment = function(name) {
+            var x = window.scrollX,
+                y = window.scrollY;
             if (browserSupportsHistoryApi()) {
                 history.replaceState(null, null, "#" + name);
                 highlightSourceLines();
             } else {
                 location.replace("#" + name);
             }
+            // Prevent jumps when selecting one or many lines
+            window.scrollTo(x, y);
         };
 
         return function(ev) {
             var cur_line_id = parseInt(ev.target.id, 10);
+            ev.preventDefault();
 
             if (ev.shiftKey && prev_line_id) {
                 // Swap selection if needed