Bug 277201

Summary: Krita ( Qt? ) and tablet calibration via xsetwacom
Product: [Applications] krita Reporter: David REVOY <info>
Component: GeneralAssignee: Krita Bugs <krita-bugs-null>
Status: RESOLVED UPSTREAM    
Severity: normal CC: halla, jorge
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: krita pointer bug

Description David REVOY 2011-07-06 14:07:05 UTC
Version:           svn trunk
OS:                Linux

Calibration of tablet with xsetwacom topX topY BottomX or BottomY value ( in the new driver changed for Area X1 Y1 X2 Y2 ) seams to works on all cursor in Krita but not  on the brush painting outliner ( so, on the canvas zone ). 

 



Reproducible: Always

Steps to Reproduce:
context : with a calibrated pen tablet, or changed mapping via xsetwacom ; tested on Linux Mint 10 / Ubuntu 10.10 default wacom driver from repo, and a xsetwacom script to change Bottom & Top mapping 

To see it the best way is to color pick with 'control' ; the color picker is normally at the same position than the outliner when all works. But when the tablet is calibrated , the brush outliner will not follow the calibration value and keep tablet default value ; ... when pressing 'control' the color picker will appear at the calibrated place ( but pick color at the outliner X,Y uncalibrated position ).
When moving over the Ui dockers and panel around the canvas ( cursor in 'arrow' pointing mode ) the cursor follow the calibration set by Xsetwacom. 

Actual Results:  
Brush outliner not follow user calibration, but icons and cursor yes. 

Expected Results:  
Makes the pointing follow calibration

This problem is related to the bug 276518 of 2 tablet connected too I think https://bugs.kde.org/show_bug.cgi?id=276518 .
Comment 1 jorjoso 2011-07-18 22:33:02 UTC
Created attachment 61971 [details]
krita pointer bug
Comment 2 jorjoso 2011-07-18 22:34:25 UTC
the same i use a wacom cintiq and a second monitor 
i use xwacomset mapoutput HDMI1 for mapping the pointer only in the wacom monitor

when try to draw something on the canvas the program create ramdom lines to the other monitor i think is the 0,0 in the other monitor


wacom cintiq 12wx on hdmi1
laptop monitor 
krita
Comment 3 Halla Rempt 2011-08-04 07:37:40 UTC
Jorjoso,

Which distribution are you using? The random lines sounds like a bug that was reported for Ubuntu, Oneiric Ocelot, if I remember correctly. Something wrong with their X server packages, iirc.
Comment 4 David REVOY 2011-08-04 11:07:07 UTC
After a night of thinking about it ( yep, it's really too bad to not use Krita because of a bad calibration problem ) I spend my morning to inspect and test . Result : 

Big guilties are : Xinput_calibrator / and as usual Linux-Wacom  they both produce a mistake at different level. It was hard to find because I had to suspect Qt, NvidiaDriver, Xrandr, Xinput, Xorg and read ,have headache over various (deprecated ) documentations and man page. JUST LOVE IT . 

I explain :
===========

First guilty : xsetwacom BottomX/TopX/TopY/BottomY command ( or the new one 'Area MinX MinY MaxX MaxY' ) because it fails to distribute the X calibration coordinate data to the whole session ; the proove , Krita couldn't access it. So, I consider it broken. Too bad, I like the way it can change the mapping on the fly threw a simple script. 
So a solution is to configure the calibration directly at Xorg level, and forgot about Xsetwacom calibration. Xorg need to be rebooted to accept new calbration change, witch is a regression compare to the simplicity of running various xsetwacom script when need more than one calibration setup. But ok, if it's work , I'm not about one more little regression. 


Second guilty , and the worse IMO : xinput_calibrator ( last one, compiled from source ) return after running the calibration this sort of friendly deprecated info with the value :

""
--> Making the calibration permanent <--
  copy the snippet below into '/etc/X11/xorg.conf.d/99-calibration.conf'
Section "InputClass"
	Identifier	"calibration"
	MatchProduct	"!!Name_Of_TouchScreen!!"
	Option	"MinX"	"327"
	Option	"MaxX"	"86444"
	Option	"MinY"	"374"
	Option	"MaxY"	"65215"
EndSection
""
A bug is filed since month https://bugs.launchpad.net/ubuntu/+source/xinput-calibrator/+bug/776946 ; but reading comments mister tjaalton invalided the bug, and maintain "what I consider as a mistake" is correct. COOL ONE  

So, for my case as in yours if you read this , it will not work : 
First, do not use /etc/X11/xorg.conf.d/99-calibration.conf ; Even 'xorg.conf.d' doesn't exist on Ubuntu/Linux Mint since Lucid Lynx . Prefer to use the existing 'snippet' in another folder : 
/usr/share/X11/xorg.conf.d/50-wacom.conf
I presume it will also work in another new file nammed "99-calibration.conf" , edit this with admin right to save it. ( ex: sudo gedit /usr/share/X11/xorg.conf.d/50-wacom.conf ) 

The info return by Xinput_calibrator "MinX"/"MinY"/"MaxX"/"MaxY" are also wrong and will not work with our Wacom tablet who use "TopX"/"TopY"/"BottomX"/"BottomY" , you should paste them like this between the existing infos inside the 50-wacom.conf :

Section "InputClass"
	Identifier	"calibration"
	MatchProduct "Wacom|WACOM"
	Option "TopX" "327"
	Option "TopY" "374"
	Option "BottomX" "86436"
	Option "BottomY" "65171"
EndSection

Then Save/reboot.

All of this worked for Krita now and whole other apps and system for Linux Mint 10 ( I presume it will be same for Maverick Meerkat , Ubuntu 10.10 ). 


Note ; if you use a more recent Linux-Wacom driver I don't think this can work. I don't know if the Xorg mapping with "TopX"/"TopY"/"BottomX"/"BottomY" will not be replaced with  something looking like :
Option "Area" 319 282 86282 64782 
(with your MinX / MinY / MaxX / MaxY value. 
In case of doubt just call a clairvoyant to know what are the new name of values Linux wacom team decided to attribute this time... Of course I joke ;D just have a look to the documentation here http://sourceforge.net/apps/mediawiki/linuxwacom/index.php?title=Calibration it's updated and works (for the moment). 
 
Now, I presume baking into xorg the coordinate of 2 tablet for the related bug will also solve it.  https://bugs.kde.org/show_bug.cgi?id=276518 but as I ran out of time, don't use 2 tablet at the moment ; so I will test all this later.
Comment 5 Halla Rempt 2012-02-24 12:07:23 UTC
Okay, it's not a krita bug then. I've copy and pasted the long and informative article to the forum, so other people can find it.