Double click on thumbnail to open image

This commit is contained in:
Bert Münnich 2014-01-11 22:52:37 +01:00
parent 304fd382db
commit ed69b483ed
2 changed files with 13 additions and 8 deletions

18
main.c
View File

@ -553,6 +553,7 @@ void on_keypress(XKeyEvent *kev)
void on_buttonpress(XButtonEvent *bev)
{
int i, sel;
static Time firstclick;
if (bev == NULL)
return;
@ -580,17 +581,20 @@ void on_buttonpress(XButtonEvent *bev)
switch (bev->button) {
case Button1:
if ((sel = tns_translate(&tns, bev->x, bev->y)) >= 0) {
if (sel == tns.sel) {
mode = MODE_IMAGE;
set_timeout(reset_cursor, TO_CURSOR_HIDE, true);
load_image(tns.sel);
} else {
if (sel != tns.sel) {
tns_highlight(&tns, tns.sel, false);
tns_highlight(&tns, sel, true);
tns.sel = sel;
firstclick = bev->time;
redraw();
} else if (bev->time - firstclick <= TO_DOUBLE_CLICK) {
mode = MODE_IMAGE;
set_timeout(reset_cursor, TO_CURSOR_HIDE, true);
load_image(tns.sel);
redraw();
} else {
firstclick = bev->time;
}
redraw();
break;
}
break;
case Button3:

View File

@ -76,7 +76,8 @@ typedef struct {
enum {
TO_REDRAW_RESIZE = 75,
TO_REDRAW_THUMBS = 200,
TO_CURSOR_HIDE = 1200
TO_CURSOR_HIDE = 1200,
TO_DOUBLE_CLICK = 300
};
typedef void (*timeout_f)(void);