/* handle the theme changing */ static void nautilus_file_background_theme_changed (gpointer user_data) { NautilusFile *file; EelBackground *background; background = EEL_BACKGROUND (user_data); file = g_object_get_data (G_OBJECT (background), "eel_background_file"); if (file) { saved_settings_changed_callback (file, background); } }
static void eel_background_finalize (GObject *object) { EelBackground *self = EEL_BACKGROUND (object); g_free (self->details->color); if (self->details->bg != NULL) { g_object_unref (G_OBJECT (self->details->bg)); self->details->bg = NULL; } free_background_surface (self); free_fade (self); G_OBJECT_CLASS (eel_background_parent_class)->finalize (object); }
static void desktop_background_gconf_notify_cb (GConfClient *client, guint notification_id, GConfEntry *entry, gpointer data) { EelBackground *background; guint notification_timeout_id; background = EEL_BACKGROUND (data); notification_timeout_id = GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (background), "desktop_gconf_notification_timeout")); if (strcmp (entry->key, "/desktop/gnome/background/stamp") == 0) { if (notification_timeout_id != 0) g_source_remove (notification_timeout_id); call_settings_changed (background); } else if (notification_timeout_id == 0) { notification_timeout_id = g_timeout_add (300, (GSourceFunc) call_settings_changed, background); g_object_set_data (G_OBJECT (background), "desktop_gconf_notification_timeout", GUINT_TO_POINTER (notification_timeout_id)); } }