From d964455d36b79d651faeec7f9c416dfcfde3334a Mon Sep 17 00:00:00 2001 From: Nikita Zlobin Date: Tue, 5 May 2020 00:52:07 +0500 Subject: [PATCH] oops: Keep ready for possible 32bit color lack --- src/x11/x.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/x11/x.c b/src/x11/x.c index 896e819..a5706d9 100644 --- a/src/x11/x.c +++ b/src/x11/x.c @@ -648,18 +648,29 @@ struct window_x11 *x_win_create(void) Window root; int scr_n; + int depth; + Visual * vis; XVisualInfo vi; XSetWindowAttributes wa; scr_n = DefaultScreen(xctx.dpy); root = RootWindow(xctx.dpy, scr_n); - XMatchVisualInfo(xctx.dpy, scr_n, 32, TrueColor, &vi); + if (XMatchVisualInfo(xctx.dpy, scr_n, 32, TrueColor, &vi)) + { + vis = vi.visual; + depth = vi.depth; + } + else + { + vis = DefaultVisual(xctx.dpy, scr_n); + depth = DefaultDepth(xctx.dpy, scr_n); + } wa.override_redirect = true; wa.background_pixmap = None; wa.background_pixel = 0; wa.border_pixel = 0; - wa.colormap = XCreateColormap(xctx.dpy, root, vi.visual, AllocNone); + wa.colormap = XCreateColormap(xctx.dpy, root, vis, AllocNone); wa.event_mask = ExposureMask | KeyPressMask | VisibilityChangeMask | ButtonReleaseMask | FocusChangeMask| StructureNotifyMask; @@ -672,9 +683,9 @@ struct window_x11 *x_win_create(void) scr->w, 1, 0, - vi.depth, + depth, CopyFromParent, - vi.visual, + vis, CWOverrideRedirect | CWBackPixmap | CWBackPixel | CWBorderPixel | CWColormap | CWEventMask, &wa); @@ -686,7 +697,7 @@ struct window_x11 *x_win_create(void) (0xffffffff / 100))); win->root_surface = cairo_xlib_surface_create(xctx.dpy, win->xwin, - vi.visual, + vis, WIDTH, HEIGHT); win->c_ctx = cairo_create(win->root_surface);