Emit clicked when double click expires
Needs ReviewPublic

Authored by broulik on Feb 26 2018, 10:14 AM.

Details

Reviewers
graesslin
Group Reviewers
Plasma
VDG
Summary

Press and hold isn't particularly intuitive. Instead, when clicked and the mouse isn't moved away, the click is emitted (and as such the menu is opened) when the double click timeout expires. Press and hold still works mostly for touch input but is merged with double click handling to simplify it.

Test Plan

Comes with unit test

  • Double click to close still works
  • Clicked, waited, menu opened
  • Pressed and held, waited, menu opened
  • With close on double click disabled behavior is as before, click just opens the menu

Diff Detail

Repository
R129 Window Decoration Library
Lint
Lint Skipped
Unit
Unit Tests Skipped
broulik created this revision.Feb 26 2018, 10:14 AM
Restricted Application added a project: Plasma. · View Herald TranscriptFeb 26 2018, 10:14 AM
Restricted Application added a subscriber: plasma-devel. · View Herald Transcript
broulik requested review of this revision.Feb 26 2018, 10:14 AM

Does this result in a behavior change such that a slow user with a mouse who clicks and then leaves the mouse in the same place for a moment will get a context menu? If so, I'm not sure that's a good idea. Lots of users aren't so great with non-touch input devices and this would result in a lot of frustrating interactions.

Press and hold isn't particularly intuitive.

When enabling this behavior (which is default off) a message is shown with the following content: "Close by double clicking:\n To open the menu, keep the button pressed until it appears."

Given that I'm not sure whether the base assumption that this is not intuitive holds. We clearly advertise this to the users. The behavior by the way was inspired by other components such as toolbar buttons with dropdown list which also implement press and hold.

Given that I'm not sure whether the base assumption that this is not intuitive holds.

Having to explain to a user what to do hardly qualifies as intuitive.

The behavior by the way was inspired by other components such as toolbar buttons with dropdown list which also implement press and hold.

Which doesn't make them less painful to use.

Given that I'm not sure whether the base assumption that this is not intuitive holds.

Having to explain to a user what to do hardly qualifies as intuitive.

No guarantee that users would find the new way intuitive.

I kindly ask to look at the discussion ack in reviewboard when I implemented this feature. It was one of the most difficult changes to get in and this was the only solution we came up with which seemed to satisfy all concerns.

Does this result in a behavior change such that a slow user with a mouse who clicks and then leaves the mouse in the same place for a moment will get a context menu? If so, I'm not sure that's a good idea. Lots of users aren't so great with non-touch input devices and this would result in a lot of frustrating interactions.

Ignore this comment. I had misunderstood the patch and the underlying feature itself. I rescind any and all concern regarding this patch.

mart added a subscriber: mart.Mar 1 2018, 4:59 PM

I kindly ask to look at the discussion ack in reviewboard when I implemented this feature. It was one of the most difficult changes to get in and this was the only solution we came up with which seemed to satisfy all concerns.

where is that discussion? could it be linked here? (sorry, I have no recall of it so i am not sure even what to search for)

personally, I would find this behavior way more intuitive, for the menu button, i expect it to open the menu on click, no matter what i configured for double click which is a completely different action from the user POV (also given that Windows has this behavior since windows95 it's something pretty entrenched in the expected behavior for that menu button)
it's just.. a bit complicated to implement, but that's an implementation detail, not to influence the ui... unless it can't really be avoided.
Long press on desktop is generally bad, i know we have it for some toolbuttonsand for plasmoid handles, but none of them are optimal, toolbuttons should definitely be solved, for plasmoids a bit more difficult, but should be improved as well

looking at the code, it seems to make sense to have a delay that corresponds to the double click interval, that may make the popup feel not super immediate(so the timer stuff is important is enabled only when the double click to close is enabled), but better than the unpredictable and undiscoverable long press.

I found https://git.reviewboard.kde.org/r/103995/ but it references older changes which I just didn't find with git log.

mart added a comment.Mar 23 2018, 2:16 PM

on the link i see mostly the motivation as a personal opinion of Thomas L.
The fact i kinda defend this diff is that the vdg is pushing to limit and drop the long press buttons menus on most places.
this is a thing i think should take proper discussion in the vdg and codified as a specific HIG, whatever the final outcome is

mart added a reviewer: VDG.Mar 23 2018, 2:16 PM

So, what shall we do with this?

Why is the press and hold timer still needed? It should be enough to only test on double click expiration with this patch and open the menu on release of mouse button afterwards. We should accept this behavioral change in order to reduce code complexity (people should automatically understand that the menu opens from now on on button release after they have experienced it once trying it with long click). But if you want to split this up in a second patch I'm fine with it.

Otherwise I'm in favor of the change.

So do you want to change this diff or put it in a second diff?