Bug 252925 - Tablet can't drag and draw
Summary: Tablet can't drag and draw
Status: RESOLVED FIXED
Alias: None
Product: wacomtablet
Classification: Plasma
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Jörg Ehrichs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-01 07:44 UTC by kaouete
Modified: 2011-01-15 00:11 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
tablet profile (804 bytes, application/octet-stream)
2010-10-01 10:22 UTC, kaouete
Details
output of xsetwacom all for working tablet (no kded) (2.49 KB, text/plain)
2010-10-01 13:33 UTC, kaouete
Details
output of xsetwacom all for not working tablet (kded) (2.49 KB, text/plain)
2010-10-01 13:35 UTC, kaouete
Details

Note You need to log in before you can comment on or make changes to this bug.
Description kaouete 2010-10-01 07:44:45 UTC
Version:           unspecified (using KDE 4.5.1) 
OS:                Linux

Hi,

I noticed a strange bug since the first time (1.2.1) I started to try to use wacomtablet:
When kcm_wacomtablet is in use, settings seems to apply, but then I can't use my tablet to draw or drag anymore.
It is like it click once then unclick instead of staying clicked.
So if I draw in a drawing application, I just get one point. If I try to drag a window it just not work.

It started from the moment I first changed settings (from Absolute to Relative), before it was working.


Reproducible: Always
Comment 1 Jörg Ehrichs 2010-10-01 09:01:59 UTC
Could you post the complete profilefile when this error happened please?

Furthermore, can you stop the kded, reconnect the tablet and try

xsetwacom set "Wacom Graphire stylus" mode Relative

does the same thing happen?

and do you have this error just with the stylus, or is the eraser effected as well. (
Comment 2 kaouete 2010-10-01 10:22:08 UTC
Created attachment 52137 [details]
tablet profile
Comment 3 kaouete 2010-10-01 10:24:52 UTC
Hi, here is the tabletprofilerc.

It happens with both stylus and eraser.

I stopped kded (with kill, I don't know if there is a better way… and how to start it again btw? just call kded4? :) and unplugged/plugged.
=> It works as it should, no problem.
Comment 4 Jörg Ehrichs 2010-10-01 10:47:16 UTC
*mhh* nothing suspicious there :/

Next try. The XF86Free-input-wacom has a new call "all" 

could you send me the output of:
xsetwacom get "Wacom Graphire stylus" all

With a) after you applied the settings with my program and set to relativ (so when the problem starts)
and b) without my kded running and freshly connected tablet when it works

As for the kded. It is enough to stop the service.
In system settings there is an entry with all services running. 
(In german setup it is under "Systemverwaltung->Starten und Beenden"->Dienstverwaltung")

and just for the record, did it ever worked before with relative stylus settings?
Right now all I hope this might have to do with are, wrong Twinview etc settings as this is the only time the wacom driver lead to unexpected behaviour.

If nothing helps, I'll see if I can reproduce this with my tablet on the chakra arch installation if have. just in case there is a difference in the wacomdriver and the error might be there
Comment 5 kaouete 2010-10-01 13:33:51 UTC
Created attachment 52143 [details]
output of xsetwacom all for working tablet (no kded)
Comment 6 kaouete 2010-10-01 13:35:31 UTC
Created attachment 52144 [details]
output of xsetwacom all for not working tablet (kded)
Comment 7 kaouete 2010-10-01 13:38:27 UTC
Ok, so:

 * it works with Relative and Absolute if I set it by hand (xsetwacom or in
xorg.conf). The problem is not with Relative, it is just when kcm_wacomtablet
tries to apply its profile.
 * I added both output of "all", there is only one different line!
 * TwinView settings does not seem to work at all, independently of this I
think, I am using xrandr with two screens.

Version of the wacom driver is: 0.10.8
Comment 8 kaouete 2010-10-01 13:47:54 UTC
But even if I set the different line (which seems to be ClickForce) to the same value as the working one, it still does not work anyway…
Comment 9 kaouete 2010-10-02 15:28:56 UTC
Hi,

I think I found the reason of all of this, it showed me several problems, let me explain you.
I added, in setConfiguration() in waconinterface.cpp, a kDebug() call for showing the content cmd.

When plugging the tablet, this was the output (I just kept the one for the stylus):
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" AbsWDn "Button 16""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" AbsWUp "Button 15""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" BottomX "10206""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" BottomY "7422""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Button1 """
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Button10 """
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Button2 """
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Button3 """
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Button4 """
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Button5 """
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Button6 """
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Button7 """
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Button8 """
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Button9 """
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" RelWDn "Button 16""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" RelWUp "Button 15""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Rotate "0""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" StripLDn """
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" StripLUp """
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" StripRDn """
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" StripRUp """
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" TopX "0""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" TopY "0""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" TwinView "0""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" TVResolution0 "0 0""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" TVResolution1 "0 0""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Accel "1""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Button1 "Button 1""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Button2 "Button 2""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Button3 "Button 3""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" ClickForce "6""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" CursorProx "42""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Mode "absolute""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" PressCurve "0 0 100 100""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Screen_No "-1""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" SpeedLevel "6""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" Threshold "30""
kded(16680) Wacom::WacomInterface::setConfiguration: "xsetwacom set "Wacom Graphire stylus" mmonitor "1""

So, I desabled the kded wacomtabled module and plugged the tablet to get it in a working state.
Then I simply tried these commands one bye one.

First, I found the culprit, it is when calling
xsetwacom set "Wacom Graphire stylus" Button1 "Button 1"
That my problem appears.
I couldn't find a way to revert it (when working, get gives me a value of 1, but if I set it to1, it doesn't fix the problem).

