RaisingWindowsDrag&Drop

Summary

Change Metacity so that windows are not raised on left mouse button down when a drag operation is started.

Rationale

Drag&Drop is a common way of operating with files. Many users understand it and it has thus become part of doing their work every day. But Gnome has some problems here: Windows raise as soon as the mouse button is held down, so a user trying to start a drag from a background window will sometimes cover exactly the place where he wants to drop. There is a workaround (hovering over a window's task list entry while dragging will raise it), but it is not really satisfactory: It is not discoverable (new users drag&drop too), takes longer (usually a longer distance has to be traveled, plus the time required to identify the correct task list entry and to hover over it) and is a much more complex motion, making it difficult for people not proficient with mouse usage and increasing the chance of user errors. Many users will just spend time shuffling windows around instead, something that takes time and most users do not enjoy.

Use cases

Adam is writing an email with Evolution and wants to add an attachment. He has an open Nautilus window containing the file, which is larger than the Evolution window (e.g. taking the whole screen). Adam now tries to drag&drop the file there, but cannot do this as the Nautilus window covers the Evolution window completely as soon as he tries. He has to move both windows halfway off the screen to do this.

Scope

Design

Metacity should not raise windows when a drag is started. I don't have access to a MS Windows computer, but I think it handles drag&drop this way. It would also be nice if Alt-tabbing would work while dragging. Sascha Brossman suggests raising (partially) covered windows if they are dragged onto (default behavior on OS X?). This is also a fine idea, though a little period of hovering might be a good idea to prevent accidental raises of unrelated background windows. All these behaviors could possibly be combined.

Also dragging to the buttons in the location bar to switch folders in nautilus, could extend usefulness of drag and drop.

Implementation

Code

Data preservation and migration

Outstanding issues

Note: Parts of this specification were taken from the UsabilityWishlist. Thanks to all contributors.

BoF agenda and discussion

  • Quoth the use cases "He has to move both windows halfway off the screen to do this." - this is simply wrong, and this is the reason we have a window list. Dragging an icon onto a window button and holding it will cause the window to raise. This is the method that Windows uses, and I really don't think it needs improving. --alex@weej.com


CategorySpec

RaisingWindowsDrag&Drop (last edited 2008-08-06 16:31:27 by localhost)