diff --git a/Makefile b/Makefile index e89a309..2000e8d 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -VERSION = git-20120313 +VERSION = git-20120316 CC = gcc CFLAGS = -ansi -Wall -pedantic -O2 diff --git a/thumbs.c b/thumbs.c index cd8d315..9e49ca4 100644 --- a/thumbs.c +++ b/thumbs.c @@ -399,14 +399,6 @@ bool tns_move_selection(tns_t *tns, direction_t dir) { old = tns->sel; switch (dir) { - case DIR_LEFT: - if (tns->sel > 0) - tns->sel--; - break; - case DIR_RIGHT: - if (tns->sel < tns->cnt - 1) - tns->sel++; - break; case DIR_UP: if (tns->sel >= tns->cols) tns->sel -= tns->cols; @@ -414,6 +406,16 @@ bool tns_move_selection(tns_t *tns, direction_t dir) { case DIR_DOWN: if (tns->sel + tns->cols < tns->cnt) tns->sel += tns->cols; + else if (tns->sel < tns->cnt - tns->cnt % tns->cols) + tns->sel = tns->cnt - 1; + break; + case DIR_LEFT: + if (tns->sel > 0) + tns->sel--; + break; + case DIR_RIGHT: + if (tns->sel < tns->cnt - 1) + tns->sel++; break; }