Then, some of the commands didn't work, this is the errors I got for them:
[victor@volte ~]$ xsetwacom set "Wacom Graphire stylus" TwinView "0"
Usage: xsetwacom rotate <device name> [NONE | CW | CCW | HALF]

[victor@volte ~]$ xsetwacom set "Wacom Graphire stylus" TVResolution0 "0 0"
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  141 (XInputExtension)
  Minor opcode of failed request:  37 (X_ChangeDeviceProperty)
  Value in failed request:  0x2c3
  Serial number of failed request:  18
  Current serial number in output stream:  21

victor@volte ~]$ xsetwacom set "Wacom Graphire stylus" TVResolution1 "0 0"
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  141 (XInputExtension)
  Minor opcode of failed request:  37 (X_ChangeDeviceProperty)
  Value in failed request:  0x2c3
  Serial number of failed request:  18
  Current serial number in output stream:  21

[victor@volte ~]$ xsetwacom set "Wacom Graphire stylus" Accel "1"
Unknown parameter name 'Accel'.

[victor@volte ~]$ xsetwacom set "Wacom Graphire stylus" CursorProx "42"
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  141 (XInputExtension)
  Minor opcode of failed request:  37 (X_ChangeDeviceProperty)
  Value in failed request:  0x2c6
  Serial number of failed request:  18
  Current serial number in output stream:  21

[victor@volte ~]$ xsetwacom set "Wacom Graphire stylus" SpeedLevel "6"
Unknown parameter name 'SpeedLevel'.

[victor@volte ~]$ xsetwacom set "Wacom Graphire stylus" Threshold "30"
Unknown parameter name 'Threshold'.

