<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Middle-mouse panning does not work in some applications on ThinkPad touchpad"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=104215">104215</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Middle-mouse panning does not work in some applications on ThinkPad touchpad
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Wayland
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>x86-64 (AMD64)
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux (All)
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>libinput
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>wayland-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>montonen.niko@gmail.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Hardware: ThinkPad X220
Software: Arch Linux, i3wm under X.Org, libinput 1.9.3

The default configuration for the device "TPPS/2 IBM TrackPoint" sets the
property "libinput Button Scrolling Button" to 2.
This configuration causes the "hold mouse3 to pan" functionality to break in
certain applications, such as KiCad and FreeCAD.

When the property is set to 3, panning works in KiCad and FreeCAD.
However, in KiCad this then causes the right-click to no longer open the
context menu. FreeCAD seems to be unaffected, but I've only spent a few seconds
with it (to confirm it was affected in a similar way).
On the other hand, KiCad manages to spawn a context menu with the right-click
when using their legacy codepath, that uses software rendering. The context
menu is broken in their new OpenGL codepath. I believe I will also have to open
a bug report with that project.
You however understand my trouble - behavior is extremely unpredictable.

When a regular USB Plug and Play mouse is connected to laptop, both panning
with mouse3 depressed and the right-click context menu work as expected without
problems in all use cases.

I've been smashing my head against the walls trying to play with different
property values, trying to find a configuration that works, but without
success. As such, I have included below anything I could consider relevant.

/etc/X11/xorg.conf.d/30-touchpad.conf:
Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "Tapping" "true"
        Option "TappingDrag" "true"
        Option "HorizontalScrolling" "false"
EndSection

% xinput
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=11   [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=12   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=10   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=13   [slave  keyboard (3)]
    ↳ Integrated Camera: Integrated C           id=9    [slave  keyboard (3)]

% xinput list-props "SynPS/2 Synaptics TouchPad"
Device 'SynPS/2 Synaptics TouchPad':
        Device Enabled (142):   1
        Coordinate Transformation Matrix (144): 1.000000, 0.000000, 0.000000,
0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Tapping Enabled (279): 1
        libinput Tapping Enabled Default (280): 0
        libinput Tapping Drag Enabled (281):    1
        libinput Tapping Drag Enabled Default (282):    1
        libinput Tapping Drag Lock Enabled (283):       0
        libinput Tapping Drag Lock Enabled Default (284):       0
        libinput Tapping Button Mapping Enabled (285):  1, 0
        libinput Tapping Button Mapping Default (286):  1, 0
        libinput Natural Scrolling Enabled (287):       0
        libinput Natural Scrolling Enabled Default (288):       0
        libinput Left Handed Enabled (289):     0
        libinput Left Handed Enabled Default (290):     0
        libinput Accel Speed (291):     0.000000
        libinput Accel Speed Default (292):     0.000000
        libinput Scroll Methods Available (293):        1, 1, 0
        libinput Scroll Method Enabled (294):   1, 0, 0
        libinput Scroll Method Enabled Default (295):   1, 0, 0
        libinput Click Methods Available (296): 1, 1
        libinput Click Method Enabled (297):    1, 0
        libinput Click Method Enabled Default (298):    1, 0
        libinput Middle Emulation Enabled (299):        0
        libinput Middle Emulation Enabled Default (300):        0
        libinput Send Events Modes Available (264):     1, 1
        libinput Send Events Mode Enabled (265):        0, 0
        libinput Send Events Mode Enabled Default (266):        0, 0
        libinput Disable While Typing Enabled (301):    1
        libinput Disable While Typing Enabled Default (302):    1
        Device Node (267):      "/dev/input/event15"
        Device Product ID (268):        2, 7
        libinput Drag Lock Buttons (303):       <no items>
        libinput Horizontal Scroll Enabled (304):       0

% xinput list-props "TPPS/2 IBM TrackPoint"     
Device 'TPPS/2 IBM TrackPoint':
        Device Enabled (142):   1
        Coordinate Transformation Matrix (144): 1.000000, 0.000000, 0.000000,
0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        libinput Natural Scrolling Enabled (287):       0
        libinput Natural Scrolling Enabled Default (288):       0
        libinput Left Handed Enabled (289):     0
        libinput Left Handed Enabled Default (290):     0
        libinput Accel Speed (291):     0.000000
        libinput Accel Speed Default (292):     0.000000
        libinput Accel Profiles Available (305):        1, 1
        libinput Accel Profile Enabled (306):   1, 0
        libinput Accel Profile Enabled Default (307):   1, 0
        libinput Scroll Methods Available (293):        0, 0, 1
        libinput Scroll Method Enabled (294):   0, 0, 1
        libinput Scroll Method Enabled Default (295):   0, 0, 1
        libinput Button Scrolling Button (308): 2
        libinput Button Scrolling Button Default (309): 2
        libinput Middle Emulation Enabled (299):        0
        libinput Middle Emulation Enabled Default (300):        0
        libinput Send Events Modes Available (264):     1, 0
        libinput Send Events Mode Enabled (265):        0, 0
        libinput Send Events Mode Enabled Default (266):        0, 0
        Device Node (267):      "/dev/input/event17"
        Device Product ID (268):        2, 10
        libinput Drag Lock Buttons (303):       <no items>
        libinput Horizontal Scroll Enabled (304):       1</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>