High precision touchpad scrolling doesn't work in GTK-on-Mir

Bug #1607680 reported by Daniel van Vugt
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
GTK+
Fix Released
Medium
gtk+3.0 (Ubuntu)
In Progress
Medium
Andreas Pokorny

Bug Description

Smooth touchpad scrolling doesn't work in GTK-on-Mir

Touchpad scrolling is instead jumpy and unresponsive.

gdk/mir/gdkmireventsource.c ignores smaller scroll motion values even though the underlying gdk interface would support small floating point scroll motions

Tags: gtk-mir input
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

It does work in GTK-on-X11-on-Xmir, but not in GTK-on-Mir

Changed in gtk+3.0 (Ubuntu):
status: New → Confirmed
status: Confirmed → In Progress
description: updated
Revision history for this message
In , Andreas Pokorny (andreas-pokorny) wrote :

Created attachment 332799
Do not filter out small touchpad scroll motions

When scrolling with a touchpad the left-right direction seems to be wrong, and it seems to be less smooth than with X11 or qt-mir clients.

This is probably because mir provides scroll motion in rotary ticks - which are usually been translated as 15-times larger than touchpad motion units. The attached patch resolves the problem.

Changed in gtk:
importance: Unknown → Medium
status: Unknown → Confirmed
Revision history for this message
In , Fakey (fakey) wrote :

Review of attachment 332799:

Looks OK, can we leave the -delta_y alone though?

::: gdk/mir/gdkmireventsource.c
@@ +198,3 @@
       event->scroll.direction = GDK_SCROLL_SMOOTH;
+ event->scroll.delta_x = delta_x;
+ event->scroll.delta_y = delta_y;

Yes, for me this fixes the horizontal smooth scrolling, but breaks the vertical smooth scrolling. I guess there's some disparity between the vertical scroll direction in Mir and GTK+? Can we undo the second change here?

Revision history for this message
In , Andreas Pokorny (andreas-pokorny) wrote :

(In reply to William Hua from comment #1)
> Review of attachment 332799 [details] [review]:
>
> Looks OK, can we leave the -delta_y alone though?
>
> ::: gdk/mir/gdkmireventsource.c
> @@ +198,3 @@
> event->scroll.direction = GDK_SCROLL_SMOOTH;
> + event->scroll.delta_x = delta_x;
> + event->scroll.delta_y = delta_y;
>
> Yes, for me this fixes the horizontal smooth scrolling, but breaks the
> vertical smooth scrolling. I guess there's some disparity between the
> vertical scroll direction in Mir and GTK+? Can we undo the second change
> here?

I do not know what direction is positive or negative. A user can customize that via server side options.

We can keep it -delta_y. I just hope this will be in the end common across toolktis.

Revision history for this message
In , Andreas Pokorny (andreas-pokorny) wrote :

Created attachment 333250
[PATCH] Do not filter out small scroll event fractions

Changed in gtk:
status: Confirmed → Fix Released
summary: - Smooth touchpad scrolling doesn't work in GTK-on-Mir
+ High precision touchpad scrolling doesn't work in GTK-on-Mir
Changed in gtk:
importance: Medium → Unknown
status: Fix Released → Unknown
Changed in gtk:
importance: Unknown → Medium
status: Unknown → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.