By the way, xsetwacom version is 0.10.8 and the output of --list param is:
[victor@volte ~]$ xsetwacom --list param
TopX             - Bounding rect left coordinate in tablet units. 
TopY             - Bounding rect top coordinate in tablet units . 
BottomX          - Bounding rect right coordinate in tablet units. 
BottomY          - Bounding rect bottom coordinate in tablet units. 
Button1          - X11 event to which button 1 should be mapped. 
Button2          - X11 event to which button 2 should be mapped. 
Button3          - X11 event to which button 3 should be mapped. 
Button4          - X11 event to which button 4 should be mapped. 
Button5          - X11 event to which button 5 should be mapped. 
Button6          - X11 event to which button 6 should be mapped. 
Button7          - X11 event to which button 7 should be mapped. 
Button8          - X11 event to which button 8 should be mapped. 
Button9          - X11 event to which button 9 should be mapped. 
Button10         - X11 event to which button 10 should be mapped. 
Button11         - X11 event to which button 11 should be mapped. 
Button12         - X11 event to which button 12 should be mapped. 
Button13         - X11 event to which button 13 should be mapped. 
Button14         - X11 event to which button 14 should be mapped. 
Button15         - X11 event to which button 15 should be mapped. 
Button16         - X11 event to which button 16 should be mapped. 
Button17         - X11 event to which button 17 should be mapped. 
Button18         - X11 event to which button 18 should be mapped. 
Button19         - X11 event to which button 19 should be mapped. 
Button20         - X11 event to which button 20 should be mapped. 
Button21         - X11 event to which button 21 should be mapped. 
Button22         - X11 event to which button 22 should be mapped. 
Button23         - X11 event to which button 23 should be mapped. 
Button24         - X11 event to which button 24 should be mapped. 
Button25         - X11 event to which button 25 should be mapped. 
Button26         - X11 event to which button 26 should be mapped. 
Button27         - X11 event to which button 27 should be mapped. 
Button28         - X11 event to which button 28 should be mapped. 
Button29         - X11 event to which button 29 should be mapped. 
Button30         - X11 event to which button 30 should be mapped. 
Button31         - X11 event to which button 31 should be mapped. 
Button32         - X11 event to which button 32 should be mapped. 
DebugLevel       - Level of debugging trace for individual devices, default is 0 (off). 
CommonDBG        - Level of debugging statements applied to all devices associated with the same tablet. default is 0 (off). 
Suppress         - Number of points trimmed, default is 2. 
RawSample        - Number of raw data used to filter the points, default is 4. 
Screen_No        - Sets/gets screen number the tablet is mapped to, default is -1. 
PressCurve       - Bezier curve for pressure (default is 0 0 100 100). 
TwinView         - Sets the mapping to TwinView horizontal/vertical/none. Values = none, vertical, horizontal (default is none).
Mode             - Switches cursor movement mode (default is absolute/on). 
TPCButton        - Turns on/off Tablet PC buttons. default is off for regular tablets, on for Tablet PC. 
Touch            - Turns on/off Touch events (default is enable/on). 
Gesture          - Turns on/off multi-touch gesture events (default is enable/on). 
ZoomDistance     - Minimum distance for a zoom gesture (default is 50). 
ScrollDistance   - Minimum motion before sending a scroll gesture (default is 20). 
TapTime          - Minimum time between taps for a right click (default is 250). 
Capacity         - Touch sensitivity level (default is 3, -1 for none capacitive tools).
CursorProx       - Sets cursor distance for proximity-out in distance from the tablet.  (default is 10 for Intuos series, 42 for Graphire series).
Rotate           - Sets the rotation of the tablet. Values = NONE, CW, CCW, HALF (default is NONE).
RelWUp           - X11 event to which relative wheel up should be mapped. 
RelWDn           - X11 event to which relative wheel down should be mapped. 
AbsWUp           - X11 event to which absolute wheel up should be mapped. 
AbsWDn           - X11 event to which absolute wheel down should be mapped. 
StripLUp         - X11 event to which left strip up should be mapped. 
StripLDn         - X11 event to which left strip down should be mapped. 
StripRUp         - X11 event to which right strip up should be mapped. 
StripRDn         - X11 event to which right strip down should be mapped. 
TVResolution0    - Sets MetaModes option for TwinView Screen 0. 
TVResolution1    - Sets MetaModes option for TwinView Screen 1. 
RawFilter        - Enables and disables filtering of raw data, default is true/on.
ClickForce       - Sets tip/eraser pressure threshold (default is 409)
xyDefault        - Resets the bounding coordinates to default in tablet units. 
mmonitor         - Turns on/off across monitor movement in multi-monitor desktop, default is on 
STopX0           - Screen 0 left coordinate in pixels. 
STopY0           - Screen 0 top coordinate in pixels. 
SBottomX0        - Screen 0 right coordinate in pixels. 
SBottomY0        - Screen 0 bottom coordinate in pixels. 
STopX1           - Screen 1 left coordinate in pixels. 
STopY1           - Screen 1 top coordinate in pixels. 
SBottomX1        - Screen 1 right coordinate in pixels. 
SBottomY1        - Screen 1 bottom coordinate in pixels. 
STopX2           - Screen 2 left coordinate in pixels. 
STopY2           - Screen 2 top coordinate in pixels. 
SBottomX2        - Screen 2 right coordinate in pixels. 
SBottomY2        - Screen 2 bottom coordinate in pixels. 
STopX3           - Screen 3 left coordinate in pixels. 
STopY3           - Screen 3 top coordinate in pixels. 
SBottomX3        - Screen 3 right coordinate in pixels. 
SBottomY3        - Screen 3 bottom coordinate in pixels. 
STopX4           - Screen 4 left coordinate in pixels. 
STopY4           - Screen 4 top coordinate in pixels. 
SBottomX4        - Screen 4 right coordinate in pixels. 
SBottomY4        - Screen 4 bottom coordinate in pixels. 
STopX5           - Screen 5 left coordinate in pixels. 
STopY5           - Screen 5 top coordinate in pixels. 
SBottomX5        - Screen 5 right coordinate in pixels. 
SBottomY5        - Screen 5 bottom coordinate in pixels. 
STopX6           - Screen 6 left coordinate in pixels. 
STopY6           - Screen 6 top coordinate in pixels. 
SBottomX6        - Screen 6 right coordinate in pixels. 
SBottomY6        - Screen 6 bottom coordinate in pixels. 
STopX7           - Screen 7 left coordinate in pixels. 
STopY7           - Screen 7 top coordinate in pixels. 
SBottomX7        - Screen 7 right coordinate in pixels. 
SBottomY7        - Screen 7 bottom coordinate in pixels. 
ToolID           - Returns the ID of the associated device. 
ToolSerial       - Returns the serial number of the associated device. 
TabletID         - Returns the tablet ID of the associated device. 
GetTabletID      - Returns the tablet ID of the associated device. 
all              - Get value for all parameters.

