From: Po Lu Date: Sun, 30 Jan 2022 06:02:40 +0000 (+0800) Subject: Fix some problems with inconsistent visuals on GDK X-Git-Tag: emacs-29.0.90~2651 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=26a9acc86ae4e646b17570f009dcdf566f75c3de;p=emacs.git Fix some problems with inconsistent visuals on GDK * src/xterm.c (x_xr_ensure_picture): Use the visual GDK used instead of our own. --- diff --git a/src/xterm.c b/src/xterm.c index 209e99fc09c..0ecebfb4205 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -382,11 +382,22 @@ x_xr_ensure_picture (struct frame *f) { XRenderPictureAttributes attrs; attrs.clip_mask = None; + XRenderPictFormat *fmt; + +#ifdef USE_GTK + GdkWindow *wnd = gtk_widget_get_window (FRAME_GTK_OUTER_WIDGET (f)); + GdkVisual *visual = gdk_window_get_visual (wnd); + Visual *xvisual = gdk_x11_visual_get_xvisual (visual); + + fmt = XRenderFindVisualFormat (FRAME_X_DISPLAY (f), xvisual); + + if (!fmt) +#endif + fmt = FRAME_X_PICTURE_FORMAT (f); FRAME_X_PICTURE (f) = XRenderCreatePicture (FRAME_X_DISPLAY (f), FRAME_X_RAW_DRAWABLE (f), - FRAME_X_PICTURE_FORMAT (f), - CPClipMask, &attrs); + fmt, CPClipMask, &attrs); } } #endif