After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 702858 - Show "edge scrolling" when 2-finger scrolling not supported
Show "edge scrolling" when 2-finger scrolling not supported
Status: RESOLVED FIXED
Product: gnome-control-center
Classification: Core
Component: Mouse
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Ondrej Holy
Control-Center Maintainers
: 699375 703579 705955 707593 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2013-06-22 13:36 UTC by drago01
Modified: 2013-10-18 10:46 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Screenshot of touchpad settings (32.50 KB, image/png)
2013-06-24 09:54 UTC, drago01
  Details
Screenshot (32.50 KB, image/png)
2013-06-24 09:58 UTC, drago01
  Details
xinput list-props output (1.74 KB, text/plain)
2013-06-24 09:59 UTC, drago01
  Details
enable edge scrolling if two-finger scroll is unavailable (3.29 KB, patch)
2013-06-25 15:17 UTC, Ondrej Holy
committed Details | Review
screenshot (882.99 KB, image/png)
2013-10-09 11:21 UTC, Branko Grubic (bitlord)
  Details
fix two finger scroll detection (1.55 KB, patch)
2013-10-11 12:02 UTC, Ondrej Holy
none Details | Review
fix two finger scroll detection (2.84 KB, patch)
2013-10-11 12:07 UTC, Ondrej Holy
committed Details | Review

Description drago01 2013-06-22 13:36:02 UTC
I cannot select edge scrolling in the GUI when running g-c-c 3.8 ... I had to enable it using gsettings. 

