diff options
author | Sebastian Keller <skeller@gnome.org> | 2022-03-22 08:11:18 +0100 |
---|---|---|
committer | Sebastian Keller <skeller@gnome.org> | 2022-03-22 08:18:26 +0100 |
commit | cc02076b75115c799e029e5728e9fe65cab41ed0 (patch) | |
tree | 44f7969557d096fc2c0eb9f444e1cbe4c9553ad7 | |
parent | 654ae5928ab621247bcc43816887c90178990d16 (diff) | |
download | gtk+-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.c | 2 |
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; } |