symphonycms/symphony-2 — Issue #951: [2.3 beta] mouseleave on orderable objects worsens usability
Author: eKoeS
Created: 2011-12-09 11:14:22+00:00
State: open

I've noticed that the default behaviour of an orderable object is to de-select items when the mouse leaves the object itself. While I understand the reasons behind it, I think it introduces an usability problem: it happens very often to me to slightly overstep the object boundaries, thus triggering the event. The result is that the selection is canceled even if I still want to order the item!

I think that this behaviour was added because `mouseup` is not enough if it's triggered outside the object boundaries.

This is how I solved the problem in my local branch: instead of listening on the `orderable` object for a `mouseleave` + `mouseup` events, the script listens on `document` for a `mouseup`. In fact, every time a `mouseup` occurs in the document, each `orderable` object is either in `ordering` mode (i.e. an item is being ordered) or not: if it's `ordering`, then the `mouseup` event must necessarily be consequence of the user releasing the mouse button just after a reordering action (after all, we're not in a multi-touch environment). In that case, we can save the new items order and safely detarget the item.

There are drawbacks, as always: it turns out that if an user finds difficult to click the mouse button (e.g. because of inadequate motor skills), `mouseup` and `mousedown` events might occur unintentionally.

Any thoughts?