Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-39572

XCB: Touch subdevice of a Wacom Intuos Pro 5 tablet is recognized as a tablet instead of a touch device

    XMLWordPrintable

Details

    • cb37ab82982569ef316d4948e0f13a9bfa6b3f55

    Description

      This happens due to this code in qxcbconnection_xi2.cpp:

      // If we have found the valuators which we expect a tablet to have, assume it's a tablet.

      if (tabletData.valuatorInfo.contains(QXcbAtom::AbsX) &&
          tabletData.valuatorInfo.contains(QXcbAtom::AbsY) &&
          tabletData.valuatorInfo.contains(QXcbAtom::AbsPressure)) {
              tabletData.deviceId = devices[i].deviceid;
              tabletData.pointerType = QTabletEvent::Pen;
              if (QByteArray(devices[i].name).toLower().contains("eraser"))
                   tabletData.pointerType = QTabletEvent::Eraser;
                   m_tabletData.append(tabletData);
                   isTablet = true;
                   if (Q_UNLIKELY(debug_xinput_devices))
                        qDebug() << "   it's a tablet with pointer type" << tabletData.pointerType;
      }
      

      The point is, the touch part of this device also has pressure, proximity and absolute axes.

      The valuators have the following limits:

      # Adding a tablet device: Wacom Intuos5 touch M Finger touch 
      Device Type: "NoDevice" 
      # Axes limits data 
      X:        0 4096 
      Y:        0 4096 
      Z:        0 0 
      Pressure: 0 2048 
      Rotation: 0 1 
      T. Pres:  0 0
      

      The output of xinput:

      dmitry@linux-frm9:/home/devel/kde-src/qt5/qtbase>xinput list-props 16
      Device 'Wacom Intuos5 touch M Finger touch':
              Device Enabled (133):   1
              Coordinate Transformation Matrix (135): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
              Device Accel Profile (256):     0
              Device Accel Constant Deceleration (257):       1.000000
              Device Accel Adaptive Deceleration (258):       1.000000
              Device Accel Velocity Scaling (259):    10.000000
              Device Node (252):      "/dev/input/event19"
              Wacom Tablet Area (854):        0, 0, 4096, 4096
              Wacom Rotation (855):   0
              Wacom Pressurecurve (856):      0, 0, 100, 100
              Wacom Serial IDs (857): 39, 0, 3, 0, 0
              Wacom Serial ID binding (858):  0
              Wacom Pressure Threshold (859): 0
              Wacom Sample and Suppress (860):        2, 4
              Wacom Enable Touch (861):       1
              Wacom Enable Touch Gesture (862):       1
              Wacom Touch Gesture Parameters (863):   180, 80, 250
              Wacom Tool Type (864):  "TOUCH" (832)
              Wacom Button Actions (865):     "Wacom button action 0" (866), "Wacom button action 1" (867), "Wacom button action 2" (868)
              Wacom button action 0 (866):    1572865
              Wacom button action 1 (867):    1572866
              Wacom button action 2 (868):    1572867
              Device Product ID (251):        1386, 39
              Wacom Debug Levels (869):       0, 0
      dmitry@linux-frm9:/home/devel/kde-src/qt5/qtbase>
      

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-39572
          # Subject Branch Project Status CR V

          Activity

            People

              srutledg Shawn Rutledge
              dkazakov Dmitry Kazakov
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes