emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master b883e8bc65: Fix GTK widgets not appearing inside child frames


From: Po Lu
Subject: master b883e8bc65: Fix GTK widgets not appearing inside child frames
Date: Wed, 9 Mar 2022 07:44:34 -0500 (EST)

branch: master
commit b883e8bc65d314273b63da873e1cdbbac23978e9
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Fix GTK widgets not appearing inside child frames
    
    * src/xfns.c (x_set_parent_frame): Disable GTK's own frame
    synchronization in child frames.
---
 src/xfns.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/xfns.c b/src/xfns.c
index c71f2b025f..cf5823c645 100644
--- a/src/xfns.c
+++ b/src/xfns.c
@@ -919,6 +919,9 @@ static void
 x_set_parent_frame (struct frame *f, Lisp_Object new_value, Lisp_Object 
old_value)
 {
   struct frame *p = NULL;
+#ifdef HAVE_GTK3
+  GdkWindow *window;
+#endif
 
   if (!NILP (new_value)
       && (!FRAMEP (new_value)
@@ -942,6 +945,14 @@ x_set_parent_frame (struct frame *f, Lisp_Object 
new_value, Lisp_Object old_valu
          (GTK_CONTAINER (FRAME_GTK_OUTER_WIDGET (f)),
           p ? GTK_RESIZE_IMMEDIATE : GTK_RESIZE_QUEUE);
 #endif
+
+#ifdef HAVE_GTK3
+      if (p)
+       {
+         window = gtk_widget_get_window (FRAME_GTK_OUTER_WIDGET (f));
+         gdk_x11_window_set_frame_sync_enabled (window, false);
+       }
+#endif
       unblock_input ();
 
       fset_parent_frame (f, new_value);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]