Page MenuHomePhabricator

Scrolling past a slider will activate a slider during scroll
Open, NormalPublic

Description

When scrolling past an elementary slider, if the mouse is directly over the slider during the scroll, it will change the slider's value as it scrolls past it.

This can easily be tested on the Scroll config page of the elementary config, as there are a large number of sliders, and the config page can scroll. Start scrolling with the mouse over the config page, but not on top of a slider. As it goes over other sliders, you should see the values change.

GodGinrai updated the task description. (Show Details)
GodGinrai raised the priority of this task from to Incoming Queue.
GodGinrai added a project: Restricted Project.
GodGinrai added subscribers: GodGinrai, raster.
GodGinrai updated the task description. (Show Details)Jun 29 2015, 7:03 AM

and how do you propose to fix it.. when a mouse wheel moves slider AND scrolls a scroller? drop wheel support on sliders? drop wheel support on scrollers? add an on_hold flag when wheel is used by scroller (thus it can never work on sliders inside a scroller)?

I would suggest that you disallow moving the slider if a scrolling state already exists. And likewise, disallow the initiation of a scroll if the mouse is currently over a slider.

When starting scrolling:
if (!OVER_SLIDER) {
SCROLLING = true;

Then, when the mouse is over a slider:
if (!SCROLLING) { //allow slider to be moved

that means you say mousewheel cannot work on a slider inside a scroller. you understand that right?

When did I say that? I specifically said it should only be disabled if you are already in a scrolling state.

This comment was removed by devilhorns.
GodGinrai added a comment.EditedJul 1 2015, 8:17 AM

Here's a flowchart that shows the decision process I am describing.

bu5hm4n added a subscriber: bu5hm4n.Jul 6 2015, 3:26 AM

This is not only a issue with slider, also with a nested scroller. and basically every widget which is reacting to wheel events.

@raster what do you think about not redirecting mouse wheel events if the current scroller is currently "scolled"? And if the current scroller is not scroller but htere is a mouse wheel event which gets consumed by a child widget, dont react to it.

stefan_schmidt triaged this task as Normal priority.Jul 24 2015, 2:09 AM
stefan_schmidt added a subscriber: stefan_schmidt.
stefan_schmidt added subscribers: herdsman, JackDanielZ.
stefan_schmidt edited projects, added efl; removed Restricted Project.Jul 20 2016, 7:28 AM
zmike edited projects, added Restricted Project; removed efl.Jun 11 2018, 7:00 AM
q66 edited projects, added efl: widgets; removed Restricted Project.Jun 11 2018, 8:03 AM
zmike changed the visibility from "All Users" to "Public (No Login Required)".Jan 22 2019, 12:52 PM
zmike added a project: efl (efl-1.22).
zmike added a subscriber: zmike.

This seems pretty trivial to resolve by adding a check to determine if a widget is in a scroller and the scroller is actively scrolling.