Hi,

yesterday I added a new "Experimental" page to the config dialog
of the Folder View desktop containment in master. It offers two
options that enable a different way of interacting with widgets
on the desktop:

- Pressing and holding for $platform_delay to engage a 'move' mode
  where as long as the press is kept, the applet moves with the
  pointer.

- Optionally, reveal the handle on press-and-hold as well. This
  is of course technically necessary (without the handle you can't
  resize or rotate), but I intentionally made it a separate option
  because the current handle design is not the only possibility
  once you go modal like this, and this allows getting a feel for
  how things are without the handle bar we're used to.

I encourage you to enable this mode (both with and without the
optional handle reveal) and play with it for a day or so.

My original assumption was that press-and-hold would be unintuitive
and cumbersome (although platforms like Android use it as well), but
in practice I find it makes the desktop feel simpler and less hyper-
active. A separate concern is that "you need to hold" interaction
patterns are usually an accessibility concern - but this is the case
for drag-by-handle, too, and a modal design would make it easier to
add keyboard controls to move applets or other a11n approaches.

Additionally, the implementation currently intentionally ignores
whether widgets are locked or not. With no handles flying in on
hover, and move/edit mode being hard to enable accidentally, the
lock itself becomes much less necessary - maybe altogether super-
fluous even, allowing for further simplification.

Some implementation notes:

* Engaging move/edit mode by press-and-hold asks everything in the
  applet to abort mouse interaction and ungrab. This can be caught
  in applet code via the onCanceled handlers in MouseArea and
  (also new as of yesterday, added by me) and MouseEventListener -
  most applet code actually needs no changes, but e.g. Folder View
  itself (when used as widget) needs to do things like potentially
  cancel rubber band selection mode, similar as if a release event
  were to happen.

* A press-and-hold will only engage move/edit mode if the cursor
  stays within the drag distance. That means if you press-and-hold
  and move around more than a few px - say to do rubber band
  selection or use a pen tool - that won't be interfered with. This
  coarse check seems to work well in practice; even taking a long
  time to select individual letters in note widgets is no problem
  here.

Known issues:

* The placeholder (common to Desktop and FV) sizing with handle
  reveal disabled is wrong by the handle width.

* This impl is a prototype, don't expect polish.

I'm not really sure what all of this means yet (although Netrunner
intends to ship some form of this eventually), but it's food for
thought.


Cheers,
Eike
_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel

Reply via email to