So, twinview does not seem to appear here, nor Accel, Threshold or SpeedLevel
I hope it helps you!

Maybe part of it could be reported by to xf86-input-wacom...
Comment 10 kaouete 2010-10-02 15:29:59 UTC
(actually TwinView appears... :)
Comment 11 Jörg Ehrichs 2010-10-05 08:57:17 UTC
Thanks for the bug report

that Accel, Threshold or SpeedLevel are not available, is not good, but good to know.

Cursprox is a bug in the xf86 driver, the rest are my fault (worked with the old wacom-tools, but I will change them)

Now the main problem. It is odd that 
xsetwacom set "Wacom Graphire stylus" Button1 "Button 1"
is not working.

does the same happens when you just try
xsetwacom set "Wacom Graphire stylus" Button1 1
without my kded part interfering with the other options?

seems to be a bug in the xf86 driver anyway, but I like to be sure.

My xsetwacom version is 0.10.5.
Comment 12 kaouete 2010-10-05 10:39:00 UTC
Hi,

So, I tried to disable kded module, then plus my tablet.
I ran xsetwacom set "Wacom Graphire stylus" Button1 1
and it was still working,
then I ran xsetwacom set "Wacom Graphire stylus" Button1 2
and it was working as it should,
then I ran xsetwacom set "Wacom Graphire stylus" Button1 "Button 1"
and it stopped working,
then I ran xsetwacom set "Wacom Graphire stylus" Button1 1
but it still did not work!!!

So it looks like that Button 1 does not work, and more serious, put the tablet in a state we can't leave!

I think there is strong changes between different versions of the xf86 driver + strange things (for example the output for TwinView when we put a wrong value).
I also tried the git version of the driver, and they also have mad again a lot of change (in a few words, it broke compatibility with your tool a lot :)

Do you want me to report bugs there? Which ones?
Comment 13 kaouete 2010-10-07 11:03:17 UTC
Hi, I reported the Button1 bug to xorg:
https://bugs.freedesktop.org/show_bug.cgi?id=30669
Comment 14 Alan Jones 2010-12-02 00:26:26 UTC
I've got the same issue on both Pardus and Chakra. Tested on 4.5.80

It only starts after running kde's tablet configuration module in system settings.

Let me know if you need any tests etc. Tablet in this case is an Intuos 3 usb id 056a:00b1

Cheers,

Alan.
Comment 15 Jörg Ehrichs 2010-12-02 10:36:01 UTC
Him
this "bug" is present in any distro. We have to  wait till it is fixed upstream (or until I'm confident enough with the xorg part to fix it myself)

Sadly this means the module will be kinda useless in the moment and won't make it out of the Review process (better back in playground soon)
Comment 16 Alan Jones 2010-12-02 18:03:50 UTC
Hi Jörg,

Yeah - I figured as much and added myself to the xorg report - just posted here so you know you've got another tester willing to help out when the upstream is fixed to ensure everything is behaving as expected. Drop me a line when you need a tester :D

Cheers,

Alan.
Comment 17 Chris Charles 2011-01-14 20:48:40 UTC
It seems to me that this could be fixed by replacing "Button 1" with simply "1", etc., in the xsetwacom commands. Am I misunderstanding the problem?

On my entry-level Wacom Bamboo Pen I am able to swap buttons 1 and 3 (effectively giving myself a "lefty" stylus) with these two commands:

    xsetwacom --set "Wacom Bamboo 4x5 Pen stylus" Button1 3
    xsetwacom --set "Wacom Bamboo 4x5 Pen stylus" Button3 1

so it does appear to work.

Also, I can confirm that

    xsetwacom --set "Wacom Bamboo 4x5 Pen stylus" Button1 "Button 1"

breaks click-and-drag on my device.
Comment 18 Chris Charles 2011-01-14 20:53:47 UTC
(In reply to comment #17)

Following up on this, my xsetwacom version is 0.10.8, which I believe also corresponds to my Wacom driver.
Comment 19 Jörg Ehrichs 2011-01-15 00:11:09 UTC
SVN commit 1214501 by jehrichs:

BUG: 252925 Changed xsetwacom parameter from button 1 to just 1 and so on. Seems to work with the new xsetwacom driver

 M  +44 -36    profilemanagement.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1214501