mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-14 12:41:07 +00:00
wayland: check parent surface for subsurface
When an event is received while a tooltip is showing, the GtkTooltip's event handling code can end up calling gdk_window_set_transient_for() from gtk_tooltip_set_last_window(). The Wayland GDK backend will try to automatically create a subsurface in gdk_wayland_window_set_transient_for() but if the parent surface is gone meanwhile, this will will cause a crash when trying to create a subsurface from a parent with a null surface. Checking for the parent is not sufficient, we ought to check for the parent surface as well to avoid the crash. https://bugzilla.gnome.org/show_bug.cgi?id=782283
This commit is contained in:
parent
a84fc38784
commit
08aade4b7c
@ -1312,7 +1312,7 @@ gdk_wayland_window_create_subsurface (GdkWindow *window)
|
||||
if (impl->transient_for)
|
||||
parent_impl = GDK_WINDOW_IMPL_WAYLAND (impl->transient_for->impl);
|
||||
|
||||
if (parent_impl)
|
||||
if (parent_impl && parent_impl->display_server.wl_surface)
|
||||
{
|
||||
display_wayland = GDK_WAYLAND_DISPLAY (gdk_window_get_display (window));
|
||||
impl->display_server.wl_subsurface =
|
||||
|
Loading…
Reference in New Issue
Block a user