From 167f5a678e37c8e3d55fcded24419848dfe7d83e Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Wed, 28 Nov 2007 23:47:33 +0100 Subject: [PATCH] Replace the link-background hack by a much neater one, inspired by PicasaWeb's handling of the issue. No non-pr0n source code was harmed (ie. read) during the production of this feature. :-) --- files/pr0n-fullscreen.css | 14 -------------- files/pr0n-fullscreen.js | 20 +++++++++++++++++--- perl/Sesse/pr0n/Index.pm | 15 +-------------- templates/default/fullscreen-footer | 7 ++----- templates/default/fullscreen-header | 1 + 5 files changed, 21 insertions(+), 36 deletions(-) diff --git a/files/pr0n-fullscreen.css b/files/pr0n-fullscreen.css index 8ea24bf..145dd9d 100644 --- a/files/pr0n-fullscreen.css +++ b/files/pr0n-fullscreen.css @@ -14,9 +14,6 @@ body { img, #text { vertical-align: middle; } -img { - z-index: 1; -} #previous { position: absolute; @@ -36,17 +33,6 @@ img { right: 0px; z-index: 2; } -#linkbg1, #linkbg2, #linkbg3 { - display: block; - position: absolute; - top: 0px; - right: 0px; - width: 100%; - height: 100%; - background-color: black; -} -#linkbg2 { z-index: -1; } -#linkbg3 { z-index: -1; } #preload { position: absolute; diff --git a/files/pr0n-fullscreen.js b/files/pr0n-fullscreen.js index efacecc..9582995 100644 --- a/files/pr0n-fullscreen.js +++ b/files/pr0n-fullscreen.js @@ -40,6 +40,20 @@ function find_width() return [null,null]; } +function parse_image_num(url, default_value) { + var url_array = (window.location.toString().split("#")); + if (url_array.length != 2) { + return default_value; + } + + var num = parseInt(url_array[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 @@ -148,9 +162,9 @@ function display_image_num(num, element_id) // size of the image center_image(num); - document.getElementById('linkbg1').href = global_bookmark_url_base + (num+1); - document.getElementById('linkbg2').href = global_bookmark_url_base + (num+1); - document.getElementById('linkbg3').href = global_bookmark_url_base + (num+1); + // replace the anchor part (if any) with the image number + var baseurl = (window.location.toString().split("#"))[0]; + window.location = baseurl + "#" + (num+1); } return img; diff --git a/perl/Sesse/pr0n/Index.pm b/perl/Sesse/pr0n/Index.pm index 4a993b1..ec28b72 100644 --- a/perl/Sesse/pr0n/Index.pm +++ b/perl/Sesse/pr0n/Index.pm @@ -213,26 +213,13 @@ sub handler { my $returnurl = "http://" . $r->get_server_name . "/" . $event . "/" . Sesse::pr0n::Common::get_query_string(\%settings_no_fullscreen, \%defsettings); - my %settings_bookmark = %settings; - $settings_bookmark{'start'} = $defsettings{'start'}; - my $bookmark_url_base = "http://" . $r->get_server_name . "/" . $event . "/" . - Sesse::pr0n::Common::get_query_string(\%settings_bookmark, \%defsettings); - - if ($bookmark_url_base =~ /\?/) { - $bookmark_url_base .= ';start='; - } else { - $bookmark_url_base .= '?start='; - } - # *whistle* $returnurl =~ s/&/&/g; - $bookmark_url_base =~ s/&/&/g; Sesse::pr0n::Templates::print_template($r, "fullscreen-footer", { vhost => $r->get_server_name, - start => $settings{'start'} - 1, returnurl => $returnurl, - bookmarkurlbase => $bookmark_url_base, + start => $settings{'start'} - 1, sel => $settings{'sel'}, infobox => $infobox }); diff --git a/templates/default/fullscreen-footer b/templates/default/fullscreen-footer index 04ed5c1..f443085 100644 --- a/templates/default/fullscreen-footer +++ b/templates/default/fullscreen-footer @@ -2,17 +2,14 @@ var global_vhost = "%VHOST%"; var global_infobox = "%INFOBOX%"; var global_return_url = "%RETURNURL%"; -var global_bookmark_url_base = "%BOOKMARKURLBASE%"; -var global_image_num = %START%; +var global_image_num = parse_image_num(window.location, %START%); var global_select = %SEL%; // end generated -
- -
+
<- -> x diff --git a/templates/default/fullscreen-header b/templates/default/fullscreen-header index 0a77d72..680f841 100644 --- a/templates/default/fullscreen-header +++ b/templates/default/fullscreen-header @@ -8,6 +8,7 @@ +