If anything edge scrolling should be the default and not completely hidden.
Comment 1 drago01 2013-06-24 09:54:46 UTC
Created attachment 247609 [details]
Screenshot of touchpad settings
Comment 2 drago01 2013-06-24 09:58:44 UTC
Created attachment 247610 [details]
Screenshot
Comment 3 drago01 2013-06-24 09:59:03 UTC
Created attachment 247611 [details]
xinput list-props output
Comment 4 drago01 2013-06-24 09:59:54 UTC
IRC discussion:
<hadess> most touchpads support 2 finger scrolling, horizontally and vertically
<hadess> drago01, but for people who aren't used to it like you are it made the touchpad act weird
<hadess> so the option is still there, but not in the UI
<drago01> hadess: but this toucpad does not support two finger scrolling
<drago01> hadess: so the new ui basically hides all scrolling options
<drago01> hadess: two finger is greyed out (because not supported) and edge scrolling is hidden
<hadess> drago01, attach a screenshot to the bug, add ui-review as a keyword
<drago01> hadess: ok
<hadess> drago01, and attach the output of "xinput list-props" for your touchpad device
<drago01> hadess: ok
<hadess> drago01, it would probably make sense to show it if there's no other scrolling option
<drago01> yeah that's what I am saying
<bochecha_> hadess: that would be great indeed (I have a netbook which doesn't support two-finger-scroll either)
Comment 5 Jakub Steiner 2013-06-24 10:24:01 UTC
The original intent was not to expose these two ways of scrolling concurrently. 

In this particular case, where the blessed 2 finger scrolling is unsupported, I would be fine exposing the side scrolling toggle. 

I would actually favor hiding the 2 finger scroll toggle instead of insensitivizing when we don't support it. But definitely not show the side scrolling when both methods are supported. Only show 2 finger scroll toggle in that case.
Comment 6 Ondrej Holy 2013-06-25 14:27:32 UTC
*** Bug 699375 has been marked as a duplicate of this bug. ***
Comment 7 Ondrej Holy 2013-06-25 15:13:57 UTC
(In reply to comment #5)
> The original intent was not to expose these two ways of scrolling concurrently. 
> 
> In this particular case, where the blessed 2 finger scrolling is unsupported, I
> would be fine exposing the side scrolling toggle. 

For what purpose will be the "side scrolling toggle"? "Two finger scrolling toggle" toggles between two-finger and edge scrolling. Between what will be "side scrolling toggle" toggling?

> I would actually favor hiding the 2 finger scroll toggle instead of
> insensitivizing when we don't support it. But definitely not show the side
> scrolling when both methods are supported. Only show 2 finger scroll toggle in
> that case.

Yes, we can hide it instead...
Comment 8 Ondrej Holy 2013-06-25 15:17:02 UTC
Created attachment 247745 [details] [review]
enable edge scrolling if two-finger scroll is unavailable
Comment 9 Jakub Steiner 2013-06-25 16:26:06 UTC
(In reply to comment #7)

> For what purpose will be the "side scrolling toggle"? "Two finger scrolling
> toggle" toggles between two-finger and edge scrolling. Between what will be
> "side scrolling toggle" toggling?

My understanding was that the checkbox toggles the feature on or off, not that it changes behavior from two finger to side scrolling. That would render the whole conversation invalid.
Comment 10 drago01 2013-06-25 16:35:17 UTC
(In reply to comment #9)
> (In reply to comment #7)
> That would render the  whole conversation invalid.

Not really because here it is grayed out and scrolling is disabled by default. So I end up with no scrolling and no UI to enable it.
Comment 11 Jakub Steiner 2013-06-25 19:25:39 UTC
(In reply to comment #10)
> Not really because here it is grayed out and scrolling is disabled by default.
> So I end up with no scrolling and no UI to enable it.

That's precisely what reassured me that the option is only about enabling or disabling 2 finger scroll.
Comment 12 Ondrej Holy 2013-06-26 08:52:58 UTC
(In reply to comment #10)
> (In reply to comment #9)
> > (In reply to comment #7)
> > That would render the  whole conversation invalid.
> 
> Not really because here it is grayed out and scrolling is disabled by default.
> So I end up with no scrolling and no UI to enable it.

Yes, but the current behavioral is bug. It should be unchecked and grayed out in this case and generally it should toggle between edge/two finger scrolling. Attached patch should fix it...
Comment 13 Florian Müllner 2013-07-04 15:09:09 UTC
*** Bug 703579 has been marked as a duplicate of this bug. ***
Comment 14 Bastien Nocera 2013-08-02 16:47:22 UTC
Review of attachment 247745 [details] [review]:

Looks fine otherwise.

gnome-3-8 and master?

::: plugins/mouse/gsd-mouse-manager.c
@@ +749,3 @@
+        if (!prop_twofinger && method == GSD_TOUCHPAD_SCROLL_METHOD_TWO_FINGER_SCROLLING) {
+                method = GSD_TOUCHPAD_SCROLL_METHOD_EDGE_SCROLLING;
+                g_settings_set_enum (manager->priv->touchpad_settings, KEY_SCROLL_METHOD, method);

return; ?
Comment 15 Ondrej Holy 2013-08-05 12:20:14 UTC
(In reply to comment #14)
> Review of attachment 247745 [details] [review]:
> 
> Looks fine otherwise.
> 
> gnome-3-8 and master?

I've commited it to the both branches.

commit 7ac29947a1fd7e07e053765bb9be78167e0e26d4
commit d5151b90f8d05712c16df7a6737e8ac0b68ab9fb
 
> ::: plugins/mouse/gsd-mouse-manager.c
> @@ +749,3 @@
> +        if (!prop_twofinger && method ==
> GSD_TOUCHPAD_SCROLL_METHOD_TWO_FINGER_SCROLLING) {
> +                method = GSD_TOUCHPAD_SCROLL_METHOD_EDGE_SCROLLING;
> +                g_settings_set_enum (manager->priv->touchpad_settings,
> KEY_SCROLL_METHOD, method);
> 
> return; ?

I don't think so we want return in this place.
Comment 16 Ondrej Holy 2013-08-14 07:00:34 UTC
*** Bug 705955 has been marked as a duplicate of this bug. ***
Comment 17 Rui Matos 2013-09-09 09:28:15 UTC
*** Bug 707593 has been marked as a duplicate of this bug. ***
Comment 18 Branko Grubic (bitlord) 2013-10-09 11:21:10 UTC
Created attachment 256795 [details]
screenshot

This is not fixed on F20 BETA TC2 (control-center-3.10.0-1.fc20.x86_64)
Comment 19 Ondrej Holy 2013-10-11 12:02:25 UTC
Created attachment 256992 [details] [review]
fix two finger scroll detection

+ prop_twofinger = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "Synaptics Two-Finger Scrolling", False);
+ if (!prop_twofinger && method == GSD_TOUCHPAD_SCROLL_METHOD_TWO_FINGER_SCROLLING) {

This condition doesn't indicate two finger scroll availability correctly probably as man pages:

Atom XInternAtom(Display *display, char *atom_name, Bool only_if_exists);
If only_if_exists is False, the atom is created if it does not exist.

So, I've attached untested patch to fix it likely...
Comment 20 Ondrej Holy 2013-10-11 12:07:47 UTC
Created attachment 256993 [details] [review]
fix two finger scroll detection

We can't simply change the only_if_exists property, because it isn't set scrolling properly. Attached patch with different way of detection (also untested). Could somebody prove the patch?
Comment 21 Rui Matos 2013-10-11 13:47:19 UTC
Review of attachment 256993 [details] [review]:

I happen to have a laptop without two finger scrolling with me today and yes, this patch does fix it.

Looks good

::: plugins/mouse/gsd-mouse-manager.c
@@ +748,2 @@
         prop_edge = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "Synaptics Edge Scrolling", False);
         prop_twofinger = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "Synaptics Two-Finger Scrolling", False);

Please change these two calls to True for the only_if_exists parameter too. We never want to create these atoms ourselves. A separate patch though.
Comment 22 Branko Grubic (bitlord) 2013-10-18 09:38:47 UTC
After 3.10.1 update in F20, this is fixed. I left it "broken" and by default with two-finger-scrolling set, after update and restart, it uses edge-scrolling and everything is ok, "Two finger scroll" is _not available_ in settings, and unchecked.

Thanks ;-)
Comment 23 Ondrej Holy 2013-10-18 10:46:10 UTC
(In reply to comment #22)
> After 3.10.1 update in F20, this is fixed. I left it "broken" and by default
> with two-finger-scrolling set, after update and restart, it uses edge-scrolling
> and everything is ok, "Two finger scroll" is _not available_ in settings, and
> unchecked.
> 
> Thanks ;-)

Thanks for feedback.

(In reply to comment #21)
> Review of attachment 256993 [details] [review]:
> 
> I happen to have a laptop without two finger scrolling with me today and yes,
> this patch does fix it.
> 
> Looks good
> 
> ::: plugins/mouse/gsd-mouse-manager.c
> @@ +748,2 @@
>          prop_edge = XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default
> ()), "Synaptics Edge Scrolling", False);
>          prop_twofinger = XInternAtom (GDK_DISPLAY_XDISPLAY
> (gdk_display_get_default ()), "Synaptics Two-Finger Scrolling", False);
> 
> Please change these two calls to True for the only_if_exists parameter too. We
> never want to create these atoms ourselves. A separate patch though.

I think the False values there are intentional due to the rest of the function. For example we should to set edge scrolling also if twofinger isn't available... or am I wrong?