commit 2cb4d6277d5ea984479e3ff3c1560eac53543110
Author: Tatsunosuke Tobita <tatsunosuke.wacom@gmail.com>
Date:   Wed Nov 19 09:35:37 2025 +0900

    wacom 1.2.4
    
    Signed-off-by: Tatsunosuke Tobita <tatsunosuke.wacom@gmail.com>

commit 426e25d51590c9a29e6262ddadc2ba4ae76ebce2
Author: Ping Cheng <ping.cheng@wacom.com>
Date:   Mon Sep 29 18:25:11 2025 -0700

    Remove hardcoded TabletSetFeature(common, WCM_PAD)
    
    The flag is not used anywhere in the code. The PAD interface is
    decided in wcmConfig and wcmUSB.
    
    Signed-Off-By: Ping Cheng <ping.cheng@wacom.com>

commit 6b0ccc1c3ff1e90a8b46c0eb6bd7916a6dc75e5d
Author: Ping Cheng <ping.cheng@wacom.com>
Date:   Thu Sep 25 14:45:30 2025 -0700

    Remove hardcoded TabletSetFeature(common, WCM_LCD)
    
    Rely on INPUT_PROP_DIRECT which is passed directly from the kernel
    driver. Keep the WCM_LCD flag as defined for feature verification.
    
    Signed-Off-By: Ping Cheng <ping.cheng@wacom.com>

commit 31d3b745d630ed87ed25d1f44a6596c9968ffc0c
Author: Funda Wang <fundawang@yeah.net>
Date:   Sun Nov 17 19:04:07 2024 +0800

    meson.build: fix variable name when dealing with systemd-unit-dir

commit 4aab05f10e44b2c990f603b5ecbaff49c65871e8
Author: Joshua Dickens <Joshua@Joshua-Dickens.com>
Date:   Tue Oct 29 14:55:35 2024 -0700

    wacom 1.2.3
    
    Signed-off-by: Joshua Dickens <Joshua@Joshua-Dickens.com>

commit 948d0ba8a918646154d3bd73c7483639d4a79d55
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Oct 21 19:12:14 2024 +1000

    man: discourage use of Section InputDevice
    
    Closes #339

commit 47552e13e714ab6b8c2dcbce0d7e0bca6d8a8bf0
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Sep 12 10:56:59 2024 +1000

    conf: bind this driver to all tablets by default
    
    Historically we've only bound to Wacom devices and a select few other
    tablets that were handled by this driver. This required adding those
    tablets which we forgot for years for e.g. Huion/XP-Pen devices
    (see commit 4e1d6d61).
    
    At this point we should support pretty much anything that is a tablet so
    let's bind to those by default.
    
    Exceptions for Wacom touchpad/touchscreens stay in the file and so do
    some other ones that are too hard to test whether they're handled by
    them generic MatchIsTablet condition.
    
    Closes #353

commit 659fee33a1e3600e86a959e60d969754fa1370b9
Author: TheSnowfield <17957399+TheSnowfield@users.noreply.github.com>
Date:   Thu Sep 5 16:52:57 2024 +0900

    conf: add support for Surface IPTS device

commit fdf6d5a73597bb6962ca7dc89aae6aed5eaf505e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Sep 4 09:14:57 2024 +1000

    CI: bump to actions/checkout@v4 and actions/setup-python@v5

commit 94c2d331d3cc57d21b61f38985843403e91191a7
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Tue Sep 3 22:42:05 2024 +0000

    CI: bump actions/download-artifact to v4
    
    Originally suggested by github's dependabot this bumps to
    download-artifact@v4 for a security issue. That requires bumping to
    upload-artifact@v4 too. And that in turn requires that we only have one
    tarball with any given name so we no only generate the tarball from the
    gcc job.

