[haiku-bugs] Re: [Haiku] #5179: Touchpad buttons not working correctly due to missing ClickPad support

  • From: "pulkomandy" <trac@xxxxxxxxxxxx>
  • Date: Tue, 20 Sep 2016 05:31:42 -0000

#5179: Touchpad buttons not working correctly due to missing ClickPad support
---------------------------------+----------------------------
   Reporter:  Lynton             |      Owner:  nobody
       Type:  enhancement        |     Status:  assigned
   Priority:  normal             |  Milestone:  Unscheduled
  Component:  Drivers/Mouse/PS2  |    Version:  R1/Development
 Resolution:                     |   Keywords:  mouse
 Blocked By:                     |   Blocking:  12403
Has a Patch:  0                  |   Platform:  x86
---------------------------------+----------------------------

Comment (by pulkomandy):

 Well, I made some investigations yesterday after closing your ticket.

 There isn't anything specific for these in the Synaptics touchpad
 protocol. This means, the touchpad will report both a button click, and a
 second finger on the touchpad (1 finger doing mouse moves + 1 finger over
 the "button" area). The touchpad isn't multi-touch, but it can tell when
 there are more than 1 finger on the pad.

 In our driver, all the processing for this is in http://cgit.haiku-
 os.org/haiku/tree/src/add-ons/kernel/bus_managers/ps2/movement_maker.cpp .
 This is not hardware-specific, which means we don't need a skilled
 hardware hacker to work on this. This piece of code takes the events from
 the touchpad as an input (X and Y position, Z pressure, and "W", which
 indicates various things including 2 or 3-finger movement, size of the
 finger, and a few others), and generates events for the input server.

 The entry point is the "EventToMovement" method. You can see that in the
 case of the clickpad, we will never go in _NoTouchToMovement, because when
 a button is pressed, there is always a finger (the same one) on the pad.

 Enabling the #define TRACE_MOVEMENT_MAKER in this file and looking at the
 syslog will provide some extra information. If someone does that, maybe
 enabling #define TRACE_PS2 in ps2_common.h would provide also low-level
 info from the driver itself, which may be useful, or too verbose and
 prevent proper use of the device at all.

--
Ticket URL: <https://dev.haiku-os.org/ticket/5179#comment:19>
Haiku <https://dev.haiku-os.org>
Haiku - the operating system.

Other related posts: