Nautilus freeze break request



In gnome 2.12 we added some special case semantics to
gnome_vfs_drive/volume_mount() to support modern mount helper. If the
mount helper displays error dialogs itself we return an error string of
"", and in this case the app shouldn't display any error dialog.

Nautilus has code that handles this in the eject and unmount case, but
we apparently forgot this for the mount case. The attached patch fixes
this. Without it you'll get a real error dialog plus an empty one when
mounting a volume failed (if you're using gnome-mount or hal-mount).

Ok to commit?

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 Alexander Larsson                                            Red Hat, Inc 
                   alexl redhat com    alla lysator liu se 
He's a time-tossed day-dreaming gangster who hides his scarred face behind a 
mask. She's a mistrustful Buddhist pearl diver living homeless in New York's 
sewers. They fight crime! 
Index: src/file-manager/fm-directory-view.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/file-manager/fm-directory-view.c,v
retrieving revision 1.737
diff -u -p -r1.737 fm-directory-view.c
--- src/file-manager/fm-directory-view.c	28 Feb 2006 21:56:56 -0000	1.737
+++ src/file-manager/fm-directory-view.c	7 Mar 2006 09:40:22 -0000
@@ -6149,6 +6149,11 @@ drive_mounted_callback (gboolean succeed
 			gpointer data)
 {
 	if (!succeeded) {
+		if (*error == 0 &&
+		    detailed_error != NULL && *detailed_error == 0) {
+			/* This means the mount command displays its own errors */
+			return;
+		}
 		eel_show_error_dialog_with_details (error, NULL,
 						    detailed_error, NULL);
 	}
@@ -8175,9 +8180,14 @@ activation_drive_mounted_callback (gbool
 	parameters->mount_success &= succeeded;
 
 	if (!succeeded && !parameters->cancelled) {
-		eel_show_error_dialog_with_details (error, NULL,
-						    detailed_error, 
-						    NULL);
+		if (*error == 0 &&
+		    detailed_error != NULL && *detailed_error == 0) {
+			/* This means the mount command displays its own errors */
+		}  else {
+			eel_show_error_dialog_with_details (error, NULL,
+							    detailed_error, 
+							    NULL);
+		}
 	}
 
 	if (--parameters->pending_mounts > 0) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]