diff --git a/src/librustdoc/html/static/main.js b/src/librustdoc/html/static/main.js
index 3f74ffbbe0b..f1c9c58a4eb 100644
--- a/src/librustdoc/html/static/main.js
+++ b/src/librustdoc/html/static/main.js
@@ -240,12 +240,15 @@
     }
 
     function handleShortcut(ev) {
-        if (document.activeElement.tagName === "INPUT")
+        if (document.activeElement.tagName === "INPUT" &&
+                hasClass(document.getElementById('main'), "hidden")) {
             return;
+        }
 
         // Don't interfere with browser shortcuts
-        if (ev.ctrlKey || ev.altKey || ev.metaKey)
+        if (ev.ctrlKey || ev.altKey || ev.metaKey) {
             return;
+        }
 
         var help = document.getElementById("help");
         switch (getVirtualKey(ev)) {
@@ -1800,7 +1803,7 @@
         if (!next) {
             return;
         }
-        if (checkIfThereAreMethods(next.childNodes) &&
+        if ((checkIfThereAreMethods(next.childNodes) || hasClass(e, 'method')) &&
             (hasClass(next, 'docblock') ||
              hasClass(e, 'impl') ||
              (hasClass(next, 'stability') &&