Various ugliness to track hash changes from pastes etc. better.
authorSteinar H. Gunderson <sesse@debian.org>
Fri, 25 Jul 2008 11:15:09 +0000 (13:15 +0200)
committerSteinar H. Gunderson <sesse@debian.org>
Fri, 25 Jul 2008 11:15:09 +0000 (13:15 +0200)
files/pr0n-fullscreen.js
templates/default/fullscreen-footer

index 5434a3e30a696b9059bfe9cbf26e91594cca615b..3cc60558271cebbeb7a0ff89a43cc16a64675575 100644 (file)
@@ -40,9 +40,9 @@ function find_width()
        return [null,null];
 }
 
-function parse_image_num(url, default_value) {
+function parse_image_num(default_value) {
        var num = parseInt(window.location.hash.substr(1));
-       if (num > 1 && num <= global_image_list.length) {  // and then num != NaN
+       if (num >= 1 && num <= global_image_list.length) {  // and then num != NaN
                return (num - 1);
        } else {
                return default_value;
@@ -394,6 +394,8 @@ function key_down(which)
                }
        } else if (which == 27) {   // escape
                set_opacity("close", 0.99);
+       } else {
+               check_for_hash_change();
        }
 }
 
@@ -413,6 +415,8 @@ function key_up(which) {
                do_close();
        } else if (which == 32 && global_select) {   // space
                select_image(global_image_list[global_image_num][0], global_image_list[global_image_num][1]);
+       } else {
+               check_for_hash_change();
        }
 }
 
@@ -432,3 +436,13 @@ function ie_png_hack()
                close.outerHTML = "<span id=\"close\" style=\"display: inline-block; position: absolute; top: 0px; right: 0px; width: 50px; height: 50px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + close.src + "')\" onmousedown=\"set_opacity('close', 1.0)\" onmouseup=\"set_opacity('close', 0.7); do_close();\" onmouseout=\"set_opacity('close', 0.7);\" />";
        }
 }
+
+function check_for_hash_change() {
+       var num = parseInt(window.location.hash.substr(1));
+       if (num >= 1 && num <= global_image_list.length) {  // and then num != NaN
+               if (--num != global_image_num) {
+                       global_image_num = num;
+                       relayout();
+               }
+       }
+}
index f4430855791f64e924ebfea9febb7315ce05b1b0..22c570520198950bd01d559f75fab5805dcad6e2 100644 (file)
@@ -2,12 +2,12 @@
 var global_vhost = "%VHOST%";
 var global_infobox = "%INFOBOX%";
 var global_return_url = "%RETURNURL%";
-var global_image_num = parse_image_num(window.location, %START%);
+var global_image_num = parse_image_num(%START%);
 var global_select = %SEL%;
 // end generated
     </script>
   </head>
-  <body onresize="relayout();" onload="init_ajax(); relayout();" onkeydown="key_down(event.keyCode);" onkeyup="key_up(event.keyCode);">
+  <body onresize="relayout();" onload="init_ajax(); relayout(); setInterval('check_for_hash_change()', 1000);" onkeydown="key_down(event.keyCode);" onkeyup="key_up(event.keyCode);" onhashchange="check_for_hash_change();" onclick="check_for_hash_change();">
     <div>
       <div class="container" id="main"><div id="iehack"></div></div>
       <img id="previous" src="/previous.png" alt="&lt;-" onmousedown="if (can_go_previous()) set_opacity('previous', 1.0)" onmouseup="if (can_go_previous()) { set_opacity('previous', 0.7); go_previous(); }" onmouseout="if (can_go_previous()) { set_opacity('previous', 0.7); }" />