void winwidget_setup_pixmaps(winwidget winwid) { if (winwid->full_screen) { if (!(winwid->bg_pmap)) { if (winwid->gc == None) { XGCValues gcval; if (!opt.image_bg || !strcmp(opt.image_bg, "default")) { gcval.foreground = BlackPixel(disp, DefaultScreen(disp)); winwid->gc = XCreateGC(disp, winwid->win, GCForeground, &gcval); } else if (!strcmp(opt.image_bg, "checks")) { gcval.tile = feh_create_checks(); gcval.fill_style = FillTiled; winwid->gc = XCreateGC(disp, winwid->win, GCTile | GCFillStyle, &gcval); } else { XColor color; Colormap cmap = DefaultColormap(disp, DefaultScreen(disp)); XAllocNamedColor(disp, cmap, (char*) opt.image_bg, &color, &color); gcval.foreground = color.pixel; winwid->gc = XCreateGC(disp, winwid->win, GCForeground, &gcval); } } winwid->bg_pmap = XCreatePixmap(disp, winwid->win, scr->width, scr->height, depth); } XFillRectangle(disp, winwid->bg_pmap, winwid->gc, 0, 0, scr->width, scr->height); } else { if (!winwid->bg_pmap || winwid->had_resize) { D(("recreating background pixmap (%dx%d)\n", winwid->w, winwid->h)); if (winwid->bg_pmap) XFreePixmap(disp, winwid->bg_pmap); if (winwid->w == 0) winwid->w = 1; if (winwid->h == 0) winwid->h = 1; winwid->bg_pmap = XCreatePixmap(disp, winwid->win, winwid->w, winwid->h, depth); winwid->had_resize = 0; } } return; }
void winwidget_setup_pixmaps(winwidget winwid) { if (winwid->full_screen) { if (!(winwid->bg_pmap)) { if (winwid->gc == None) { XGCValues gcval; if (opt.image_bg == IMAGE_BG_WHITE) { gcval.foreground = WhitePixel(disp, DefaultScreen(disp)); winwid->gc = XCreateGC(disp, winwid->win, GCForeground, &gcval); } else if (opt.image_bg == IMAGE_BG_CHECKS) { gcval.tile = feh_create_checks(); gcval.fill_style = FillTiled; winwid->gc = XCreateGC(disp, winwid->win, GCTile | GCFillStyle, &gcval); } else { gcval.foreground = BlackPixel(disp, DefaultScreen(disp)); winwid->gc = XCreateGC(disp, winwid->win, GCForeground, &gcval); } } winwid->bg_pmap = XCreatePixmap(disp, winwid->win, scr->width, scr->height, depth); } XFillRectangle(disp, winwid->bg_pmap, winwid->gc, 0, 0, scr->width, scr->height); } else { if (!winwid->bg_pmap || winwid->had_resize) { D(("recreating background pixmap (%dx%d)\n", winwid->w, winwid->h)); if (winwid->bg_pmap) XFreePixmap(disp, winwid->bg_pmap); if (winwid->w == 0) winwid->w = 1; if (winwid->h == 0) winwid->h = 1; winwid->bg_pmap = XCreatePixmap(disp, winwid->win, winwid->w, winwid->h, depth); winwid->had_resize = 0; } } return; }