commit b43c2597e0604980ba66dda46270be40d3da2086
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue May 28 13:49:36 2024 -0700

    Implement support for devices with two relative wheels / dials
    
    Just like how tablets may have two absolute wheels, it also is possible
    for them to have two relative wheels. This commit extends the
    WACOM_PROP_WHEELBUTTONS property to reference two new actions:
    RelWheel2Up and RelWheel2Down. These actions will be triggered in
    response to horizontal scrolling events from the kernel (positive
    and negative REL_HWHEEL events, respecitively). The default action
    for these wheels is sending horizontal mouse scroll events (X11 mouse
    buttons 7 and 6, respectively).
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit a418ede89488ecbd2785860ff7ac112e37c6857b
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue Jul 30 14:43:09 2024 -0700

    Swap the relwheel actions triggered and defaults for vertical scrolling
    
    Relative wheel actions are backwards from how the user thinks about them.
    If you want to get/set the action that occurs when scrolling up, you
    currently need to work with the REL_WHEEL_DOWN action. This is difficult
    to explain to users and is also makes the code more difficult to follow.
    
    This commit changes the behavior so that programming the REL_WHEEL_UP
    action actually affects what happens when you physically scroll the
    wheel up. The behavior is now: physical scroll wheel up -> positive
    delta from kernel -> REL_WHEEL_UP action -> X11 mouse button 4 ->
    window scrolls up.
    
    Note that this commit will break any xsetwacom scripts that users may
    have which change the relative wheel actions from their defaults. It
    would also affect control panels that rely on xsetwacom or configuring
    the driver directly. We don't expect this to cause significant
    problems in reality since Wacom has not produced tools with relative
    wheels in many years and so there are few scripts/control panels to
    break.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit a91168c7c257e7727e9c70cef48d6d6d3d1d926f
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Jul 31 15:37:19 2024 -0700

    Recognize the pad in more situations
    
    Allow dial and ring events to be recognized as coming from the pad
    when there are no other better sources of information (for example,
    BTN_TOOL_* events earlier in the event packet, an ABS_MISC with the
    information, or a previously-known tool type).
    
    This fixes an issue where the pad is not recognized (and events are
    not generated) if your first interaction is with a relative wheel
    rather than a button or touchring. The events types matched by this
    function have an ambiguous source on their own, but other earlier
    tests would be able to determine the type from other context. If
    all other context-sensitive tests fail to find a tool type, it is
    reasonably safe to assume we're looking at a pad.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 7722f2ea1d6e50b26ec273becc8ded901f14590f
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Tue May 28 13:41:34 2024 -0700

    Update xsetwacom documentation
    
    Updates documentation for some of the button-like parameters. The man
    page for xsetwacom now lists all button-like parameters and the help
    page now describes the 2nd absolute wheel properly.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 77adee9c6ef3f2c6c141d16df099c3c996397f81
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed May 29 13:37:26 2024 -0700

    Clean up function documentation
    
    Remove documentation for parameters that are no longer present.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 388cbf8263fe50c79d2e7ff0291f21d1b16861e5
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Jul 31 10:42:46 2024 -0700

    Fix log output of pointer arbitration
    
    Misplaced newline causes logs some logs to get intermingled.
    Whichever log follows this one becomes part of the same entry.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 8be74a345eeaa6440d1f315b6836eda58e495ebb
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Thu Aug 1 10:44:42 2024 -0700

    Do not log errors due to REL_WHEEL_HI_RES events from kernel
    
    High-res events are "expected" from the kernel going forward. We may not
    support doing anything with them, but we also shouldn't clutter the logs
    with error messages.
    
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit f77696e392e7dff4e5ad6bc989a9fda2fe4fa7db
Author: Jason Gerecke <jason.gerecke@wacom.com>
Date:   Wed Jul 31 15:36:31 2024 -0700

    Avoid out-of-bounds array read in usbInitToolType and fix its fallback
    
    The usbInitToolType function uses `deriveDeviceTypeFromButtonEvent` as
    a fallback when it cannot otherwise discover the type of tool being
    reported in a packet of kernel events. This fallback was intended
    to be called for each event in the packet by iterating over the
    `event_ptr` array. The loop is incorrectly implemented, however. Before
    we get to this point, the value of `event_ptr` would have already been
    incremented to the end of the list by the deviceTypeFromEvent loop.
    This means our calls to deriveDeviceTypeFromButtonEvent are accessing
    data beyond the valid list of events and possibly even beyond the end
    of the array.
    
    To fix this, we can replace the pointer arithmetic in both loops with
    array index notation instead.
    
    Fixes: 3eacea1058ef ("Attempt to derive the tool type from a known button/key event")
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 4e1d6d61bef5154d66ef0116ef70a817ce21857e
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jul 31 11:35:29 2024 +1000

    conf: add huion and xp-pen to our default snippet
    
    These tablets are supported provided the right kernel driver is loaded,
    so let's add them by default instead of requiring every user to
    write a config snippet .

