Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.3.0
-
5c92d21cce18eef9b57f42323b464b6670124c3a 67410cd644b76354ba17e9541903cdefa84fc85c b48febd568537793405bc103fb0f1eb65ef9ebdc
Description
The axis of rotation is defined differently on Windows and Linux. It has different direction and origin. The rotation() method should return uniform parameters not depending on the OS.
Here are the formulas we use in Krita to get the floating point rotation value:
X11:
rotation = std::fmod(qreal(tablet->savedAxesData.rotation() - tablet->minRotation) /
(tablet->maxRotation - tablet->minRotation) + 0.5, 1.0) * 360.0;
WIN:
// Rotation is measured in degrees. Axis inverted to fit
// the coordinate system of the Linux driver.
rotation = (360 - 1) - ort.orTwist / 10;
Attachments
Issue Links
- relates to
-
QTBUG-39572 XCB: Touch subdevice of a Wacom Intuos Pro 5 tablet is recognized as a tablet instead of a touch device
- Closed
-
QTBUG-39666 Tablet tangentialPressure numeric range is wrong and is reported as rotation instead
- Closed
-
QTBUG-39573 Tablet Proximity events have no source device parameter
- Closed