[gedit] Backport a fix for a crash at startup with gtk3 3.13.4

Kalev Lember kalev at fedoraproject.org
Tue Jul 15 12:28:17 UTC 2014


commit f8f5c47031357f13725599bbdf55511cc5b38637
Author: Kalev Lember <kalevlember at gmail.com>
Date:   Tue Jul 15 14:24:34 2014 +0200

    Backport a fix for a crash at startup with gtk3 3.13.4

 0001-Hold-ref-to-menus-stored-in-app.patch |   61 ++++++++++++++++++++++++++++
 gedit.spec                                 |    9 ++++-
 2 files changed, 69 insertions(+), 1 deletions(-)
---
diff --git a/0001-Hold-ref-to-menus-stored-in-app.patch b/0001-Hold-ref-to-menus-stored-in-app.patch
new file mode 100644
index 0000000..c5f8714
--- /dev/null
+++ b/0001-Hold-ref-to-menus-stored-in-app.patch
@@ -0,0 +1,61 @@
+From 98efe189a8a39216de1807d009d4ae5a099eddd0 Mon Sep 17 00:00:00 2001
+From: Jesse van den Kieboom <jessevdk at gnome.org>
+Date: Mon, 30 Jun 2014 19:19:48 +0200
+Subject: [PATCH] Hold ref to menus stored in app
+
+---
+ gedit/gedit-app.c | 26 +++++++++++++++++++++-----
+ 1 file changed, 21 insertions(+), 5 deletions(-)
+
+diff --git a/gedit/gedit-app.c b/gedit/gedit-app.c
+index ed08a75..0704623 100644
+--- a/gedit/gedit-app.c
++++ b/gedit/gedit-app.c
+@@ -421,6 +421,22 @@ load_accels (void)
+ 	}
+ }
+ 
++static gpointer
++get_builder_object_ref (GtkBuilder  *builder,
++                        const gchar *name)
++{
++	gpointer ret;
++
++	ret = gtk_builder_get_object (builder, name);
++
++	if (ret != NULL)
++	{
++		g_object_ref_sink (ret);
++	}
++
++	return ret;
++}
++
+ static void
+ gedit_app_startup (GApplication *application)
+ {
+@@ -493,16 +509,16 @@ gedit_app_startup (GApplication *application)
+ 			appmenu = G_MENU_MODEL (gtk_builder_get_object (builder, "appmenu"));
+ 			gtk_application_set_app_menu (GTK_APPLICATION (application), appmenu);
+ 
+-			app->priv->window_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "gear_menu_withappmenu"));
++			app->priv->window_menu = G_MENU_MODEL (get_builder_object_ref (builder, "gear_menu_withappmenu"));
+ 		}
+ 		else
+ 		{
+-			app->priv->window_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "gear_menu_noappmenu"));
++			app->priv->window_menu = G_MENU_MODEL (get_builder_object_ref (builder, "gear_menu_noappmenu"));
+ 		}
+ 
+-		app->priv->notebook_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "notebook_menu"));
+-		app->priv->tab_width_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "tab_width_menu"));
+-		app->priv->line_col_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "line_col_menu"));
++		app->priv->notebook_menu = G_MENU_MODEL (get_builder_object_ref (builder, "notebook_menu"));
++		app->priv->tab_width_menu = G_MENU_MODEL (get_builder_object_ref (builder, "tab_width_menu"));
++		app->priv->line_col_menu = G_MENU_MODEL (get_builder_object_ref (builder, "line_col_menu"));
+ 	}
+ 
+ 	g_object_unref (builder);
+-- 
+2.0.1
+
diff --git a/gedit.spec b/gedit.spec
index 80146e2..40d3b6a 100644
--- a/gedit.spec
+++ b/gedit.spec
@@ -23,7 +23,7 @@ Summary:	Text editor for the GNOME desktop
 Name:		gedit
 Epoch:		2
 Version:	3.13.2
-Release:	1%{?dist}
+Release:	2%{?dist}
 License:	GPLv2+ and GFDL
 Group:		Applications/Editors
 #VCS: git:git://git.gnome.org/gedit
@@ -34,6 +34,9 @@ URL:		http://projects.gnome.org/gedit/
 Requires(post):         desktop-file-utils >= %{desktop_file_utils_version}
 Requires(postun):       desktop-file-utils >= %{desktop_file_utils_version}
 
+# Backported upstream fix for a crash with gtk+ 3.13.4
+Patch1: 0001-Hold-ref-to-menus-stored-in-app.patch
+
 Patch4: gedit-disable-python3.patch
 
 BuildRequires: gnome-common
@@ -100,6 +103,7 @@ Install gedit-devel if you want to write plugins for gedit.
 
 %prep
 %setup -q
+%patch1 -p1
 
 %if !%{with_python3}
 %patch4 -p1 -b .disable-python
@@ -208,6 +212,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas >&/dev/null || :
 %{_datadir}/vala/
 
 %changelog
+* Tue Jul 15 2014 Kalev Lember <kalevlember at gmail.com> - 2:3.13.2-2
+- Backport a fix for a crash at startup with gtk3 3.13.4
+
 * Tue Jun 24 2014 Richard Hughes <rhughes at redhat.com> - 2:3.13.2-1
 - Update to 3.13.2
 


More information about the scm-commits mailing list