aboutsummaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorBert <ber.t@gmx.com>2011-02-17 17:28:13 +0100
committerBert <ber.t@gmx.com>2011-02-17 17:28:13 +0100
commit6adbb3831d889b7a0fa3b69e40843d8b70beaf55 (patch)
treecabceb1b50489cf92e2f550a9a2025430d0bd08a /main.c
parentf08c24bbb31ae0e3f7001d5d4d0e8f31b0c817f8 (diff)
Use Button1 to open thumbnail
Diffstat (limited to 'main.c')
-rw-r--r--main.c97
1 files changed, 56 insertions, 41 deletions
diff --git a/main.c b/main.c
index 79b562f..4189f4f 100644
--- a/main.c
+++ b/main.c
@@ -268,11 +268,11 @@ void redraw() {
}
void on_keypress(XKeyEvent *kev) {
- int sel, x, y;
+ int x, y;
unsigned int w, h;
char key;
KeySym ksym;
- int changed;
+ int changed, sel;
if (!kev)
return;
@@ -439,7 +439,7 @@ void on_keypress(XKeyEvent *kev) {
}
void on_buttonpress(XButtonEvent *bev) {
- int changed;
+ int changed, sel;
unsigned int mask;
if (!bev)
@@ -448,46 +448,61 @@ void on_buttonpress(XButtonEvent *bev) {
mask = CLEANMASK(bev->state);
changed = 0;
- switch (bev->button) {
- case Button1:
- if (fileidx + 1 < filecnt) {
- ++fileidx;
- changed = load_image();
- }
- break;
- case Button2:
- mox = bev->x;
- moy = bev->y;
- win_set_cursor(&win, CURSOR_HAND);
- break;
- case Button3:
- if (fileidx > 0) {
- --fileidx;
- changed = load_image();
- }
- break;
- case Button4:
- if (mask == ControlMask)
- changed = img_zoom_in(&img);
- else if (mask == ShiftMask)
+ if (mode == MODE_NORMAL) {
+ switch (bev->button) {
+ case Button1:
+ if (fileidx + 1 < filecnt) {
+ ++fileidx;
+ changed = load_image();
+ }
+ break;
+ case Button2:
+ mox = bev->x;
+ moy = bev->y;
+ win_set_cursor(&win, CURSOR_HAND);
+ break;
+ case Button3:
+ if (fileidx > 0) {
+ --fileidx;
+ changed = load_image();
+ }
+ break;
+ case Button4:
+ if (mask == ControlMask)
+ changed = img_zoom_in(&img);
+ else if (mask == ShiftMask)
+ changed = img_pan(&img, &win, PAN_LEFT);
+ else
+ changed = img_pan(&img, &win, PAN_UP);
+ break;
+ case Button5:
+ if (mask == ControlMask)
+ changed = img_zoom_out(&img);
+ else if (mask == ShiftMask)
+ changed = img_pan(&img, &win, PAN_RIGHT);
+ else
+ changed = img_pan(&img, &win, PAN_DOWN);
+ break;
+ case 6:
changed = img_pan(&img, &win, PAN_LEFT);
- else
- changed = img_pan(&img, &win, PAN_UP);
- break;
- case Button5:
- if (mask == ControlMask)
- changed = img_zoom_out(&img);
- else if (mask == ShiftMask)
+ break;
+ case 7:
changed = img_pan(&img, &win, PAN_RIGHT);
- else
- changed = img_pan(&img, &win, PAN_DOWN);
- break;
- case 6:
- changed = img_pan(&img, &win, PAN_LEFT);
- break;
- case 7:
- 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)