1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-02 10:11:05 -08:00

Fix GTK widgets not appearing inside child frames

* src/xfns.c (x_set_parent_frame): Disable GTK's own frame
synchronization in child frames.
This commit is contained in:
Po Lu 2022-03-09 20:43:59 +08:00
parent 06d826d0ca
commit b883e8bc65

View file

@ -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);