2 ms·
It's also worth considering metaphors that don't cause confusion because of e.g. conflict with other computing concepts that use the same terms, but fall short
by cxr 3y ago
It's also worth considering metaphors that don't cause confusion because of e.g. conflict with other computing concepts that use the same terms, but fall short of their analog.
I'm surprised drag and drop hasn't been improved, especially since the proliferation of touch devices.
The idea behind drag and drop is that you should be able to grab something like in real life, but the way it's implemented in almost every system is lacking. In real life, I can grab something, start to move it, notice that something else needs to be shifted around, put the first thing down, focus my attention on the second thing and deal with it, then pick the first thing back up and complete my original goal from where I left off. It doesn't work like this on the desktop. If you notice midway through your journey from source to destination that the destination isn't actually ready for the drop, your dragged item goes flying back to the source and the whole thing is canceled. You have to then prepare the destination, return to the source, start dragging it again, and then release it to complete the drop. The modality of dragging leads to anxiety. It's worse on touchpads, because I fear accidental releases and running out of space in the direction my finger is traveling.
I want drag and drop to be completed by an independent mouse click, not on release. You start dragging. That should create an icon of roughly the same size as a desktop icon. If you release it anywhere it'll stay in that position, allowing you to shuffle through windows, sidebars, etc. When you know your destination is in a state that's ready to receive the dropped item, you pick it back up, bring it to its intended drop point, release it from the cursor, and complete the drop with an additional tap/click to actually "approve" it, i.e. "send" it to the destination—otherwise it stays sitting around waiting for you to e.g. pick it back up again, dismiss it, etc. This would also afford programmers the ability to add context menus to drag and drop items, which would lead to people (users and programmers) better modeling them in a truer object-oriented way.