GNOME Bugzilla – Bug 347658
Copy (and other file operations) abort if all folder windows are closed
Last modified: 2011-10-20 15:27:55 UTC
I don't have Nautilus displaying my desktop, so it isn't running unless I am actually using it. It appears that the nautilus process exits when there are no folder windows open, even if a file operations is in progress - which causes the operation to abort with no notification. It would be good if nautilus did not exit until the operation had completed, as the user may think it has completed, if they weren't watching the operation progress closely. Steps to reproduce: 1) set nautilus to not display the desktop 2) start a file operation, such as copying a large file 3) close all nautilus folder windows 4) the copy aborts
Confirmed with Nautilus 2.14.1 on Ubuntu Dapper.
Still valid with 2.21.5.
*** Bug 536237 has been marked as a duplicate of this bug. ***
*** Bug 539323 has been marked as a duplicate of this bug. ***
Bug is still here with GNOME 2.26.1 (Ubuntu Jaunty) and is very annoying since user thinks that its files have been copied whereas copy was interrupted without a warning. User may then delete the files if he think they have been successfully copied. There is no message to alert him. Please let the copying process running until the end even if user close the current nautilus window
Created attachment 157422 [details] [review] Don't quit main loop until all file operations are finished. I have wrote a fix. But I don't know is solution is good. I am noob in GTK. I have chosen the most simple solution that I see. Other solutions that I taken a look: 1. Convert CommonJob in nautilus-file-operations to GObjects which provide "destroy" signal and add them to main loop registrants with nautilus_main_event_loop_register. (Too complicated.) 2. Add "destroy" signal to NautilusProgressInfo and register in main loop. (NautilusProgressInfo is in libnautilus-private but main loop is in main module, so some libnautilus-private function calls need to return a pointers to NautilusProgressInfo instances. I have tried to implement this, but there still many cases where file operation starts internally in libnautilus-private. This problem also affects solution no. 1.) 3. Add proxy object as in my solution and notify main module about new jobs using signals. Then add jobs to main loop registrants with nautilus_main_event_loop_register. (I think it is more complicated analogue of implemented solution.)
*** Bug 589132 has been marked as a duplicate of this bug. ***
This has been fixed since 3.0.