X-Git-Url: https://git.sesse.net/?p=pr0n;a=blobdiff_plain;f=files%2Fpr0n-fullscreen.js;h=335906741fc077143f1322ad454fe666dea1257f;hp=5434a3e30a696b9059bfe9cbf26e91594cca615b;hb=44c1611c549b7987e2394988e6bc66b1ad72d203;hpb=e284d5daf153717f15ddfdcee6edf56232d3d16e diff --git a/files/pr0n-fullscreen.js b/files/pr0n-fullscreen.js index 5434a3e..3359067 100644 --- a/files/pr0n-fullscreen.js +++ b/files/pr0n-fullscreen.js @@ -40,15 +40,6 @@ function find_width() return [null,null]; } -function parse_image_num(url, default_value) { - var num = parseInt(window.location.hash.substr(1)); - if (num > 1 && num <= global_image_list.length) { // and then num != NaN - return (num - 1); - } else { - return default_value; - } -} - /* * pr0n can resize to any size we'd like, but we're much more likely * to have this set of fixed-resolution screens cached, so to increase @@ -176,8 +167,7 @@ function display_image_num(num, element_id) center_image(num); // replace the anchor part (if any) with the image number - var baseurl = (window.location.toString().split("#"))[0]; - window.location = baseurl + "#" + (num+1); + window.location.hash = "#" + (num+1); } return img; @@ -394,6 +384,8 @@ function key_down(which) } } else if (which == 27) { // escape set_opacity("close", 0.99); + } else { + check_for_hash_change(); } } @@ -413,6 +405,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 +426,20 @@ function ie_png_hack() close.outerHTML = ""; } } + +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 + return (num - 1); + } else { + return default_value; + } +} + +function check_for_hash_change() { + var num = parse_image_num(-1); + if (num != -1 && num != global_image_num) { + global_image_num = num; + relayout(); + } +}