mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-05 16:20:10 +00:00
Only sync the display if creating a native window implicitly
This commit is contained in:
parent
e631d2d2d4
commit
a6e647863d
@ -1305,12 +1305,6 @@ gdk_window_set_has_native (GdkWindow *window, gboolean has_native)
|
||||
|
||||
if (gdk_window_is_viewable (window))
|
||||
GDK_WINDOW_IMPL_GET_IFACE (private->impl)->show (window);
|
||||
|
||||
/* We sync here to ensure the window is created in the Xserver when
|
||||
* this function returns. This is required because the returned XID
|
||||
* for this window must be valid immediately, even with another
|
||||
* connection to the Xserver */
|
||||
gdk_display_sync (gdk_drawable_get_display (window));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -875,14 +875,22 @@ gdk_x11_drawable_get_xid (GdkDrawable *drawable)
|
||||
|
||||
/* Try to ensure the window has a native window */
|
||||
if (!_gdk_window_has_impl (window))
|
||||
gdk_window_set_has_native (window, TRUE);
|
||||
{
|
||||
gdk_window_set_has_native (window, TRUE);
|
||||
|
||||
/* We sync here to ensure the window is created in the Xserver when
|
||||
* this function returns. This is required because the returned XID
|
||||
* for this window must be valid immediately, even with another
|
||||
* connection to the Xserver */
|
||||
gdk_display_sync (gdk_drawable_get_display (window));
|
||||
}
|
||||
|
||||
if (!GDK_WINDOW_IS_X11 (window))
|
||||
{
|
||||
g_warning (G_STRLOC " drawable is not a native X11 window");
|
||||
return None;
|
||||
}
|
||||
|
||||
|
||||
impl = ((GdkWindowObject *)drawable)->impl;
|
||||
}
|
||||
else if (GDK_IS_PIXMAP (drawable))
|
||||
|
Loading…
Reference in New Issue
Block a user