Patchwork [meta-xfce] thunar: Fix segfault in case no icon-theme is selected/installed

login
register
mail settings
Submitter Andreas Müller
Date Aug. 11, 2011, 10:21 p.m.
Message ID <1313101282-4158-1-git-send-email-schnitzeltony@gmx.de>
Download mbox | patch
Permalink /patch/9657/
State Accepted
Headers show

Comments

Andreas Müller - Aug. 11, 2011, 10:21 p.m.
The patch was sent to xfce bug list [1]. As long as it not applied, make
thunar work for us.

[1] https://bugzilla.xfce.org/show_bug.cgi?id=7880

Signed-off-by: Andreas Mueller <schnitzeltony@gmx.de>
---
 .../thunar/thunar/fix-segfault-no-icons.patch      |   61 ++++++++++++++++++++
 meta-xfce/recipes-xfce/thunar/thunar_1.2.2.bb      |    7 +--
 2 files changed, 63 insertions(+), 5 deletions(-)
 create mode 100644 meta-xfce/recipes-xfce/thunar/thunar/fix-segfault-no-icons.patch

Patch

diff --git a/meta-xfce/recipes-xfce/thunar/thunar/fix-segfault-no-icons.patch b/meta-xfce/recipes-xfce/thunar/thunar/fix-segfault-no-icons.patch
new file mode 100644
index 0000000..f0ff412
--- /dev/null
+++ b/meta-xfce/recipes-xfce/thunar/thunar/fix-segfault-no-icons.patch
@@ -0,0 +1,61 @@ 
+From 5066ca4983d82352fca078525e2be454b263fdfd Mon Sep 17 00:00:00 2001
+From: Andreas Mueller <schnitzeltony@gmx.de>
+Date: Thu, 11 Aug 2011 10:00:33 +0200
+Subject: [PATCH] Fix segfaults in case icons are missing or not found
+
+
+Signed-off-by: Andreas Mueller <schnitzeltony@gmx.de>
+---
+ thunar/thunar-location-button.c |    7 +++++--
+ thunar/thunar-window.c          |   13 +++++++++----
+ 2 files changed, 14 insertions(+), 6 deletions(-)
+
+diff --git a/thunar/thunar-location-button.c b/thunar/thunar-location-button.c
+index 49be1f4..20d7110 100644
+--- a/thunar/thunar-location-button.c
++++ b/thunar/thunar-location-button.c
+@@ -462,9 +462,12 @@ thunar_location_button_file_changed (ThunarLocationButton *location_button,
+       /* update the icon for the image */
+       icon_factory = thunar_icon_factory_get_for_icon_theme (icon_theme);
+       icon = thunar_icon_factory_load_file_icon (icon_factory, file, location_button->file_icon_state, size);
+-      gtk_image_set_from_pixbuf (GTK_IMAGE (location_button->image), icon);
++      if (G_LIKELY (icon != NULL))
++      {
++        gtk_image_set_from_pixbuf (GTK_IMAGE (location_button->image), icon);
++        g_object_unref (G_OBJECT (icon));
++      }
+       g_object_unref (G_OBJECT (icon_factory));
+-      g_object_unref (G_OBJECT (icon));
+ 
+       /* show the image widget */
+       gtk_widget_show (location_button->image);
+diff --git a/thunar/thunar-window.c b/thunar/thunar-window.c
+index d258d8f..2ed1af7 100644
+--- a/thunar/thunar-window.c
++++ b/thunar/thunar-window.c
+@@ -2410,13 +2410,18 @@ thunar_window_current_directory_changed (ThunarFile   *current_directory,
+   gtk_action_set_sensitive (action, (thunar_file_get_item_count (current_directory) > 0));
+   gtk_action_set_visible (action, (thunar_file_is_root (current_directory) && thunar_file_is_trashed (current_directory)));
+ 
+-  /* set window title and icon */
++  /* set window title */
+   title = g_strdup_printf ("%s - %s", thunar_file_get_display_name (current_directory), _("File Manager"));
+-  icon = thunar_icon_factory_load_file_icon (window->icon_factory, current_directory, THUNAR_FILE_ICON_STATE_DEFAULT, 48);
+   gtk_window_set_title (GTK_WINDOW (window), title);
+-  gtk_window_set_icon (GTK_WINDOW (window), icon);
+-  g_object_unref (G_OBJECT (icon));
+   g_free (title);
++
++  /* set window icon */
++  icon = thunar_icon_factory_load_file_icon (window->icon_factory, current_directory, THUNAR_FILE_ICON_STATE_DEFAULT, 48);
++  if (G_LIKELY (icon != NULL))
++  {
++    gtk_window_set_icon (GTK_WINDOW (window), icon);
++    g_object_unref (G_OBJECT (icon));
++  }
+ }
+ 
+ 
+-- 
+1.7.4.4
+
diff --git a/meta-xfce/recipes-xfce/thunar/thunar_1.2.2.bb b/meta-xfce/recipes-xfce/thunar/thunar_1.2.2.bb
index c978855..1c553ab 100644
--- a/meta-xfce/recipes-xfce/thunar/thunar_1.2.2.bb
+++ b/meta-xfce/recipes-xfce/thunar/thunar_1.2.2.bb
@@ -4,21 +4,18 @@  LICENSE = "GPLv2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 DEPENDS = "exo gtk+ gdk-pixbuf libxfce4util libxfce4ui libsm dbus-glib startup-notification libnotify"
 
-PR = "r0"
+PR = "r1"
 
 inherit xfce
 
 # SRC_URI must follow inherited one
 SRC_URI = "http://archive.xfce.org/src/xfce/${PN}/${@'${PV}'[0:3]}/Thunar-${PV}.tar.bz2 \
            file://relative-symlinks-docs.patch \
+           file://fix-segfault-no-icons.patch \
 "
 
 S = "${WORKDIR}/Thunar-${PV}/"
 
-
-# no/minimum(default)/yes/full(fails <- Werror)
-#EXTRA_OECONF += "--enable-debug=yes"
-
 FILES_${PN} += "${libdir}/thunarx-2/* \
                 ${libdir}/xfce4/panel/plugins/* \
                 ${libdir}/Thunar/[Tt]hunar* \