Comment 13 for bug 205773

Revision history for this message
CKX (chester-kollschen) wrote :

I encounter the temporary Nautilus freeze, too, when dragging files over the "Network" item in the "Places" sidebar panel.

I observed this issue a bit and hope my results can help to clarify things a bit.

First, it does not matter how many or what kind of files you drag. It also does not matter whether you drag them from or to the Nautilus window. The mentioned freeze may occur when you start an arbitrary drag-action and hover the items over the "Network" item in Nautilus' "Places" sidebar panel.

What happens after the freeze depends on your reaction:

If you are patient enough and keep the mouse button pressed all the time during the freeze until Nautilus wakes up again, you can continue the drag-action normally and drop the items at the desired location without any problems.

But if you release the mouse button during the freeze, X will post a MOUSE_UP event to the event queue. When Nautilus wakes up after its freeze, it will interprete that event as an intended drop. So it will try to copy the dragged items to "Network" which is where the mouse pointer was when the freeze began. However, copying to "Network" is an unsupported action and will fail with the mentioned error message.

This is what I think may cause that freeze:

Applications usually analyze the data that is being dragged over them to signal if they would accept the data to be dropped here. This is shown to the user as a symbol next to mouse cursor which can, for example, be a forbidden sign.

Since hardy, Nautilus uses gvfs instead of gnome-vfs. gvfs mounts its backends lazily when they are needed. I think there may be a problem with the implemenation of Nautilus' "Network" item. If it is uninitialized, it may take a while to scan the network for nodes. If the user drags any data over the "Network" item, Nautilus asks the "Network" item if the data would be accepted here for drop. If "Network" is uninitialized, it will initialize at this very moment, scanning the network and causing the temporary freeze.