static void
nautilus_desktop_directory_init (NautilusDesktopDirectory *desktop)
{
	desktop->details = g_new0 (NautilusDesktopDirectoryDetails, 1);

	desktop->details->callbacks = g_hash_table_new_full
		(merged_callback_hash, merged_callback_equal,
		 NULL, (GDestroyNotify)merged_callback_destroy);
	desktop->details->monitors = g_hash_table_new_full (NULL, NULL,
							    NULL, (GDestroyNotify)merged_monitor_destroy);

	update_desktop_directory (NAUTILUS_DESKTOP_DIRECTORY (desktop));
}
static void
caja_desktop_directory_init (CajaDesktopDirectory *desktop)
{
    desktop->details = g_new0 (CajaDesktopDirectoryDetails, 1);

    desktop->details->callbacks = g_hash_table_new_full
                                  (merged_callback_hash, merged_callback_equal,
                                   NULL, (GDestroyNotify)merged_callback_destroy);
    desktop->details->monitors = g_hash_table_new_full (NULL, NULL,
                                 NULL, (GDestroyNotify)merged_monitor_destroy);

    update_desktop_directory (CAJA_DESKTOP_DIRECTORY (desktop));

    eel_preferences_add_callback (CAJA_PREFERENCES_DESKTOP_IS_HOME_DIR,
                                  desktop_directory_changed_callback,
                                  desktop);
}
static void
nemo_desktop_directory_init (NemoDesktopDirectory *desktop)
{
	desktop->details = g_new0 (NemoDesktopDirectoryDetails, 1);

	desktop->details->callbacks = g_hash_table_new_full
		(merged_callback_hash, merged_callback_equal,
		 NULL, (GDestroyNotify)merged_callback_destroy);
	desktop->details->monitors = g_hash_table_new_full (NULL, NULL,
							    NULL, (GDestroyNotify)merged_monitor_destroy);

	update_desktop_directory (NEMO_DESKTOP_DIRECTORY (desktop));

	g_signal_connect_swapped (nemo_preferences, "changed::" NEMO_PREFERENCES_DESKTOP_IS_HOME_DIR,
				  G_CALLBACK(desktop_directory_changed_callback),
				  desktop);
}
static void
desktop_directory_changed_callback (gpointer data)
{
    update_desktop_directory (CAJA_DESKTOP_DIRECTORY (data));
    caja_directory_force_reload (CAJA_DIRECTORY (data));
}
static void
desktop_directory_changed_callback (gpointer data)
{
	update_desktop_directory (NEMO_DESKTOP_DIRECTORY (data));
	nemo_directory_force_reload (NEMO_DIRECTORY (data));
}
static void
desktop_directory_changed_callback (gpointer data)
{
	update_desktop_directory (NAUTILUS_DESKTOP_DIRECTORY (data));
	nautilus_directory_force_reload (NAUTILUS_DIRECTORY (data));
}