diff options
author | Bert Münnich <ber.t@posteo.de> | 2014-08-17 22:58:02 +0200 |
---|---|---|
committer | Bert Münnich <ber.t@posteo.de> | 2014-08-17 23:01:39 +0200 |
commit | d0ba2c585d966959c02c6d8ddc2365222d310ae6 (patch) | |
tree | 8e11435a00d89e75ccea3a78a015ab9d9c076b1c | |
parent | 4310b846c18d6c4d6ce44826ee5187c4745c4e6f (diff) |
Simplified thumbnail selection and marks
-rw-r--r-- | thumbs.c | 21 | ||||
-rw-r--r-- | window.c | 10 | ||||
-rw-r--r-- | window.h | 3 |
3 files changed, 15 insertions, 19 deletions
@@ -422,23 +422,21 @@ void tns_mark(tns_t *tns, int n, bool mark) unsigned long col; thumb_t *t = &tns->thumbs[n]; win_t *win = tns->win; - int x = t->x, y = t->y, w = t->w, h = t->h; - if (mark || n == *tns->sel) + if (mark) col = win->selcol; else if (win->fullscreen) col = win->fscol; else col = win->bgcol; - win_draw_rect(win, win->buf.pm, x - 4, y - 4, 8, 2, true, 0, col); - win_draw_rect(win, win->buf.pm, x - 4, y - 4, 2, 8, true, 0, col); - win_draw_rect(win, win->buf.pm, x + w - 4, y - 4, 8, 2, true, 0, col); - win_draw_rect(win, win->buf.pm, x + w + 2, y - 4, 2, 8, true, 0, col); - win_draw_rect(win, win->buf.pm, x - 4, y + h + 2, 8, 2, true, 0, col); - win_draw_rect(win, win->buf.pm, x - 4, y + h - 4, 2, 8, true, 0, col); - win_draw_rect(win, win->buf.pm, x + w - 4, y + h + 2, 8, 2, true, 0, col); - win_draw_rect(win, win->buf.pm, x + w + 2, y + h - 4, 2, 8, true, 0, col); + win_draw_rect(win, t->x - 4, t->y - 4, 4, 4, true, 1, col); + win_draw_rect(win, t->x + t->w, t->y - 4, 4, 4, true, 1, col); + win_draw_rect(win, t->x - 4, t->y + t->h, 4, 4, true, 1, col); + win_draw_rect(win, t->x + t->w, t->y + t->h, 4, 4, true, 1, col); + + if (!mark && n == *tns->sel) + tns_highlight(tns, n, true); } } @@ -459,8 +457,7 @@ void tns_highlight(tns_t *tns, int n, bool hl) else col = win->bgcol; - win_draw_rect(win, win->buf.pm, t->x - 3, t->y - 3, t->w + 6, t->h + 6, - false, 2, col); + win_draw_rect(win, t->x - 3, t->y - 3, t->w + 6, t->h + 6, false, 2, col); if (!hl && tns->files[n].marked) tns_mark(tns, n, true); @@ -476,12 +476,12 @@ void win_draw(win_t *win) XFlush(win->env.dpy); } -void win_draw_rect(win_t *win, Pixmap pm, int x, int y, int w, int h, - bool fill, int lw, unsigned long col) +void win_draw_rect(win_t *win, int x, int y, int w, int h, bool fill, int lw, + unsigned long col) { XGCValues gcval; - if (win == NULL || pm == None) + if (win == NULL || win->buf.pm == None) return; gcval.line_width = lw; @@ -489,9 +489,9 @@ void win_draw_rect(win_t *win, Pixmap pm, int x, int y, int w, int h, XChangeGC(win->env.dpy, gc, GCForeground | GCLineWidth, &gcval); if (fill) - XFillRectangle(win->env.dpy, pm, gc, x, y, w, h); + XFillRectangle(win->env.dpy, win->buf.pm, gc, x, y, w, h); else - XDrawRectangle(win->env.dpy, pm, gc, x, y, w, h); + XDrawRectangle(win->env.dpy, win->buf.pm, gc, x, y, w, h); } int win_textwidth(const char *text, unsigned int len, bool with_padding) @@ -93,8 +93,7 @@ void win_toggle_bar(win_t*); void win_clear(win_t*); void win_draw(win_t*); -void win_draw_rect(win_t*, Pixmap, int, int, int, int, bool, int, - unsigned long); +void win_draw_rect(win_t*, int, int, int, int, bool, int, unsigned long); int win_textwidth(const char*, unsigned int, bool); |