diff options
author | Debarshi Ray <debarshir@gnome.org> | 2017-10-25 16:35:14 +0200 |
---|---|---|
committer | Debarshi Ray <debarshir@gnome.org> | 2017-10-25 16:50:43 +0200 |
commit | 571510f959c252294a400a444bd2ba1ef0095556 (patch) | |
tree | 63497d3e527ba3230576c59e2d45ba98c2ee4555 | |
parent | Cleanup spec file conditionals (diff) | |
download | gtk3-classic-build-gtk3-571510f959c252294a400a444bd2ba1ef0095556.tar.gz gtk3-classic-build-gtk3-571510f959c252294a400a444bd2ba1ef0095556.tar.bz2 gtk3-classic-build-gtk3-571510f959c252294a400a444bd2ba1ef0095556.zip |
Backport fix to prevent crashes when adding online accounts
https://bugzilla.gnome.org/show_bug.cgi?id=789141
-rw-r--r-- | gtk3-gdk-Clear-GL-context-when-window-is-withdrawn.patch | 42 | ||||
-rw-r--r-- | gtk3.spec | 9 |
2 files changed, 50 insertions, 1 deletions
diff --git a/gtk3-gdk-Clear-GL-context-when-window-is-withdrawn.patch b/gtk3-gdk-Clear-GL-context-when-window-is-withdrawn.patch new file mode 100644 index 0000000..d7a690b --- /dev/null +++ b/gtk3-gdk-Clear-GL-context-when-window-is-withdrawn.patch @@ -0,0 +1,42 @@ +From 7c2ff0449adfef596d7eea86b51f2ee40c52ad08 Mon Sep 17 00:00:00 2001 +From: Andrea Azzarone <azzaronea@gmail.com> +Date: Wed, 18 Oct 2017 12:35:04 +0200 +Subject: [PATCH] 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 file changed, 5 insertions(+) + +diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c +index c0e0a7d4b2b7..79804cdacdac 100644 +--- a/gdk/gdkwindow.c ++++ b/gdk/gdkwindow.c +@@ -5744,6 +5744,7 @@ gdk_window_withdraw (GdkWindow *window) + { + GdkWindowImplClass *impl_class; + gboolean was_mapped; ++ GdkGLContext *current_context; + + g_return_if_fail (GDK_IS_WINDOW (window)); + +@@ -5768,6 +5769,10 @@ gdk_window_withdraw (GdkWindow *window) + _gdk_synthesize_crossing_events_for_geometry_change (window->parent); + } + ++ 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); + } +-- +2.14.2 + @@ -22,13 +22,16 @@ Name: gtk3 Version: 3.22.24 -Release: 2%{?dist} +Release: 3%{?dist} Summary: GTK+ graphical user interface library License: LGPLv2+ URL: http://www.gtk.org Source0: http://download.gnome.org/sources/gtk+/3.22/gtk+-%{version}.tar.xz +# https://bugzilla.gnome.org/show_bug.cgi?id=789141 +Patch0: gtk3-gdk-Clear-GL-context-when-window-is-withdrawn.patch + BuildRequires: pkgconfig(atk) >= %{atk_version} BuildRequires: pkgconfig(atk-bridge-2.0) BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version} @@ -167,6 +170,7 @@ the functionality of the installed %{name} package. %prep %setup -q -n gtk+-%{version} +%patch0 -p1 %build export CFLAGS='-fno-strict-aliasing %optflags' @@ -340,6 +344,9 @@ gtk-query-immodules-3.0-%{__isa_bits} --update-cache &>/dev/null || : %{_datadir}/installed-tests %changelog +* Wed Oct 25 2017 Debarshi Ray <rishi@fedoraproject.org> - 3.22.24-3 +- Backport fix to prevent crashes when adding online accounts (GNOME #789141) + * Mon Oct 23 2017 Troy Dawson <tdawson@redhat.com> - 3.22.24-2 - Cleanup spec file conditionals |