commit f70c7dee7cef4b703801597fc49cd701d82d37ac
Author: Tatsunosuke Tobita <tatsunosuke.tobita@wacom.com>
Date:   Mon Jun 24 14:04:42 2024 +0900

    man: add the description for ResetArea option (#346)
    
    ResetArea is an option already available in xf86-input-wacom.
    And it is the reciprocal option to Area option.
    
    Signed-off-by: Tatsunosuke Tobita <tatsunosuke.tobita@wacom.com>

commit bc795e97a7c145704bad7e34cc3948d00dd60574
Author: Tatsunosuke Tobita <tatsunosuke.tobita@wacom.com>
Date:   Wed Jun 12 12:31:26 2024 +0900

    man: remove texts related to InputDevice (#345)
    
    Since xorg fully started to rely on hotplugging over decade,
    modern tablet devices can be automatically detected.
    This commit removes "Section InputDevice" related texts, which
    is used when hotplugging is disabled.
    
    Also, it replaces all "5X' to "5" to describe the proper references while
    we're here.
    
    Signed-off-by: Tatsunosuke Tobita <tatsunosuke.tobita@wacom.com>

commit 418e38f5b5abd823dcc4d68f1009ea48fb936324
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Apr 15 14:56:16 2024 +1000

    xf86-input-wacom 1.2.2
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d55788137c84594754f1d46e4828fa3b8d773368
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Apr 10 11:46:10 2024 +1000

    Fix wcmForeachDevice check in wcmMatchDevice
    
    wcmForeachDevice returns 0 for no matches, a negative errno or the
    greater-than-zero number of matches. In wcmMatchDevice we return either
    0 or 1 as matchDevice() stops the foreach once the first match is
    encountered.
    
    Fixes: d5ca999f35c7 ("Add a helper function to iterate over local devices to the driver layer")
    Closes #342

commit f4241514b725377e03ad55b4dbe8750cd3e4e5f4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 11 10:43:17 2024 +1000

    release.sh: Drop the ancient x"foo" != x comparisons
    
    These haven't been needed in decades. Where a string may be empty use
    quotes, otherwise let's switch string comparisons to just that. And
    where we check for empty/nonempty use -z/-n.

commit 45e01b7506e075cdb61f514aea065ab28f44e090
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 11 10:37:35 2024 +1000

    release.sh: drop --force and --moduleset
    
    No longer hooked into anything so let's not pretend we have it.

commit 29e27f27401fc2a18f8feabc09959cae38cc11ab
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 11 10:36:34 2024 +1000

    release.sh: default to '.' if no module was given
    
    Might as well since we only ever release one module at a time with this
    script.

commit 564e034166141976ba9e88de098043bf6bc73046
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 11 10:33:17 2024 +1000

    release.sh: update to take a --token value (#340)
    
    Apparently the old way no longer works, so let's update with a
    copy/paste from the examples.
    
    Intentional switch to use --token because that's how you should be doing
    releases anyway - with a temporary token that can be revoked after the
    release is complete (and that also encodes the username).
    
    https://docs.github.com/en/rest/releases/releases?apiVersion=2022-11-28#create-a-release

commit d73eb2ee78670cc2b1d7cc3861f466867ccba479
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Mar 4 09:33:07 2024 +1000

    wacom 1.2.1
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3ce73a61a17ca1cbb222c67c0c803a7e40d0b993
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Feb 20 10:52:25 2024 +1000

    meson.build: allow disabling the xsetwacom build
    
    xsetwacom pulls in the xorgproto and Xlib dependencies, so let's make
    this optional for the (niche) case of where we really only want the
    driver built.
    
    Since this is a rather niche case let's make it a boolean true/false
    option instead of a feature with "auto".

commit 6f8ed055c655fdd3a0f91870817864ecd81c4d8a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Feb 29 15:04:18 2024 +1000

    CI: bump our containers to use Ubuntu 22.04

commit f963825e9a2ff531ca16e36408a42c8e2b9e48c3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 1 09:16:21 2023 +1000

      wcmUSB: fix undefined behavior for bit-shifting
    
    Automated test runs have detected the following issue while running UBSan
    checks:
    
    ~~~
    ../src/wcmUSB.c:1372:11: runtime error: left shift of 1 by 31 places cannot
     be represented in type 'int'
            #0 0x7f0444bcbd8c in mod_buttons ../src/wcmUSB.c:1372
            #1 0x7f0444bd7f26 in test_mod_buttons ../src/wcmUSB.c:2090
            #2 0x7f0444bfcea7 in wcm_run_tests ../test/wacom-test-suite.c:46
            #3 0x56204d77b405 in main ../test/wacom-tests.c:44
            #4 0x7f0448625082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082)
            #5 0x56204d77b1cd in _start (/home/runner/work/xf86-input-wacom/xf86-input-wacom/builddir/wacom-tests+0x11cd)
    
    SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../src/wcmUSB.c:1372:11 in
    
    The default type of a literal `1` is `int` and thus a leftshift of 31 is
    not permitted. Switch it to `1u` and thus `unsigned int` for Button 31
    which is the max button we support (if zero-indexed).
    
    Link: https://github.com/linuxwacom/xf86-input-wacom/actions/runs/7049012015/job/19186502078
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 73f66d42d72c2c758c09acab84b13dab065886d3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Dec 1 09:14:11 2023 +1000

    Revert "wcmUSB: Correct bounds check of maximum button number"
    
    This fixed the wrong issue, the undefined behavior was caused by
    (1 << btn) defaulting to int rather than unsigned int. See the follow-up
    commit for a fix.
    
    This reverts commit bf61b3e22b2bb25dc9aed76103488eb7ebc47bb5.

commit bf61b3e22b2bb25dc9aed76103488eb7ebc47bb5
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Nov 30 08:02:08 2023 -0800

    wcmUSB: Correct bounds check of maximum button number
    
    Automated test runs have detected the following issue while running UBSan
    checks:
    
    ~~~
    ../src/wcmUSB.c:1372:11: runtime error: left shift of 1 by 31 places cannot
     be represented in type 'int'
        #0 0x7f0444bcbd8c in mod_buttons ../src/wcmUSB.c:1372
        #1 0x7f0444bd7f26 in test_mod_buttons ../src/wcmUSB.c:2090
        #2 0x7f0444bfcea7 in wcm_run_tests ../test/wacom-test-suite.c:46
        #3 0x56204d77b405 in main ../test/wacom-tests.c:44
        #4 0x7f0448625082 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x24082)
        #5 0x56204d77b1cd in _start (/home/runner/work/xf86-input-wacom/xf86-input-wacom/builddir/wacom-tests+0x11cd)
    
    SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../src/wcmUSB.c:1372:11 in
    
    ~~~
    
    While the faulty line has some protection against an excessively-large
    value of 'btn', the bounds are incorrect. A button number of 32 would
    be allowed by the existing check but would also lead to undefined
    behavior.
    
    This commit modifies the bounds to properly fit the condition.
    
    Link: https://github.com/linuxwacom/xf86-input-wacom/actions/runs/7049012015/job/19186502078
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit dbb8ddce94b7bfe416dd88b6ea286538940d9d38
Author: Jason Gerecke <killertofu@gmail.com>
Date:   Thu Nov 30 07:47:43 2023 -0800

    github: Minimize permissions granted to automated workflows / jobs
    
    Jobs that use the GITHUB_TOKEN to perform sensitive actions on behalf of
    a real user may be granted a range of permissions. Instead of granting
    blanket permissions to read and write "all" APIs, we should really limit
    the permissions what any individual workflow or job can do.
    
    This commit sets the default permissions for each workflow to "contents:
    read", which allows jobs to only read from the repository.
    
    Link: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idpermissions
    Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>

commit 3d3b474a750106f8db7c47d0088209f8ec3ae1c4
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 14 14:02:48 2023 +1000

    Add a pressurecurve debugging tool
    
    This tool takes (one or multiple) sets of 4 coordinate that represent
    the second and third point for our pressure curve (first and fourth
    points are hardcoded to 0/0 and 1/1 like the driver does)
    
    It spits out gnuplot-compatible lines that can be printed for visual
    debugging. Usage to print the GNOME default curves:
    
    ./build/pressurecurve \
        0 .75 .25 1 \
        0 .5 .5 1  \
        0 .25 .75 1 \
        0 0 1 1 \
        .25 0 1 .75 \
        .5 0 1 .5 \
        .75 0 1 .25 > gnuplot.data
    
    And that gnuplot data can then be printed with:
    
     #!/usr/bin/gnuplot
     set terminal qt persist
     set style data lines
     set xrange [0:1]
     set yrange [0:1]
     plot \
      "gnuplot.data" using 1:2 title "  0, .75, .25, 1", \
      "gnuplot.data" using 1:3 title "  0, .50, .50, 1", \
      "gnuplot.data" using 1:4 title "  0, .25, .75, 1", \
      "gnuplot.data" using 1:5 title "  0,   0,   1, 1", \
      "gnuplot.data" using 1:6 title ".25, 0,   1, .75", \
      "gnuplot.data" using 1:7 title ".50, 0,   1, .50", \
      "gnuplot.data" using 1:8 title ".75, 0,   1, .25"

commit 2612afb19e37fed69f3aca534d213a0d7e71b595
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Nov 14 12:31:50 2023 +1000

    Move the pressurecurve calculation into a separate file
    
    There's nothing driver-specific about this and it allows us to test it
    separately or write tools to test it.

commit 55a10e392f7337da0dfcc19a60f816aa7645f2df
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 29 11:15:45 2023 +1000

    Add option SmoothPanscrollingEnabled
    
    This is a backwards-compatibility option similar to the Pressure2K
    option. GDK2 applications are effectively limited to 7 axes
    (value of GDK_AXES_LAST in GDK2) and adding smooth panscrolling gives
    our device 8 axes total. This can cause issues when the driver, GDK and
    the application don't agree on the number of axes in the device.
    
    This is an application/GDK bug but as for the Pressure2K option we
    expect there to be applications that cannot be updated easily. To work
    around this, provide a driver option to disable this new feature
    altogether and effectively return to 6 axes for the pen device.
    
    This is a partial revert of fe923e927a "Implement smooth panscrolling"
    for the implementation. Minor changes though, the implementation now
    relies more on local variables than pointers.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 815edf68875193d254f12dbf7e0f944dccbbd6c1
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jun 15 13:10:06 2023 +1000

    test: parametrize the scroll test for vert + horiz scrolling
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 692aa3b04916af3aad7b84131e1475d141f6d899
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 29 11:21:23 2023 +1000

    x11: don't post motion/proximity events with an empty valuator mask
    
    After converting from our internal axis types to the x11 valuators we
    may (theoretically) be left with an empty valuator mask. Let's not post
    events in that case.
    
    This is a theoretical issue for now.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit d0e1fee6bbdadfd8aa76a46e87a29fb689817fc3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 29 11:15:51 2023 +1000

    Remove some unnecessary empty lines
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit ca34daadc486217cfe5463237b42035146339cff
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 29 11:10:43 2023 +1000

    Remove a confusing comment
    
    We clip to 6 axis here, so having a comment that lists 8 axes is not
    overly useful.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 3bde61c986ca7c1c373edd5ba4844ca6550fdbb8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jun 6 14:30:09 2023 +1000

    release.sh: drop support for modfiles and module sets
    
    Leftover from the xorg release.sh script, no longer needed here since we
    only ever release one module at a time.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 991660b38caf40aeaa8dd6e59c6b554b12c761da
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 29 09:38:14 2023 +1000

    man: remove some unnecessary indent
    
    All our options were indented by an extra 4 units, unnecessary since we
    use TP for all of those anyway and get a highlight.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 8f655fe3faabc4a44a32504d0ef14fc961f803fb
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Apr 6 11:17:09 2023 +1000

    wacom 1.2.0
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0bf20b63f35385893f58bcbacbc3d78dc9dcf207
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Dec 7 08:46:32 2022 +1000

    CI: update some actions to v3
    
    Node 12 is deprecated so let's switch to the newer version
    https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fe923e927a8ddf4d2e82ef4757c885b06d47fa03
Author: Greenscreener <honzikcernoh@gmail.com>
Date:   Sun Jul 24 15:02:46 2022 +0200

    Implement smooth panscrolling

commit 2a9e5953f89a7085786326e07edcb53ad821aace
Author: Greenscreener <honzikcernoh@gmail.com>
Date:   Sun Jul 24 14:48:29 2022 +0200

    Replace valuator array with valuator mask in convertAxes
    
    ValuatorMask has been around since xserver 1.10, released in 2011.

commit 6eefde01f04454c8b0df1dedd2bbf77086206c09
Author: Greenscreener <honzikcernoh@gmail.com>
Date:   Sun Jul 24 14:41:50 2022 +0200

    Fixing discrepancy in naxes
    
    See https://github.com/linuxwacom/xf86-input-wacom/pull/222#discussion_r897908702

commit 66f41d6225b34ca02a4a70d2a101e82c561c51d7
Author: Ping Cheng <ping.cheng@wacom.com>
Date:   Wed Nov 2 22:09:36 2022 -0700

    Assign Wacom specific keys only to Wacom devices
    
    Most extra features are only for Wacom 0x56a devices. Make them
    specific so we don't abuse other devices ;).
    
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>

commit 61b7d9061b53f79b5a37a463269bb9c8d45dbe14
Author: Ping Cheng <ping.cheng@wacom.com>
Date:   Wed Nov 2 21:55:21 2022 -0700

    Move wcmDeviceTypeKeys to wcmConfig.c
    
    There is only one file that needs wcmDeviceTypeKeys. Move it
    and make it into a static routine to simply the logic. Also,
    there is no value to return from this routine. It sets the
    types and keys to the common structure.
    
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>

commit 829a2d996f1a8d8a735c0eb7340797959de03ca8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 31 11:56:16 2022 +1000

    gwacom: add support for special runtime options
    
    This is a hack to make it possible to test options that cannot be set
    through the xorg.conf, e.g button actions that are set through the
    X-specific properties interface.
    
    Expose a new function for "runtime options", though the actual option
    implementation needs to be handled in the gwacom wrapper code - i.e.
    only options explicitly supported can work.
    
    The currently supported option is "PanButton" which maps the given
    button to the PanScroll action.

commit 8e4a77bc28970d23da80838c195550cad4ef8e05
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Sep 1 15:31:47 2022 +1000

    x11: de-duplicate the valuator number assignment
    
    Let's add a helper function for this so we can't mess this up.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 1aaa36753c1008733b62cea5f60088ddbddff1e8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Aug 31 11:35:53 2022 +1000

    Remove useless Wacom action name setting
    
    Copy/paste error from when this as lifted from the properties code to
    the core driver code, in the commits leading up to
    5326fd126042684338dfb662f48ba2e27be7fa5a.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 23c46706f12982c3baaa03b3b8f53ea72679a136
Author: Ping Cheng <ping.cheng@wacom.com>
Date:   Fri Aug 26 15:02:16 2022 -0700

    Bring two finger right-click function back
    
    Patch 65b7c37 fixed spurious right-clicks by setting wcmGestureMode
    back to GESTURE_CANCEL_MODE immediately when there is less than two
    fingers on the tablet, if the wcmGestureMode was in SCROLL_MODE or
    ZOOM_MODE.
    
    However, it narrowed wcmFingerTapToClick() rotine to LAG_MODE, which
    removed the opportunity for the routine to executed. Revert that.
    
    Fixes: https://github.com/linuxwacom/xf86-input-wacom/commit/65b7c37f0fac5cdd03ff7f977124148d0bdf4be8
    (Prevent spurious right-clicks at the end of very short scroll and zoom gestures)
    
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>

commit 18ed7697e3049943e3bfef46af6c647b2d93ed8f
Author: Ping Cheng <ping.cheng@wacom.com>
Date:   Tue Jul 19 14:01:35 2022 -0700

    Don't report error when waiting for serial number
    
    For some devices, such as AES pens, serial number is 0 when tool
    comes into proximity. That means serial number was not ready. It
    is a known state. All we needed is to wait for the non-zero serial
    number. Don't report it through W_ERROR.
    
    Signed-off-by: Ping Cheng <ping.cheng@wacom.com>

commit ad11a9da15d4cbef62f4ec1c19a6279ef21710f3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jul 25 12:30:14 2022 +1000

    Remove a comment referring to the wrong function
    
    The function moved away in e4ea35d56aec59a5de0ef3d9282fdd796d89e6ad,
    let's drop this comment.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f2df07587e5ff89a6c5b2246bc468211c31cf43a
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jul 14 13:45:32 2022 +1000

    wacom 1.1.0
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit e71404e3d500762ea25e40ec7d0c4a34d3978762
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu Jul 14 13:57:37 2022 +1000

    meson.build: fixate the GIR namespace version to 1.0
    
    This is more like a soname version than a project version - keeping it
    in step with the driver version means we also have to update each
    callsite. But it looks like we'll be stable for this for a while, so
    let's just fixate it.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit f53fbcafc277bb750e0584584bf58d1d3d8353df
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 13 11:19:36 2022 +1000

    gitignore: add __pycache__
    
    Might as well not accidentally commit this one
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 0dc0b101bf49731cdb7946835bd3bd2045d036d8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Fri Jun 10 21:00:26 2022 +1000

    test: add a test for the artpen/airbrush wheel updates
    
    This was slightly too complicated to add to the existing
    test_axis_updates test, so that test is duplicated here, only testing
    what we see as "wheel" axis in the driver.
    
    The test is run for all three pens
    
    Because the X driver unconditionally sets ds->abswheel from the kernel
    events, we must take care only to send the kernel axis that matters for
    our current tool - otherwise we overwrite ds->abswheel with whichever
    one of ABS_Z or ABS_WHEEL is sent last in the evdev frame.
    In other words, we cannot test that artpen ignores ABS_WHEEL and
    airbrush ignores ABS_Z because ... they don't.
    
    For the generic pen that doesn't matter since we're supposed to ignore
    both axes anyway.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Ping Cheng <ping.cheng@wacom.com>
    Tested-by: Ping Cheng <ping.cheng@wacom.com>

commit be3471293363b518eb07a1eb041fb3e548de1bef
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon Jun 13 10:08:08 2022 +1000

    meson: default to pytest-3 first, then pytest
    
    At least Ubuntu 20.04 has pytest point at the Python 2.x compatible
    version, resulting in syntax errors when trying to parse our Python 3
    code files. So let's check pytest-3 first since that is the compatible
    version and fall back to normal pytest only where it's missing.
    
    Fixes #272
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 15802a3871d15fcbd1a510b85715e633b11e078a
Author: Greenscreener <honzikcernoh@gmail.com>
Date:   Sat Jun 11 14:58:55 2022 +0200

    Added vim modelines to python files.

commit d5b61195553094f316015facb0d7a7ac2954d1b2
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 8 14:44:05 2022 +1000

    test: raise an InputError with better info if modules are missing
    
    The tests need to run as root (for uinput/evdev) so pip-installing a
    package as user gets past the build check but then fails at runtime.
    Let's make this bit easier to debug.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit c44522c1f2c4487e1629435aa45b545c1d0279e9
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Wed Jun 8 14:43:30 2022 +1000

    meson.build: default to verbose pytest logging
    
    Might as well collect as much data as we can get
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 073556d13e3937735983fb32e2704a5aaa51e435
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue May 24 11:07:37 2022 -0700

    test: Ensure standard pen does not report the "wheel" axis
    
    The event data has a mask field that specifies which fields are actually
    present (zero may be a valid value for an axis after all). Let's check
    that mask for each event and ensure that if the pen supports the axis,
    the axis is also present in the event.
    
    We still send kernel events for all axes to ensure the unsupported ones
    are correctly ignored by the driver.
    
    This allows us to parametrize the test with different stylus types and
    re-use the rest. Here we add a standard Cintiq pen and make sure the
    wheel axis is never set.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 817e77f5a7502cc9258d1e41e5f2863a498d104f
Author: Aaron Armstrong Skomra <aaron.skomra@wacom.com>
Date:   Tue May 24 11:20:38 2022 -0700

    Don't report "wheel" valuator unless it exists on tool
    
    Fixes #199
    
    Prior to this commit we operated as if all non Art Pens needed
    this valuator normalized.
    
    Signed-off-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 6fd9efcd269e7bd879c62044d176007df8d659d8
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 23 13:43:30 2022 +1000

    test: ignore test devices, or real devices during test suite runs
    
    Set an option on all our created uinput devices, and an environment
    variable when we're running the test suite. If both of these are set we
    process the device, otherwise ignore the device during PreInit.
    
    This stops the driver picking up events from test suite runs
    (potentially clicking around on the desktop) and it stops the test suite
    from false positives by locally connected devices.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit 00473a30a0c5a6558a3c0491fc5808baaf711702
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Mon May 23 13:24:13 2022 +1000

    test: fix a typo
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>

commit fd10a749f93e9bf7458c3f039fae61802234b8d4
Author: Joshua <Joshua@Joshua-Dickens.com>
Date:   Sun May 22 18:35:21 2022 -0700

    Fix xsetwacom returning 0 even when there's an error (#266)
    
    xsetwacom was only able to return a failure on a few scenarios but
    would return a success even when the command would encounter failures.
    
    List, set, get, and some other functions within those all had the potential
    to fail and would print an error message when said failures occurred
    but would improperly return a success.
    
    This commit adds the ability to properly report a success(0) or a failure(-1)
    to the relevant functions including all get and set methods that can be
    called by get_func and set_func.
    
    Link: https://github.com/linuxwacom/xf86-input-wacom/issues/126
    Signed-off-by: Joshua Dickens <joshua.dickens@wacom.com>

commit bcd984bdc353f2b4524debe36a11f58d0e81f346
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 10:45:47 2022 +1000

    test: add a test for the artpen rotation
    
    The artpen has a physical rotation property, sent by the kernel driver
    as ABS_Z (historical reasons). In the driver this is mapped to the
    ds->abswheel state because this axis is shared with the airbrush wheel -
    both are sent through the same XI valuator (historical reasons, as
    usual).
    
    We can rather easily test this by ensuring we have an artpen device id
    and then send something through ABS_Z, that should update the wheel
    axis.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 1f21c8c7fca37c15e0d8a6f7c7f89519c5947829
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 09:49:51 2022 +1000

    test: ensure a device prox out after our events
    
    This avoids a potential stuck button by leaving the tablet in proximity.
    Shouldn't happen since removing the device should release all buttons
    but...
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 2f1a7ae905886fb1441d45b97c8e9952a1c3a878
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 09:45:32 2022 +1000

    test: swap the axis checks for an iterator-based approach
    
    This ensures we get a StopIteration exception if we don't have the
    events we expect - previously we'd get a false positive on this test if
    we had no motion events after the first one.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 4d3bbc84e026ad4f7513d54432c26ae49b2fdd4d
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 09:52:49 2022 +1000

    test: increase the count of events for axis update tests
    
    Make it 30% of the axis in 2% step increments, this gets past the issue
    of tilt not updating significantly and getting filtered.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 5d4ef8ac9088427dabbe5b6d5e367bb44c1d59bc
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 10:41:03 2022 +1000

    test: fix the ID assignment when parsing a device file
    
    Because InputId didn't have the same field order as the recording (to
    allow for default bustype, vid and version), we ended up with an
    erroneous vendor ID, causing some code paths in the driver to go the
    non-wacom path.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 1b7d64565cda276dbd20e0b67a9bb88ef538a7f3
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 09:22:04 2022 +1000

    test: add a helper script to set up the environment
    
      $ sudo ./test/wacom-test-env.sh
      $ pytest
    
    A lot easier this way than having to manually set the environment
    variables.
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Aaron Skomra <aaron.skomra@wacom.com>

commit 09567517939109cbaf9928a36e43e86bd1d71082
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Thu May 5 10:11:04 2022 +1000

    Document the rotation/wheel axes, they're not what you'd expect
    
    For historical reasons, the rotation axis is actually the cursor
    rotation only, the artpen rotation is mixed in with the airbrush wheel
    (which is scaled in to the rotation range).
    
[--snip--]
