[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