[gtk+] gdk: Clear GL context when window is withdrawn
- From: Ken VanDine <kvandine src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] gdk: Clear GL context when window is withdrawn
- Date: Wed, 25 Oct 2017 13:38:22 +0000 (UTC)
commit b6c41e57e2b4c81d82fe14a57cd8a9c2f2ac0c6a
Author: Andrea Azzarone <andrea azzarone canonical com>
Date: Wed Oct 25 09:37:36 2017 -0400
gdk: Clear GL context when window is withdrawn
Some clients (e.g. gnome-online-accounts) quickly unmap and map
a window. With some backends the backend surface will be replaced
causing the application to crash because the GL context is still
using the old surface. Clearing the GL context when a window is
withdrawn fixes this.
https://bugzilla.gnome.org/show_bug.cgi?id=789141
gdk/gdkwindow.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
---
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index 7e1a079..0844587 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -3903,6 +3903,7 @@ gdk_window_withdraw (GdkWindow *window)
{
GdkWindowImplClass *impl_class;
gboolean was_mapped;
+ GdkGLContext *current_context;
g_return_if_fail (GDK_IS_WINDOW (window));
@@ -3925,6 +3926,10 @@ gdk_window_withdraw (GdkWindow *window)
_gdk_make_event (window, GDK_UNMAP, NULL, FALSE);
}
+ current_context = gdk_gl_context_get_current ();
+ if (current_context != NULL && gdk_gl_context_get_window (current_context) == window)
+ gdk_gl_context_clear_current ();
+
recompute_visible_regions (window, FALSE);
gdk_window_clear_old_updated_area (window);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]