Updating branch refs/heads/master
         to d6d82a7534f2e79043719c6d2d60f32c9317e1cb (commit)
       from b0ddb08e2d4a68c5360662112bb71544dd6cf2e0 (commit)

commit d6d82a7534f2e79043719c6d2d60f32c9317e1cb
Author: Nick Schermer <n...@xfce.org>
Date:   Thu Nov 1 21:02:34 2012 +0100

    Clear cached icon when trash changed (bug #9432).

 thunar/thunar-icon-factory.c |   17 +++++++++++++++++
 thunar/thunar-icon-factory.h |    4 ++++
 thunar/thunar-trash-action.c |    4 ++++
 3 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/thunar/thunar-icon-factory.c b/thunar/thunar-icon-factory.c
index 72cb529..2f66ce9 100644
--- a/thunar/thunar-icon-factory.c
+++ b/thunar/thunar-icon-factory.c
@@ -864,3 +864,20 @@ thunar_icon_factory_load_file_icon (ThunarIconFactory  
*factory,
 
   return icon;
 }
+
+
+
+/**
+ * thunar_icon_factory_clear_pixmap_cache:
+ * @file : a #ThunarFile.
+ *
+ * Unset the pixmap cache on a file to force a reload on the next request.
+ **/
+void
+thunar_icon_factory_clear_pixmap_cache (ThunarFile *file)
+{
+  _thunar_return_if_fail (THUNAR_IS_FILE (file));
+
+  /* unset the data */
+  g_object_set_qdata (G_OBJECT (file), thunar_icon_factory_store_quark, NULL);
+}
diff --git a/thunar/thunar-icon-factory.h b/thunar/thunar-icon-factory.h
index fde1d09..3ceefc6 100644
--- a/thunar/thunar-icon-factory.h
+++ b/thunar/thunar-icon-factory.h
@@ -41,6 +41,8 @@ typedef struct _ThunarIconFactory      ThunarIconFactory;
  **/
 #define THUNAR_THUMBNAIL_SIZE (128)
 
+
+
 GType                  thunar_icon_factory_get_type           (void) 
G_GNUC_CONST;
 
 ThunarIconFactory     *thunar_icon_factory_get_default        (void);
@@ -56,6 +58,8 @@ GdkPixbuf             *thunar_icon_factory_load_file_icon     
(ThunarIconFactory
                                                                
ThunarFileIconState       icon_state,
                                                                gint            
          icon_size);
 
+void                   thunar_icon_factory_clear_pixmap_cache (ThunarFile      
         *file);
+
 G_END_DECLS;
 
 #endif /* !__THUNAR_ICON_FACTORY_H__ */
diff --git a/thunar/thunar-trash-action.c b/thunar/thunar-trash-action.c
index 90a15ee..ed97e78 100644
--- a/thunar/thunar-trash-action.c
+++ b/thunar/thunar-trash-action.c
@@ -26,6 +26,7 @@
 #include <thunar/thunar-stock.h>
 #include <thunar/thunar-private.h>
 #include <thunar/thunar-trash-action.h>
+#include <thunar/thunar-icon-factory.h>
 
 
 
@@ -137,6 +138,9 @@ thunar_trash_action_changed (ThunarTrashAction 
*trash_action,
   _thunar_return_if_fail (trash_action->trash_bin == trash_bin);
   _thunar_return_if_fail (THUNAR_IS_FILE (trash_bin));
 
+  /* unset the pixmap cache on the file */
+  thunar_icon_factory_clear_pixmap_cache (trash_bin);
+
   /* adjust the stock icon appropriately */
   if (thunar_file_get_item_count (trash_bin) > 0) 
     g_object_set (G_OBJECT (trash_action), "stock-id", 
THUNAR_STOCK_TRASH_FULL, NULL);
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to