Backport a fix for a crash at startup with gtk3 3.13.4

This commit is contained in:
Kalev Lember 2014-07-15 14:24:34 +02:00
parent 1a44e1d544
commit f8f5c47031
2 changed files with 69 additions and 1 deletions

View File

@ -0,0 +1,61 @@
From 98efe189a8a39216de1807d009d4ae5a099eddd0 Mon Sep 17 00:00:00 2001
From: Jesse van den Kieboom <jessevdk@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

View File

@ -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@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@redhat.com> - 2:3.13.2-1
- Update to 3.13.2