summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Keller <skeller@gnome.org>2022-03-22 08:11:18 +0100
committerSebastian Keller <skeller@gnome.org>2022-03-22 08:18:26 +0100
commitcc02076b75115c799e029e5728e9fe65cab41ed0 (patch)
tree44f7969557d096fc2c0eb9f444e1cbe4c9553ad7
parent654ae5928ab621247bcc43816887c90178990d16 (diff)
downloadgtk+-cc02076b75115c799e029e5728e9fe65cab41ed0.tar.gz
surface: Use correct display when destroying a surface for depth switch
When surface depth switches from non-high-depth to high-depth (or vice versa) the current surface has to be destroyed before a new one can be created for this window. eglDestroySurface however was getting passed a GdkDisplay, rather than the EGLDisplay it expects. As a result the old surface did not get destroyed and the new surface could not be created causing rendering to freeze. Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4773
-rw-r--r--gdk/gdksurface.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gdk/gdksurface.c b/gdk/gdksurface.c
index ddfa767a99..16d668a931 100644
--- a/gdk/gdksurface.c
+++ b/gdk/gdksurface.c
@@ -1125,7 +1125,7 @@ gdk_surface_ensure_egl_surface (GdkSurface *self,
gdk_display_get_egl_config_high_depth (display) != gdk_display_get_egl_config (display))
{
gdk_gl_context_clear_current_if_surface (self);
- eglDestroySurface (gdk_surface_get_display (self), priv->egl_surface);
+ eglDestroySurface (gdk_display_get_egl_display (display), priv->egl_surface);
priv->egl_surface = NULL;
}