summaryrefslogtreecommitdiff
path: root/libnautilus-extensions/nautilus-icon-container.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnautilus-extensions/nautilus-icon-container.c')
-rw-r--r--libnautilus-extensions/nautilus-icon-container.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/libnautilus-extensions/nautilus-icon-container.c b/libnautilus-extensions/nautilus-icon-container.c
index 66a5b5ba5..4f009576b 100644
--- a/libnautilus-extensions/nautilus-icon-container.c
+++ b/libnautilus-extensions/nautilus-icon-container.c
@@ -123,6 +123,7 @@ static void activate_selected_items (NautilusIconConta
static void nautilus_icon_container_initialize_class (NautilusIconContainerClass *class);
static void nautilus_icon_container_initialize (NautilusIconContainer *container);
static void nautilus_icon_container_theme_changed (gpointer user_data);
+static void nautilus_icon_container_annotation_changed (gpointer user_data);
static void compute_stretch (StretchState *start,
StretchState *current);
@@ -147,6 +148,7 @@ static gboolean is_renaming (NautilusIconContainer *contain
static gboolean is_renaming_pending (NautilusIconContainer *container);
static void process_pending_icon_to_rename (NautilusIconContainer *container);
+
NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusIconContainer,
nautilus_icon_container,
GNOME_TYPE_CANVAS)
@@ -2273,7 +2275,6 @@ select_previous_or_next_name (NautilusIconContainer *container,
}
/* GtkObject methods. */
-
static void
destroy (GtkObject *object)
{
@@ -2320,6 +2321,10 @@ destroy (GtkObject *object)
gtk_object_destroy (GTK_OBJECT (container->details->rename_widget));
}
+ /* remove the annotation preference callbacks */
+ nautilus_preferences_remove_callback (NAUTILUS_PREFERENCES_LOOKUP_ANNOTATIONS, nautilus_icon_container_annotation_changed, container);
+ nautilus_preferences_remove_callback (NAUTILUS_PREFERENCES_DISPLAY_ANNOTATIONS, nautilus_icon_container_annotation_changed, container);
+
/* FIXME: The code to extract colors from the theme should be in FMDirectoryView, not here.
* The NautilusIconContainer class should simply provide calls to set the colors.
*/
@@ -3383,6 +3388,10 @@ nautilus_icon_container_initialize (NautilusIconContainer *container)
gtk_signal_connect (GTK_OBJECT (container), "focus-out-event", handle_focus_out_event, NULL);
+ /* add callbacks to notify us when the annotation state changes */
+ nautilus_preferences_add_callback (NAUTILUS_PREFERENCES_LOOKUP_ANNOTATIONS, nautilus_icon_container_annotation_changed, container);
+ nautilus_preferences_add_callback (NAUTILUS_PREFERENCES_DISPLAY_ANNOTATIONS, nautilus_icon_container_annotation_changed, container);
+
/* FIXME: The code to extract colors from the theme should be in FMDirectoryView, not here.
* The NautilusIconContainer class should simply provide calls to set the colors.
*/
@@ -5084,6 +5093,13 @@ update_label_color (NautilusBackground *background,
}
}
+/* handle the annotation preference changes by updating the icons */
+static void
+nautilus_icon_container_annotation_changed (gpointer user_data)
+{
+ nautilus_icon_container_request_update_all (NAUTILUS_ICON_CONTAINER (user_data));
+}
+
/* Return if the icon container is a fixed size */
gboolean