Skip to content
Snippets Groups Projects
  1. May 30, 2019
  2. May 28, 2019
    • Peter Hutterer's avatar
      dix: leave last.valuators alone on slave switch · 24086852
      Peter Hutterer authored and Adam Jackson's avatar Adam Jackson committed
      
      Terms:
      dev->last.valuator[] is the last value given to us by the driver
      dev->valuator.axisVal[] is the last value sent to the client
      dev->last.scroll[] is the abs value of the scroll axis as given by the driver,
              used for button emulation calculation (and the remainder)
      
      This function updates the device's last.valuator state based on the current
      master axis state. This way, relative motion continues fluidly when switching
      between devices. Before mouse 2 comes into effect, it's valuator state is
      updated to wherever the pointer currently is so the relative event applies on
      top of that.
      
      This can only work for x/y axes, all other axes aren't guaranteed to have the
      same meaning and/or may not be present:
      - xtest device: no valuator 2
      - mouse: valuator 2 is horizontal scroll axis
      - tablet: valuator 2 is pressure
      
      Scaling the current value from the pressure range into the range for
      horizontal scrolling makes no sense. And it causes scroll jumps:
      
      - scroll down, last.valuator == axisVal == 20
      - xdotool click 1, the XTest device doesn't have that valuator
      - scroll up
        - updateSlaveDeviceCoords reset last.valuator to 0 (axisVal == 20)
        - DeviceClassesChangedEvent includes value 20 for the axis
        - event is processed, last.value changes from 0 to -1
        - axisVal is updated to -1, causing a jump of -21
      
      The same applies when we switch from tablet to mouse wheel if the pressure
      value is 0 on proximity out (basically guaranteed). So let's drop this code
      altogether and only leave the scaling for the relative x/y motion.
      
      Signed-off-by: default avatarPeter Hutterer <peter.hutterer@who-t.net>
      (cherry picked from commit d7b1753d)
      24086852
  3. May 20, 2019
  4. Apr 05, 2019
  5. Mar 25, 2019
  6. Mar 21, 2019
    • Ray Strode's avatar
      dix: ensure work queues are cleared on reset · 34553f50
      Ray Strode authored and Adam Jackson's avatar Adam Jackson committed
      If the server resets, most client workqueues are cleaned up as the
      clients are killed.
      
      The one exception is the server's client, which is exempt from
      the killing spree.
      
      If that client has a queued work procedure active, it won't get
      cleared on reset.
      
      This commit ensures it gets cleared too.
      
      (cherry picked from commit 8738ce85)
      
      Fixes: xorg/xserver#670
      34553f50
  7. Feb 25, 2019
  8. Feb 22, 2019
  9. Feb 20, 2019
Loading