#
49efa33d |
|
17-Jan-2023 |
PulkoMandy <pulkomandy@pulkomandy.tk> |
ps2 synaptics: implement 'extended W' mode. "Newer" synaptics touchpad support a new mode where they can report more information to the host. In this mode, there is a different packet format for tracking extra data from the touchpad, including a wheel encoder (mousewheel) if available, and multitouch finger tracking. This mode is documented in the Synaptics touchpad interfacing guide (Synaptics document 511-000275-01 Rev. B), but was not yet implemented in our driver. It should help with detecting multiple fingers, or finger position on clickpads to determine right or left click. This change implements the following items from the Synaptics interfacing guide: - Cleanup and clarify the code for features detection to properly report clickpads - Enable "extended W" mode if supported - Process extended W values 0 (mouse wheels, reported in the touchpad_event structure and could be used by input_server for scrolling), 1 (secondary finger), and 2 (finger count) - Fix handling of wValue, which is not always a finger width - Add handling of vValuen which indicates the finger width when wValue doesn't Overall, this should provide the movement_maker with a better picture of what's happening. Also improve tracing to show received packets and the corresponding WValue since that's an important value in identifying which type of packet it is. Unfortunately I currently don't have a laptop with synaptics touchpad to test this with. Change-Id: If334392f4eb2a146955f6c8c897f0ab64d79b8d9 Reviewed-on: https://review.haiku-os.org/c/haiku/+/4425 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk> Reviewed-by: nephele <nep@packageloss.eu>
|
#
5e596efe |
|
15-Jul-2022 |
Augustin Cavalier <waddlesplash@gmail.com> |
Refactor touchpad movement generation by migrating MovementMaker to userland. This considerably overhauls touchpad event generation, simplifying and cleaning it up considerably: * Return the touchpad specifications through the MS_IS_TOUCHPAD ioctl. * There is now a dedicated MS_READ_TOUCHPAD ioctl, as touchpads can either return touchpad_movement structures or mouse_movement ones depending on what mode they are operating in. * Event repeating on timeouts is now handled in MovementMaker and the input_server control thread, so MS_READ_TOUCHPAD takes a timeout value. This means we can drop all the EventProducers. * Use the real floating-point math functions in MovementMaker now that we are running in userland. * Drop unused structures, constants, headers, and other things related to touchpad support. Change-Id: I28cdb28e4100393a9338a8ebb865573cec13fc1e Reviewed-on: https://review.haiku-os.org/c/haiku/+/5455 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
79cb8f02 |
|
13-May-2018 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
PS/2 synaptics: minimal clickpad support Handled as a 1-button mouse. We didn't really support this since the old Macintosh ADB mouses, so let's see if that code aged well! Change-Id: Ibed2423023e821ae4ce608f0ddbc5ac32bfbd8f7
|
#
258b7d4a |
|
10-May-2018 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
ps2_synaptics: support Lenovo use of extra buttons On some Thinkpads, the extra buttons are used for the trackpoint, so they should be reported as "main" buttons, not extended ones. An (undocumented) information query was added to the firmware to report when this is the case, however it is not advertised as supported by the firmware itself by the usual mechanism. What we do is (just as the Linux driver) detect that the tocuhpad has a PS/2 passthrough (likely used to daisy-chain a trackpoint on the same PS/2 port) and also advertises extra buttons (an unlikely case, it is already uncommon to even get a middle button these days...) and assume that the information query is available then. When the query is available and reports the quirk, the extended buttons are reported as 0, 1, 2 (left, right, middle), instead of extra buttons the userland would have no idea what to do with. Change-Id: Iad5a9e140b6e49c298dcc901f4e331a4a847d7b2
|
#
e003057f |
|
10-May-2018 |
Adrien Destugues <pulkomandy@pulkomandy.tk> |
PS/2 Synaptics: add support for extended buttons It is possible to get up to 8 extra buttons on synaptics touchpads. On some Thinkpad models, these are used to implement the trackpoint buttons (reported as buttons 4, 5 and 6). Since the touchpad itself has no buttons (it is a clickpad), we may at least try to handle these properly. Change-Id: I5d4021e36fb3ac86ecf213c5666f9b6ddd3e2bca
|
#
4b722b91 |
|
27-Jun-2011 |
Siarzhuk Zharski <zharik@gmx.li> |
Proper handling of middle mouse event on capFourButtons and capMiddleButton capable touchpads. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42329 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c152c70b |
|
30-Mar-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- ALPS and synaptics are sharing the same code to generate mouse events now. The movement generation is calibrated on the synaptics touchpad, though. ALPS movements are fine now, hope the synaptics is still working. Please test! There are still some leftovers form switching from a c struct to a c++ class will fix that later. - Support ALPS devices with passthrough. - ALPS is still disabled because tap and edge motion is not working yet. The problem is that synaptics generates more helper events which makes this a lot easier to implement. My plan is to emulate this events to imitate the synatics touchpad. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41140 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e637ccf5 |
|
28-Mar-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Reapply the ps2 cpp patch. Thanks Axel. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41134 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
79bdca06 |
|
28-Mar-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Revert r41129 to get history back. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41133 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
278a2b8a |
|
27-Mar-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Making the ps2 busmanager c++. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41129 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b78920b3 |
|
27-Mar-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Work in progress on a ALPS touchpad driver. The driver is roughly working but disabled at the moment. Its more or less a copy of the synaptics driver. Next step is to refactor the movement generation and share the code with the synaptics driver. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41124 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2c494653 |
|
14-Apr-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed the at_kbd_io and AT keyboard stuff; this is now done within the PS/2 driver, and that driver is using the raw_key_info structure as well. * Renamed kb_mouse_driver.h to keyboard_mouse_driver.h. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36267 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
707e415d |
|
23-Jan-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Allow a tap click when the right touchpad button is pressed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35265 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f4992c30 |
|
27-Nov-2009 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- The right and bottom touchpad size was a bit to small, at least on my maschine (fix bug #5043). - Don't allow scrolling when a pad button is pressed because we are likely in a drag action. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34326 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
34eb485a |
|
06-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Refactored the former touchevent_to_movement() code to get rid of the gotos, and some code duplication. * Fixed the missing click count in the former "movement" label (now in the move_to_movement() function); the click count was always 0 in that case, this was most obvious with Firefox where you couldn't click anything as long as you had a finger on the touchpad. * Made the functions static that aren't exported to the outside. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33469 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f229f567 |
|
06-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Made the ps2_synactics.h header stand-alone. * Coding style cleanup. * Automatic whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33447 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5c197c75 |
|
13-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Implemented setting the "click count" correctly in the Synaptics driver. * I feel the Synaptics driver is now good enough to give it more exposure and turned it on again. If it gives you trouble for some reason, you can turn it off again in ps2_dev.c, line 105. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28643 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
03973d27 |
|
02-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Automatic white space cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28459 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
802b6330 |
|
01-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Fixed some of the weirdly changed define names. * A few more style cleanups. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28429 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6849a228 |
|
01-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Patch by Clemens Zeilder: * Implemented Synaptics touchpad support in the PS2 bus_manager by refactoring/splitting the structure some and adding touchpad device handling. * Implemented Touchpad input_server device add-on * Created Touchpad preflet for configuring advances Synaptics touchpad options like scroll region (both horizontal and vertical) as well as other neat stuff Thanks a lot, Clemens! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28416 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4b722b91dbef7f8d005bfaec6174faa7cfcaecb4 |
|
27-Jun-2011 |
Siarzhuk Zharski <zharik@gmx.li> |
Proper handling of middle mouse event on capFourButtons and capMiddleButton capable touchpads. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42329 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
c152c70b467536ee3e54c43674f70e1f849c4532 |
|
30-Mar-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- ALPS and synaptics are sharing the same code to generate mouse events now. The movement generation is calibrated on the synaptics touchpad, though. ALPS movements are fine now, hope the synaptics is still working. Please test! There are still some leftovers form switching from a c struct to a c++ class will fix that later. - Support ALPS devices with passthrough. - ALPS is still disabled because tap and edge motion is not working yet. The problem is that synaptics generates more helper events which makes this a lot easier to implement. My plan is to emulate this events to imitate the synatics touchpad. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41140 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
e637ccf5c1c22c87fa0cb695a2d62d6ee1d92308 |
|
28-Mar-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Reapply the ps2 cpp patch. Thanks Axel. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41134 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
79bdca06506e69ebd8d9a1eecc5a246b21286472 |
|
28-Mar-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Revert r41129 to get history back. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41133 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
278a2b8aaa75b3252ca8de1eef36ca6afc836ac1 |
|
27-Mar-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Making the ps2 busmanager c++. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41129 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
b78920b3f15866e9e833be60d1a57b6ecdf4dbee |
|
27-Mar-2011 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Work in progress on a ALPS touchpad driver. The driver is roughly working but disabled at the moment. Its more or less a copy of the synaptics driver. Next step is to refactor the movement generation and share the code with the synaptics driver. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41124 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2c4946532910e3cc9f66a92228a2334098e6de49 |
|
14-Apr-2010 |
Axel Dörfler <axeld@pinc-software.de> |
* Removed the at_kbd_io and AT keyboard stuff; this is now done within the PS/2 driver, and that driver is using the raw_key_info structure as well. * Renamed kb_mouse_driver.h to keyboard_mouse_driver.h. * Minor cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36267 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
707e415d477a16f4f492840ee9315d6b473ec64c |
|
23-Jan-2010 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
Allow a tap click when the right touchpad button is pressed. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35265 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f4992c302567351487013cc0248f75a022ad50e0 |
|
27-Nov-2009 |
Clemens Zeidler <clemens.zeidler@googlemail.com> |
- The right and bottom touchpad size was a bit to small, at least on my maschine (fix bug #5043). - Don't allow scrolling when a pad button is pressed because we are likely in a drag action. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34326 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
34eb485aea4ff251540584055abaa954bb568057 |
|
06-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Refactored the former touchevent_to_movement() code to get rid of the gotos, and some code duplication. * Fixed the missing click count in the former "movement" label (now in the move_to_movement() function); the click count was always 0 in that case, this was most obvious with Firefox where you couldn't click anything as long as you had a finger on the touchpad. * Made the functions static that aren't exported to the outside. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33469 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f229f56702c2cf5bd17912b8188dba836ed6508e |
|
06-Oct-2009 |
Axel Dörfler <axeld@pinc-software.de> |
* Made the ps2_synactics.h header stand-alone. * Coding style cleanup. * Automatic whitespace cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33447 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
5c197c75466ba2e970402dd5e942903238d2aea8 |
|
13-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Implemented setting the "click count" correctly in the Synaptics driver. * I feel the Synaptics driver is now good enough to give it more exposure and turned it on again. If it gives you trouble for some reason, you can turn it off again in ps2_dev.c, line 105. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28643 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
03973d27ebb2efebc7849de071648334e139b0cb |
|
02-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Automatic white space cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28459 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
802b6330823547ede6b71a30219c4455c0a301a6 |
|
01-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
* Fixed some of the weirdly changed define names. * A few more style cleanups. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28429 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
6849a22864a9edc90482d16a5fd35f64f671b3b9 |
|
01-Nov-2008 |
Stephan Aßmus <superstippi@gmx.de> |
Patch by Clemens Zeilder: * Implemented Synaptics touchpad support in the PS2 bus_manager by refactoring/splitting the structure some and adding touchpad device handling. * Implemented Touchpad input_server device add-on * Created Touchpad preflet for configuring advances Synaptics touchpad options like scroll region (both horizontal and vertical) as well as other neat stuff Thanks a lot, Clemens! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28416 a95241bf-73f2-0310-859d-f6bbb57e9c96
|