From: Scott Worley Date: Fri, 28 Feb 2014 21:11:25 +0000 (-0800) Subject: Disallow scrolling off the beginning and end X-Git-Url: http://git.scottworley.com/picsort/commitdiff_plain/755cf903798da9f7772c504f01af9e6fdd388052 Disallow scrolling off the beginning and end --- diff --git a/picsorter.js b/picsorter.js index cf2c399..ec63cbc 100644 --- a/picsorter.js +++ b/picsorter.js @@ -59,9 +59,23 @@ function toggle_zoom() { function move_by_filter(direction, filter) { // Keep moving in direction until filter is satisfied - do { - input_index += direction; - } while (!filter()); + var new_index = input_index; + while (true) { + var next = new_index + direction; + if (next < 0) { + say("At beginning"); + return; + } + if (next >= files.length) { + say("At end"); + return; + } + new_index = next; + if (filter(new_index)) { + break; + } + } + input_index = new_index; say(input_index + " " + (picinfo[files[input_index]].name || "")); setpic(); } @@ -69,13 +83,13 @@ function move(direction) { move_by_filter(direction, function() { return true; }); } function move_to_nondeleted(direction) { - move_by_filter(direction, function() { - return !("deleted" in picinfo[files[input_index]]); }); + move_by_filter(direction, function(i) { + return !("deleted" in picinfo[files[i]]); }); } function move_to_unnamed(direction) { - move_by_filter(direction, function() { - return !("deleted" in picinfo[files[input_index]]) && - !("name" in picinfo[files[input_index]]); }); + move_by_filter(direction, function(i) { + return !("deleted" in picinfo[files[i]]) && + !("name" in picinfo[files[i]]); }); } function mark_deleted() {