[oe-commits] Andreas Müller : thunar: Fix segfault in case no icon-theme is selected/installed

git version control git at git.openembedded.org
Fri Aug 12 06:27:04 UTC 2011


Module: meta-openembedded.git
Branch: master
Commit: 187c1c9bb8679bb07636730e01b9c3c4c5ed9cdf
URL:    http://git.openembedded.org/?p=meta-openembedded.git&a=commit;h=187c1c9bb8679bb07636730e01b9c3c4c5ed9cdf

Author: Andreas Müller <schnitzeltony at gmx.de>
Date:   Fri Aug 12 06:21:22 2011 +0000

thunar: Fix segfault in case no icon-theme is selected/installed

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 at gmx.de>
Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>

---

 .../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(-)

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 at 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 at 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* \





More information about the Openembedded-commits mailing list