View | Details | Raw Unified | Return to bug 114914
Collapse All | Expand All

(-)libnautilus-private/nautilus-trash-directory.c (+10 lines)
Lines 265-270 Link Here
265
}
265
}
266
266
267
static void
267
static void
268
volume_unmounted_callback (GnomeVFSVolumeMonitor *monitor,
269
			   GnomeVFSVolume *volume,
270
			   NautilusTrashDirectory *trash)
271
{
272
	remove_volume (trash, volume);
273
}
274
275
static void
268
nautilus_trash_directory_instance_init (NautilusTrashDirectory *trash)
276
nautilus_trash_directory_instance_init (NautilusTrashDirectory *trash)
269
{
277
{
270
	GnomeVFSVolumeMonitor *volume_monitor;
278
	GnomeVFSVolumeMonitor *volume_monitor;
Lines 278-283 Link Here
278
				 G_CALLBACK (volume_mounted_callback), trash, 0);
286
				 G_CALLBACK (volume_mounted_callback), trash, 0);
279
	g_signal_connect_object (volume_monitor, "volume_pre_unmount",
287
	g_signal_connect_object (volume_monitor, "volume_pre_unmount",
280
				 G_CALLBACK (volume_unmount_started_callback), trash, 0);
288
				 G_CALLBACK (volume_unmount_started_callback), trash, 0);
289
	g_signal_connect_object (volume_monitor, "volume_unmounted",
290
				 G_CALLBACK (volume_unmounted_callback), trash, 0);
281
}
291
}
282
292
283
/* Finish initializing a new NautilusTrashDirectory. We have to do the
293
/* Finish initializing a new NautilusTrashDirectory. We have to do the
(-)libnautilus-private/nautilus-merged-directory.c~ (+35 lines)
Lines 27-32 Link Here
27
#include "nautilus-merged-directory.h"
27
#include "nautilus-merged-directory.h"
28
28
29
#include "nautilus-directory-private.h"
29
#include "nautilus-directory-private.h"
30
#include "nautilus-directory-notify.h"
30
#include "nautilus-file.h"
31
#include "nautilus-file.h"
31
#include <eel/eel-glib-extensions.h>
32
#include <eel/eel-glib-extensions.h>
32
#include <gtk/gtksignal.h>
33
#include <gtk/gtksignal.h>
Lines 540-545 Link Here
540
}
541
}
541
542
542
static void
543
static void
544
real_directory_notify_files_removed (NautilusDirectory *real_directory)
545
{
546
	GList *files, *l;
547
548
	files = nautilus_directory_get_file_list (real_directory);
549
550
	for (l = files; l; l = l->next) {
551
		NautilusFile *file;
552
		char *uri;
553
554
		file = NAUTILUS_FILE (l->data);
555
		uri = nautilus_file_get_uri (file);
556
		nautilus_file_unref (file);
557
558
		l->data = uri;
559
	}
560
561
	if (files)
562
		nautilus_directory_notify_files_removed (files);
563
564
	for (l = files; l; l = l->next) {
565
		char *uri;
566
567
		uri = l->data;
568
		g_free (uri);
569
	}
570
571
	g_list_free (files);
572
}
573
574
static void
543
merged_remove_real_directory (NautilusMergedDirectory *merged,
575
merged_remove_real_directory (NautilusMergedDirectory *merged,
544
			      NautilusDirectory *real_directory)
576
			      NautilusDirectory *real_directory)
545
{
577
{
Lines 547-552 Link Here
547
	g_return_if_fail (NAUTILUS_IS_DIRECTORY (real_directory));
579
	g_return_if_fail (NAUTILUS_IS_DIRECTORY (real_directory));
548
	g_return_if_fail (g_list_find (merged->details->directories, real_directory) != NULL);
580
	g_return_if_fail (g_list_find (merged->details->directories, real_directory) != NULL);
549
581
582
	/* Since the real directory will be going away, act as if files were removed */
583
	real_directory_notify_files_removed (real_directory);
584
550
	/* Remove this directory from callbacks and monitors. */
585
	/* Remove this directory from callbacks and monitors. */
551
	eel_g_hash_table_safe_for_each (merged->details->callbacks,
586
	eel_g_hash_table_safe_for_each (merged->details->callbacks,
552
					merged_callback_remove_directory_cover,
587
					merged_callback_remove_directory_cover,

Return to bug 114914