[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 790ad61fcf: Fix accesses to GTK structures on tooltip frames
From: |
Po Lu |
Subject: |
master 790ad61fcf: Fix accesses to GTK structures on tooltip frames |
Date: |
Mon, 31 Jan 2022 05:39:11 -0500 (EST) |
branch: master
commit 790ad61fcf91c75811ed30d21518e1dac99be044
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>
Fix accesses to GTK structures on tooltip frames
* src/xfns.c (xic_set_preeditarea): Don't set the GTK context on
tooltip frames.
(x_set_alpha_background): Don't make tooltip frames paintable.
* src/xterm.c (x_xr_ensure_picture): Get rid of GDK visual code.
This is now done in a better way inside xg_create_frame_widgets.
(bug#53654)
---
src/xfns.c | 9 +++++++--
src/xterm.c | 13 +------------
2 files changed, 8 insertions(+), 14 deletions(-)
diff --git a/src/xfns.c b/src/xfns.c
index 656e68f099..7007f70b19 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -735,8 +735,10 @@ x_set_alpha_background (struct frame *f, Lisp_Object arg,
Lisp_Object oldval)
#ifdef USE_GTK
/* This prevents GTK from painting the window's background, which
interferes with transparent background in some environments */
- gtk_widget_set_app_paintable (FRAME_GTK_OUTER_WIDGET (f),
- f->alpha_background != 1.0);
+
+ if (!FRAME_TOOLTIP_P (f))
+ gtk_widget_set_app_paintable (FRAME_GTK_OUTER_WIDGET (f),
+ f->alpha_background != 1.0);
#endif
if (f->alpha_background != 1.0)
@@ -2870,6 +2872,9 @@ xic_set_preeditarea (struct window *w, int x, int y)
XFree (attr);
}
#ifdef USE_GTK
+ if (f->tooltip)
+ return;
+
GdkRectangle rect;
int scale = xg_get_scale (f);
diff --git a/src/xterm.c b/src/xterm.c
index 12f3c0a9d1..5bcb77bbeb 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -384,18 +384,7 @@ 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);
+ XRenderPictFormat *fmt = FRAME_X_PICTURE_FORMAT (f);
FRAME_X_PICTURE (f) = XRenderCreatePicture (FRAME_X_DISPLAY (f),
FRAME_X_RAW_DRAWABLE (f),
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 790ad61fcf: Fix accesses to GTK structures on tooltip frames,
Po Lu <=