Use Button1 to open thumbnail
This commit is contained in:
parent
f08c24bbb3
commit
6adbb3831d
21
main.c
21
main.c
|
@ -268,11 +268,11 @@ void redraw() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void on_keypress(XKeyEvent *kev) {
|
void on_keypress(XKeyEvent *kev) {
|
||||||
int sel, x, y;
|
int x, y;
|
||||||
unsigned int w, h;
|
unsigned int w, h;
|
||||||
char key;
|
char key;
|
||||||
KeySym ksym;
|
KeySym ksym;
|
||||||
int changed;
|
int changed, sel;
|
||||||
|
|
||||||
if (!kev)
|
if (!kev)
|
||||||
return;
|
return;
|
||||||
|
@ -439,7 +439,7 @@ void on_keypress(XKeyEvent *kev) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void on_buttonpress(XButtonEvent *bev) {
|
void on_buttonpress(XButtonEvent *bev) {
|
||||||
int changed;
|
int changed, sel;
|
||||||
unsigned int mask;
|
unsigned int mask;
|
||||||
|
|
||||||
if (!bev)
|
if (!bev)
|
||||||
|
@ -448,6 +448,7 @@ void on_buttonpress(XButtonEvent *bev) {
|
||||||
mask = CLEANMASK(bev->state);
|
mask = CLEANMASK(bev->state);
|
||||||
changed = 0;
|
changed = 0;
|
||||||
|
|
||||||
|
if (mode == MODE_NORMAL) {
|
||||||
switch (bev->button) {
|
switch (bev->button) {
|
||||||
case Button1:
|
case Button1:
|
||||||
if (fileidx + 1 < filecnt) {
|
if (fileidx + 1 < filecnt) {
|
||||||
|
@ -489,6 +490,20 @@ void on_buttonpress(XButtonEvent *bev) {
|
||||||
changed = img_pan(&img, &win, PAN_RIGHT);
|
changed = img_pan(&img, &win, PAN_RIGHT);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
/* thumbnail mode */
|
||||||
|
switch (bev->button) {
|
||||||
|
case Button1:
|
||||||
|
if ((sel = tns_translate(&tns, bev->x, bev->y)) >= 0) {
|
||||||
|
fileidx = sel;
|
||||||
|
load_image();
|
||||||
|
mode = MODE_NORMAL;
|
||||||
|
changed = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (changed)
|
if (changed)
|
||||||
redraw();
|
redraw();
|
||||||
|
|
16
thumbs.c
16
thumbs.c
|
@ -170,3 +170,19 @@ void tns_move_selection(tns_t *tns, win_t *win, movedir_t dir) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int tns_translate(tns_t *tns, int x, int y) {
|
||||||
|
int n;
|
||||||
|
thumb_t *t;
|
||||||
|
|
||||||
|
if (!tns || x < 5 || y < 5)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if ((n = y / thumb_dim * tns-> cols + x / thumb_dim) < tns->cnt) {
|
||||||
|
t = &tns->thumbs[n];
|
||||||
|
if (x > t->x && x < t->x + t->w && y > t->y && y < t->y + t->h)
|
||||||
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue