Opened 4 years ago

Closed 4 years ago

#238 closed enhancement (fixed)

Changeset 4853

Reported by: Mikhail Malyshev Owned by: Thore Böckelmann
Priority: normal Milestone: 4.0-2015R4
Component: Slider.mui Version: 4.0-nightly build
Severity: minor Keywords:
Cc: OS Platform: All
Blocked By: Blocking:
Release Notes:

Description

  • Slider.c: reenabled the "jump to default value on doubleclick" feature.

Problem

If you click on empty area to nudge the gadget by one a few times
and then accidentally click the knob, everything resets

Enhancement recommendation

This is not very convenient. IMHO it should reset on double click
only if its on the knob double click, and not empty part click + knob click

Change History (8)

comment:1 Changed 4 years ago by Thore Böckelmann

Owner: set to Thore Böckelmann
Priority: undecidednormal
Status: newassigned

You are right. The current behaviour can really become unintuitive.

comment:2 Changed 4 years ago by Thore Böckelmann

Resolution: fixed
Status: assignedclosed

In 4872:

  • Slider.c: reworked the "default value on double click" feature to accept double clicks which happen inside the knob only. If the first click happens outside the knob and the second one inside the knob this will be ignored. This closes #238.

comment:3 Changed 4 years ago by Mikhail Malyshev

Resolution: fixed
Status: closedreopened

One more enhancement.

It should not react to double click immediately.

i.e. not until you release the mouse button for the second click

so in practice the following situation needs to be excluded:

drag slider, click hold ⇒ currently resets to default immediately

should be:
drag slider, click hold ⇒ allow more dragging

only clean double click needs to reset the slider.

comment:4 Changed 4 years ago by Thore Böckelmann

I just checked the complete source and all other classes (i.e. List.mui) trigger any double click action at the second "mouse down" event, not at the second "mouse up" event. Hence the current implementation is consistent.

comment:5 Changed 4 years ago by Mikhail Malyshev

A few thoughts…

Consistency and type of action that follows might be different.
Do the other classes expect any alternative possible actions on second click? Probably not.

As far as I know, on amiga systems actions did not take place until the button is released (eg. you can drag the mouse out of the clicked button and it will not be considered a click if it was not released inside the button area)

In our current case a quick click hold & drag, then click hold again to drag will not work.

In case of sliders, drag bars what ever, when we click and hold, we expect that we hold it and might with to drag them later, if we release it without making a move, then it can be considered a double click.

Other possible solutions…

  1. Do double click action only if the value of the slider has not changed after previous click. i.e. it was just dragged and maybe I wish to continue dragging it again. (complicated and still error prone) Since then we have a problem with click, click hold and drag. (some mice buttons sometimes give a double click effect on a single mouse button press (jitter))
  1. Triple click ? This will definitely be harder to do by accident.

comment:6 Changed 4 years ago by Mikhail Malyshev

One more reason why action should happen on mouse release.

  • the dragging gadget will not jump out of focus of the pointer immediately, and when no movement was made a reset action on release of the gadget will be a bit more logical.

comment:7 Changed 4 years ago by Thore Böckelmann

Milestone: 4.0-2015R34.0-2015R4

Pushing this to the next milestone.

I really think this issue needs more thoughts. For me the reaction upon the second click is perfectly ok and by far more intuitive than a reaction upon the second release. However, this is nothing that will become optional.

comment:8 Changed 4 years ago by Thore Böckelmann

Resolution: fixed
Status: reopenedclosed

I thought about this issue a lot on the last weeks. I came to the conclusion that the current implementation will stay as it is. The reason is that all double click events I know of always happen on the second down event and never on the second up event. As such the current implementation is consistent to all other cases and this is more important than the very subjective feeling of one single persond.

Note: See TracTickets for help on using tickets.