Bug 4256 - Pressure events are not picked up by gtk.
: Pressure events are not picked up by gtk.
Status: RESOLVED WONTFIX
Product: Mer
Core
: unspecified
: All Linux
: Low normal (vote)
: ---
Assigned To: Carsten Munk
: general-bugs
:
:
:
:
  Show dependency tree
 
Reported: 2009-04-08 10:50 UTC by anders_gud
Modified: 2011-11-28 12:08 UTC (History)
2 users (show)

See Also:


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description anders_gud (reporter) 2009-04-08 10:50:39 UTC
SOFTWARE VERSION:
Mer 0.11

STEPS TO REPRODUCE THE PROBLEM:
Run any application that reads pressure from Gtk (mypaint, gsumi and maybe
gimp)
This script should print out pressure enabled devices (it does in Diablo):
http://pastebin.com/m4e65ef17


EXPECTED OUTCOME:
Gtk should return gtk.gdk.AXIS_PRESSURE for xinput devices 

ACTUAL OUTCOME:
None

REPRODUCIBILITY:
always

EXTRA SOFTWARE INSTALLED:

OTHER COMMENTS:
Related to --with=xinput in gtk build ?

User-Agent:       Mozilla/5.0 (X11; U; Linux i686; sv-SE; rv:1.9.0.8)
Gecko/2009032711 Ubuntu/8.10 (intrepid) Firefox/3.0.8
Comment 1 Carsten Munk maemo.org 2009-04-10 12:30:00 UTC
Xinput is enabled in GTK build, must be on a lower level.
Comment 2 anders_gud (reporter) 2009-04-14 12:27:01 UTC
The tslib utilities report pressure values:
root@mer-curious:/home/anders# export TSLIB_TSDEVICE=/dev/input/event3
root@mer-curious:/home/anders# ts_print /dev/input/event3
1239699701.964538:    579    378    571
1239699701.984161:    579    380    505
1239699702.003723:    578    380    452
1239699702.023315:    578    381    440
1239699702.042907:    579    381    406
...

And so does evtest:
root@mer-curious:/home/anders# evtest /dev/input/event3
Input driver version is 1.0.0
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0
Input device name: "TSC2301 touchscreen"
Supported events:
  Event type 0 (Sync)
  Event type 1 (Key)
  Event type 3 (Absolute)
    Event code 0 (X)
      Value   3199
      Min        0
      Max     4096
      Fuzz       4
    Event code 1 (Y)
      Value   1267
      Min        0
      Max     4096
      Fuzz       7
    Event code 24 (Pressure)
      Value      0
      Min        0
      Max     2048
      Fuzz       2
Testing ... (interrupt to exit)
Event: time 1239699861.346282, type 3 (Absolute), code 0 (X), value 927
Event: time 1239699861.346343, type 3 (Absolute), code 1 (Y), value 1966
Event: time 1239699861.346343, type 3 (Absolute), code 24 (Pressure), value 323
Event: time 1239699861.346374, -------------- Report Sync ------------
Event: time 1239699861.365844, type 3 (Absolute), code 0 (X), value 915
Event: time 1239699861.365875, type 3 (Absolute), code 1 (Y), value 1950
Event: time 1239699861.365905, type 3 (Absolute), code 24 (Pressure), value 199
...

But xinput fails to recognise pressure capabilities (i.e Axis 2):
root@mer-curious:/home/anders# xinput list
"Virtual core pointer"    id=0    [XPointer]
    Num_buttons is 32
    Num_axes is 2
    Mode is Relative
    Motion_buffer is 256
    Axis 0 :
        Min_value is -1
        Max_value is -1
        Resolution is 0
    Axis 1 :
        Min_value is -1
        Max_value is -1
        Resolution is 0
"Virtual core keyboard"    id=1    [XKeyboard]
    Num_keys is 248
    Min_keycode is 8
    Max_keycode is 255
"TSC2301 touchscreen"    id=2    [XExtensionPointer]
    Num_buttons is 1
    Num_axes is 2
    Mode is Absolute
    Motion_buffer is 0
    Axis 0 :
        Min_value is 0
        Max_value is 799
        Resolution is 800
    Axis 1 :
        Min_value is 0
        Max_value is 479
        Resolution is 480
"Internal keyboard"    id=3    [XExtensionKeyboard]
    Num_keys is 248
    Min_keycode is 8
    Max_keycode is 255

Hal recognises the TSC2301 as a touchscreen device (the ABS_PRESSURE bit seems
to be set)
udi = '/org/freedesktop/Hal/devices/computer_logicaldev_input_1'
  info.capabilities = {'input', 'input.touchpad'} (string list)
  info.category = 'input'  (string)
  info.parent = '/org/freedesktop/Hal/devices/computer'  (string)
  info.product = 'TSC2301 touchscreen'  (string)
  info.subsystem = 'input'  (string)
  info.udi = '/org/freedesktop/Hal/devices/computer_logicaldev_input_1' 
(string)
  input.device = '/dev/input/event3'  (string)
  input.product = 'TSC2301 touchscreen'  (string)
  input.x11_driver = 'tslib'  (string)
  input.x11_options.Height = '480'  (string)
  input.x11_options.Rotate = 'NONE'  (string)
  input.x11_options.ScreenNumber = '0'  (string)
  input.x11_options.Width = '800'  (string)
  linux.device_file = '/dev/input/event3'  (string)
  linux.hotplug_type = 2  (0x2)  (int)
  linux.subsystem = 'input'  (string)
  linux.sysfs_path = '/sys/class/input/input3/event3'  (string)

But here is something strange in /proc/bus/input/devices it reads:

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="TSC2301 touchscreen"
P: Phys=spi1.0/input-ts
S: Sysfs=/class/input/input3
H: Handlers=event3
B: EV=b
B: KEY=0
B: ABS=1000003

Should not the ABS value be "3" (as in three ABS_X, ABS_Y and ABS_PRESSURE)
Comment 3 Andre Klapper maemo.org 2011-11-28 12:08:46 UTC
Closing the remaining open bug reports for "Mer" in bugs.maemo.org as WONTFIX,
as Mer now has its own bugtracker at 

                            http://bugs.merproject.org/

Please file a bug report in http://bugs.merproject.org/ if the problem that you
reported here still happens in a recent version of Mer published on
http://releases.merproject.org . 
Thank you for helping and supporting Mer!