2
									
								
								image.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								image.c
									
									
									
									
									
								
							| @@ -497,7 +497,7 @@ void img_render(img_t *img) | |||||||
| 			} | 			} | ||||||
| 			imlib_image_put_back_data(data); | 			imlib_image_put_back_data(data); | ||||||
| 		} else { | 		} else { | ||||||
| 			c = win->fullscreen ? win->black.pixel : win->bg.pixel; | 			c = win->bg.pixel; | ||||||
| 			imlib_context_set_color(c >> 16 & 0xFF, c >> 8 & 0xFF, c & 0xFF, 0xFF); | 			imlib_context_set_color(c >> 16 & 0xFF, c >> 8 & 0xFF, c & 0xFF, 0xFF); | ||||||
| 			imlib_image_fill_rectangle(0, 0, dw, dh); | 			imlib_image_fill_rectangle(0, 0, dw, dh); | ||||||
| 		} | 		} | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								sxiv.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								sxiv.h
									
									
									
									
									
								
							| @@ -408,10 +408,8 @@ struct win { | |||||||
| 	Window xwin; | 	Window xwin; | ||||||
| 	win_env_t env; | 	win_env_t env; | ||||||
|  |  | ||||||
| 	bool light; /* bg is lighter than fg */ |  | ||||||
| 	XftColor bg; | 	XftColor bg; | ||||||
| 	XftColor fg; | 	XftColor fg; | ||||||
| 	XftColor black; |  | ||||||
|  |  | ||||||
| 	int x; | 	int x; | ||||||
| 	int y; | 	int y; | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								thumbs.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								thumbs.c
									
									
									
									
									
								
							| @@ -469,14 +469,14 @@ void tns_mark(tns_t *tns, int n, bool mark) | |||||||
| 	if (n >= 0 && n < *tns->cnt && tns->thumbs[n].im != NULL) { | 	if (n >= 0 && n < *tns->cnt && tns->thumbs[n].im != NULL) { | ||||||
| 		win_t *win = tns->win; | 		win_t *win = tns->win; | ||||||
| 		thumb_t *t = &tns->thumbs[n]; | 		thumb_t *t = &tns->thumbs[n]; | ||||||
| 		unsigned long col = win->fullscreen ? win->black.pixel : win->bg.pixel; | 		unsigned long col = win->bg.pixel; | ||||||
| 		int x = t->x + t->w, y = t->y + t->h; | 		int x = t->x + t->w, y = t->y + t->h; | ||||||
|  |  | ||||||
| 		win_draw_rect(win, x - 1, y + 1, 1, tns->bw, true, 1, col); | 		win_draw_rect(win, x - 1, y + 1, 1, tns->bw, true, 1, col); | ||||||
| 		win_draw_rect(win, x + 1, y - 1, tns->bw, 1, true, 1, col); | 		win_draw_rect(win, x + 1, y - 1, tns->bw, 1, true, 1, col); | ||||||
|  |  | ||||||
| 		if (mark) | 		if (mark) | ||||||
| 			col = win->fullscreen && win->light ? win->bg.pixel : win->fg.pixel; | 			col = win->fg.pixel; | ||||||
|  |  | ||||||
| 		win_draw_rect(win, x, y, tns->bw + 2, tns->bw + 2, true, 1, col); | 		win_draw_rect(win, x, y, tns->bw + 2, tns->bw + 2, true, 1, col); | ||||||
|  |  | ||||||
| @@ -490,14 +490,9 @@ void tns_highlight(tns_t *tns, int n, bool hl) | |||||||
| 	if (n >= 0 && n < *tns->cnt && tns->thumbs[n].im != NULL) { | 	if (n >= 0 && n < *tns->cnt && tns->thumbs[n].im != NULL) { | ||||||
| 		win_t *win = tns->win; | 		win_t *win = tns->win; | ||||||
| 		thumb_t *t = &tns->thumbs[n]; | 		thumb_t *t = &tns->thumbs[n]; | ||||||
| 		unsigned long col; | 		unsigned long col = hl ? win->fg.pixel : win->bg.pixel; | ||||||
| 		int oxy = (tns->bw + 1) / 2 + 1, owh = tns->bw + 2; | 		int oxy = (tns->bw + 1) / 2 + 1, owh = tns->bw + 2; | ||||||
|  |  | ||||||
| 		if (hl) |  | ||||||
| 			col = win->fullscreen && win->light ? win->bg.pixel : win->fg.pixel; |  | ||||||
| 		else |  | ||||||
| 			col = win->fullscreen ? win->black.pixel : win->bg.pixel; |  | ||||||
|  |  | ||||||
| 		win_draw_rect(win, t->x - oxy, t->y - oxy, t->w + owh, t->h + owh, | 		win_draw_rect(win, t->x - oxy, t->y - oxy, t->w + owh, t->h + owh, | ||||||
| 		              false, tns->bw, col); | 		              false, tns->bw, col); | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										27
									
								
								window.c
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								window.c
									
									
									
									
									
								
							| @@ -123,11 +123,6 @@ const char* win_res(Display *dpy, const char *name, const char *def) | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
| unsigned int win_luminance(const XftColor *col) |  | ||||||
| { |  | ||||||
| 	return (col->color.red + col->color.green + col->color.blue) / 3; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| #define INIT_ATOM_(atom) \ | #define INIT_ATOM_(atom) \ | ||||||
| 	atoms[ATOM_##atom] = XInternAtom(e->dpy, #atom, False); | 	atoms[ATOM_##atom] = XInternAtom(e->dpy, #atom, False); | ||||||
|  |  | ||||||
| @@ -159,8 +154,6 @@ void win_init(win_t *win) | |||||||
| 	fg = win_res(e->dpy, RES_CLASS ".foreground", "black"); | 	fg = win_res(e->dpy, RES_CLASS ".foreground", "black"); | ||||||
| 	win_alloc_color(e, bg, &win->bg); | 	win_alloc_color(e, bg, &win->bg); | ||||||
| 	win_alloc_color(e, fg, &win->fg); | 	win_alloc_color(e, fg, &win->fg); | ||||||
| 	win_alloc_color(e, "black", &win->black); |  | ||||||
| 	win->light = win_luminance(&win->bg) > win_luminance(&win->fg); |  | ||||||
|  |  | ||||||
| 	win->bar.l.size = BAR_L_LEN; | 	win->bar.l.size = BAR_L_LEN; | ||||||
| 	win->bar.r.size = BAR_R_LEN; | 	win->bar.r.size = BAR_R_LEN; | ||||||
| @@ -300,7 +293,7 @@ void win_open(win_t *win) | |||||||
| 	win->buf.h = e->scrh; | 	win->buf.h = e->scrh; | ||||||
| 	win->buf.pm = XCreatePixmap(e->dpy, win->xwin, | 	win->buf.pm = XCreatePixmap(e->dpy, win->xwin, | ||||||
| 	                            win->buf.w, win->buf.h, e->depth); | 	                            win->buf.w, win->buf.h, e->depth); | ||||||
| 	XSetForeground(e->dpy, gc, fullscreen ? win->black.pixel : win->bg.pixel); | 	XSetForeground(e->dpy, gc, win->bg.pixel); | ||||||
| 	XFillRectangle(e->dpy, win->buf.pm, gc, 0, 0, win->buf.w, win->buf.h); | 	XFillRectangle(e->dpy, win->buf.pm, gc, 0, 0, win->buf.w, win->buf.h); | ||||||
| 	XSetWindowBackgroundPixmap(e->dpy, win->xwin, win->buf.pm); | 	XSetWindowBackgroundPixmap(e->dpy, win->xwin, win->buf.pm); | ||||||
|  |  | ||||||
| @@ -392,7 +385,7 @@ void win_clear(win_t *win) | |||||||
| 		win->buf.pm = XCreatePixmap(e->dpy, win->xwin, | 		win->buf.pm = XCreatePixmap(e->dpy, win->xwin, | ||||||
| 		                            win->buf.w, win->buf.h, e->depth); | 		                            win->buf.w, win->buf.h, e->depth); | ||||||
| 	} | 	} | ||||||
| 	XSetForeground(e->dpy, gc, win->fullscreen ? win->black.pixel : win->bg.pixel); | 	XSetForeground(e->dpy, gc, win->bg.pixel); | ||||||
| 	XFillRectangle(e->dpy, win->buf.pm, gc, 0, 0, win->buf.w, win->buf.h); | 	XFillRectangle(e->dpy, win->buf.pm, gc, 0, 0, win->buf.w, win->buf.h); | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -439,7 +432,6 @@ void win_draw_bar(win_t *win) | |||||||
| 	win_env_t *e; | 	win_env_t *e; | ||||||
| 	win_bar_t *l, *r; | 	win_bar_t *l, *r; | ||||||
| 	XftDraw *d; | 	XftDraw *d; | ||||||
| 	const XftColor *bg, *fg; |  | ||||||
|  |  | ||||||
| 	if ((l = &win->bar.l)->buf == NULL || (r = &win->bar.r)->buf == NULL) | 	if ((l = &win->bar.l)->buf == NULL || (r = &win->bar.r)->buf == NULL) | ||||||
| 		return; | 		return; | ||||||
| @@ -450,28 +442,23 @@ void win_draw_bar(win_t *win) | |||||||
| 	d = XftDrawCreate(e->dpy, win->buf.pm, DefaultVisual(e->dpy, e->scr), | 	d = XftDrawCreate(e->dpy, win->buf.pm, DefaultVisual(e->dpy, e->scr), | ||||||
| 	                  DefaultColormap(e->dpy, e->scr)); | 	                  DefaultColormap(e->dpy, e->scr)); | ||||||
|  |  | ||||||
| 	if (win->fullscreen && !win->light) | 	XSetForeground(e->dpy, gc, win->fg.pixel); | ||||||
| 		bg = &win->bg, fg = &win->fg; |  | ||||||
| 	else |  | ||||||
| 		bg = &win->fg, fg = &win->bg; |  | ||||||
|  |  | ||||||
| 	XSetForeground(e->dpy, gc, bg->pixel); |  | ||||||
| 	XFillRectangle(e->dpy, win->buf.pm, gc, 0, win->h, win->w, win->bar.h); | 	XFillRectangle(e->dpy, win->buf.pm, gc, 0, win->h, win->w, win->bar.h); | ||||||
|  |  | ||||||
| 	XSetForeground(e->dpy, gc, fg->pixel); | 	XSetForeground(e->dpy, gc, win->bg.pixel); | ||||||
| 	XSetBackground(e->dpy, gc, bg->pixel); | 	XSetBackground(e->dpy, gc, win->fg.pixel); | ||||||
|  |  | ||||||
| 	if ((len = strlen(r->buf)) > 0) { | 	if ((len = strlen(r->buf)) > 0) { | ||||||
| 		if ((tw = TEXTWIDTH(win, r->buf, len)) > w) | 		if ((tw = TEXTWIDTH(win, r->buf, len)) > w) | ||||||
| 			return; | 			return; | ||||||
| 		x = win->w - tw - H_TEXT_PAD; | 		x = win->w - tw - H_TEXT_PAD; | ||||||
| 		w -= tw; | 		w -= tw; | ||||||
| 		win_draw_text(win, d, fg, x, y, r->buf, len, tw); | 		win_draw_text(win, d, &win->bg, x, y, r->buf, len, tw); | ||||||
| 	} | 	} | ||||||
| 	if ((len = strlen(l->buf)) > 0) { | 	if ((len = strlen(l->buf)) > 0) { | ||||||
| 		x = H_TEXT_PAD; | 		x = H_TEXT_PAD; | ||||||
| 		w -= 2 * H_TEXT_PAD; /* gap between left and right parts */ | 		w -= 2 * H_TEXT_PAD; /* gap between left and right parts */ | ||||||
| 		win_draw_text(win, d, fg, x, y, l->buf, len, w); | 		win_draw_text(win, d, &win->bg, x, y, l->buf, len, w); | ||||||
| 	} | 	} | ||||||
| 	XftDrawDestroy(d); | 	XftDrawDestroy(d); | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user