#222 Cannot send three-key actions with Intuos4 touch ring

closed-fixed
2015-12-04
2012-10-16
Anonymous
No

I'm unable to use a touch ring to send an action consisting of three (or more) simultaneous key presses under Xorg.

Example:

szpajder@helix:~ $ xsetwacom get "Wacom Intuos4 4x6 pad" AbsWheelDown
key +Control_L +Shift_L +p -p
szpajder@helix:~ $ xsetwacom get "Wacom Intuos4 4x6 pad" AbsWheelUp
key +Control_L +Shift_L +o -o

xev output:

KeyPress event, serial 41, synthetic NO, window 0x1200001,
root 0x263, subw 0x0, time 25387357, (768,302), root:(772,327),
state 0x10, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False

KeyPress event, serial 41, synthetic NO, window 0x1200001,
root 0x263, subw 0x0, time 25387357, (768,302), root:(772,327),
state 0x14, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False

KeyRelease event, serial 41, synthetic NO, window 0x1200001,
root 0x263, subw 0x0, time 25387357, (768,302), root:(772,327),
state 0x15, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False

KeyRelease event, serial 41, synthetic NO, window 0x1200001,
root 0x263, subw 0x0, time 25387357, (768,302), root:(772,327),
state 0x11, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False

It seems it only sends two first keys from the configured sequence (ctrl+shift in this case).

Sending single-key and double-key events (eg. "p" or "ctrl+p") works OK. Anything above that fails. For example, if I set AbsWheelDown to "+ctrl +shift +alt p" the driver sends only "ctrl+shift". If I set it to "+ctrl +alt +shift p", it sends "ctrl+alt".

It worked until 0.12.0. It's broken since 0.12.99.1 up to and including 0.17.0. I use Gentoo-packaged version, but vanilla code behaves the same way.

I have no problems with three-key sequences attached to tablet buttons. It's only a touch ring issue.

My setup:

- HW: PTK-440
- kernel: 3.3.1 (vanilla)
- Xorg 1.12.2 (Gentoo packaged)

Discussion

  • Jason Gerecke

    Jason Gerecke - 2012-10-17
    • assigned_to: nobody --> comp_nerd
     
  • Jason Gerecke

    Jason Gerecke - 2012-10-17

    Thanks for the report. It looks like this bug is due to the errant use of ARRAY_SIZE on a pointer in the function sendWheelStripEvent. This results in the sendAction function only seeing the first few keys in an action.

    I have a quick hack patch that resolves the issue, but will try to get a proper patch written before 0.18.

     
  • Comment has been marked as spam. 
    Undo

    You can see all pending comments posted by this user  here

    Anonymous - 2012-10-20

    Just tested 0.17.99.1 and yup, it works correctly.

    Many thanks for the fix.

     
  • Comment has been marked as spam. 
    Undo

    You can see all pending comments posted by this user  here

    Anonymous - 2012-10-20
    • assigned_to: comp_nerd --> nobody
     
  • Jason Gerecke

    Jason Gerecke - 2012-10-22

    commit e81c1400b023be49afc3f62066d21281a1c2bb95
    Author: Jason Gerecke <killertofu@gmail.com>
    Date: Thu Oct 18 12:52:15 2012 -0700

    Have getWheelButton deal with array indices instead of pointers

    commit 637651338015563c6847028870aaa08b293f1ef1
    Author: Jason Gerecke <killertofu@gmail.com>
    Date: Thu Oct 18 13:06:36 2012 -0700

    Correct number of actions reported by sendWheelStripEvent to sendAction

     
  • Jason Gerecke

    Jason Gerecke - 2012-10-22
    • assigned_to: nobody --> comp_nerd
    • status: open --> closed-fixed
     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks