diff options
Diffstat (limited to 'libnautilus-extensions/nautilus-icon-container.c')
-rw-r--r-- | libnautilus-extensions/nautilus-icon-container.c | 18 |
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 |