GNOME Bugzilla – Bug 685784
Scroll using a finger touch device
Last modified: 2018-05-22 14:48:24 UTC
When using a touch screen (e.g. a laptop convertible to tablet) evince should allow to scroll a document (by default) using the finger.
This seems to work fine in (at least) 3.8.0.
I am using master and I still need to use 2 fingers to scroll a document.
I am using an ExoPC as touchscreen and Fedora 19 (GTK+ 3.8.0), and a single finger drag on a document scrolls it here. Which hardware are you using? If you run evince with "GDK_DEBUG=events" and scroll around in the window, do you get lots of "touch" events or lots of "smooth scroll" events (with both 1 and 2 finger scrolling)?
I am using a Lenovo X220T (laptop convertible to tablet), which has a wacom touchscreen. When I run "GDK_DEBUG=events evince" in my jhbuild, I do not get any touch event (1 or 2 fingers). If I use the mouse wheel, I get smooth scroll. If I use 2 fingers, the text scrolls, but there is no event in the terminal. I think it is mapping the mousepad events as touchpad. Other applications like xournal and mypaint work fine with the touchscreen. However, I think they implemented the behaviour for eraser, stylus and finger in the application (I am not sure I am saying something reasonable). My jhbuild has GTK+3.8, compiled with XInput2: configure:23686: checking for XGetEventData configure:23686: gcc -o conftest -g -O2 -Wall -L/home/gpoo/code/evince/install/lib conftest.c -lX11 -lXext -lm >&5 configure:23686: $? = 0 configure:23686: result: yes configure:23700: checking X11/extensions/XInput2.h usability configure:23700: gcc -c -g -O2 -Wall conftest.c >&5 configure:23700: $? = 0 configure:23700: result: yes configure:23700: checking X11/extensions/XInput2.h presence configure:23700: gcc -E conftest.c configure:23700: $? = 0 configure:23700: result: yes configure:23700: checking for X11/extensions/XInput2.h configure:23700: result: yes configure:23715: checking for XIAllowTouchEvents configure:23715: gcc -o conftest -g -O2 -Wall -L/home/gpoo/code/evince/install/lib conftest.c -lX11 -lXext -lm -lXi >&5 configure:23715: $? = 0 configure:23715: result: yes FWIW, these are the devices I have: $ xsetwacom --list Wacom ISDv4 E6 Pen stylus id: 10 type: STYLUS Wacom ISDv4 E6 Finger touch id: 11 type: TOUCH Wacom ISDv4 E6 Pen eraser id: 15 type: ERASER
Germán, have you tried the patch for implementing smooth scrolling in evince?
José, I have not tried that yet. I will shortly.
I updated the smooth scrolling patch in bug 674098. I do not have any Wacom hardware to test, unfortunately, so I do not know how to get either touch or smooth scroll events from the device.
I applied both patches but still no luck. I do not think the problem is in our end (evince), but something in between X (libwacom, xinput?) and GTK+ (GDK?).
It might be Wacom (and maybe this should be in gnome-control-center). http://sourceforge.net/apps/mediawiki/linuxwacom/index.php?title=Multitouch#Gesture_List
This also could related that the wacom I talking about it is multi-touch. In the same link, below there are comments regarding to GNOME and GTK+ (mostly pointers to us, though).
(In reply to comment #9) > It might be Wacom (and maybe this should be in gnome-control-center). > > http://sourceforge.net/apps/mediawiki/linuxwacom/index.php?title=Multitouch#Gesture_List I had a look at that article, and wondered if you could try disabling the in-driver gesture recognition? http://sourceforge.net/apps/mediawiki/linuxwacom/index.php?title=Multitouch#Disable_xf86-input-wacom_In-driver_2FGT_Gestures Once you have done that, the multi-touch events should be passed on to X clients, and the touch scrolling of GTK+ should be used (which seems to use a single-finger drag for me).
(In reply to comment #11) > (In reply to comment #9) > > It might be Wacom (and maybe this should be in gnome-control-center). > > > > http://sourceforge.net/apps/mediawiki/linuxwacom/index.php?title=Multitouch#Gesture_List > > I had a look at that article, and wondered if you could try disabling the > in-driver gesture recognition? > > http://sourceforge.net/apps/mediawiki/linuxwacom/index.php?title=Multitouch#Disable_xf86-input-wacom_In-driver_2FGT_Gestures > > Once you have done that, the multi-touch events should be passed on to X > clients, and the touch scrolling of GTK+ should be used (which seems to use a > single-finger drag for me). I turned the gestures off, but no luck. FWIW, this are my settings: $ xsetwacom list Wacom ISDv4 E6 Pen stylus id: 10 type: STYLUS Wacom ISDv4 E6 Finger touch id: 11 type: TOUCH Wacom ISDv4 E6 Pen eraser id: 15 type: ERASER $ xsetwacom get "Wacom ISDv4 E6 Finger touch" all Option "Area" "0 0 2776 1569" 'Button' requires exactly 1 value(s). Option "ToolDebugLevel" "0" Option "TabletDebugLevel" "0" Option "Suppress" "2" Option "RawSample" "4" Option "PressureCurve" "0 0 100 100" Option "Mode" "Absolute" Property 'Wacom Hover Click' does not exist on device. Option "Touch" "on" Option "Gesture" "off" Option "ZoomDistance" "121" Option "ScrollDistance" "54" Option "TapTime" "250" Property 'Wacom Proximity Threshold' does not exist on device. Option "Rotate" "none" Property 'Wacom Wheel Buttons' does not exist on device. Property 'Wacom Wheel Buttons' does not exist on device. Property 'Wacom Wheel Buttons' does not exist on device. Property 'Wacom Wheel Buttons' does not exist on device. Property 'Wacom Wheel Buttons' does not exist on device. Property 'Wacom Wheel Buttons' does not exist on device. Property 'Wacom Strip Buttons' does not exist on device. Property 'Wacom Strip Buttons' does not exist on device. Property 'Wacom Strip Buttons' does not exist on device. Property 'Wacom Strip Buttons' does not exist on device. Option "Threshold" "0" Option "ToolType" "278" Option "ToolSerial" "0" Option "ToolID" "0" Option "ToolSerialPrevious" "1" Option "BindToSerial" "0" Option "TabletID" "230" $ xinput list-props 11 Device 'Wacom ISDv4 E6 Finger touch': Device Enabled (132): 1 Coordinate Transformation Matrix (134): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000 Device Accel Profile (254): 0 Device Accel Constant Deceleration (255): 1.000000 Device Accel Adaptive Deceleration (256): 1.000000 Device Accel Velocity Scaling (257): 10.000000 Device Node (251): "/dev/input/event7" Wacom Tablet Area (264): 0, 0, 2776, 1569 Wacom Rotation (265): 0 Wacom Pressurecurve (266): 0, 0, 100, 100 Wacom Serial IDs (267): 230, 1, 3, 0, 0 Wacom Serial ID binding (268): 0 Wacom Pressure Threshold (269): 0 Wacom Sample and Suppress (270): 2, 4 Wacom Enable Touch (271): 1 Wacom Enable Touch Gesture (273): 0 Wacom Touch Gesture Parameters (274): 121, 54, 250 Wacom Tool Type (275): "TOUCH" (278) Wacom Button Actions (276): "None" (0), "None" (0), "None" (0), "None" (0), "None" (0), "None" (0), "None" (0) Device Product ID (250): 1386, 230 Wacom Debug Levels (277): 0, 0
It kind of works for me in 3.13.90, but the selection mode is still too easy to trigger.
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/evince/issues/307.