| Age | Commit message (Collapse) | Author |
|
No functional change intended.
|
|
on modern displays.
|
|
- button boundary is now computed consistently.
- multi finger operation now works for MULTI_FINGER and MULTI_FINGER_REPORT.
Fixes PR kern/56476 and probably kern/56998.
|
|
|
|
region so the boundary does not creep left on each subsequent setting.
Thanks to Martin@ for the report.
|
|
* A trackpad with external buttons needs to mask a number of lower bits
of the X and Y coordinates IFF a button is down. This was not being
done so a button held down looked like an out of range packet and
was therefore dropped.
* Now that trackpads are probed for their boundaries make the emulated
button boundary settable by a percentage, also allow the right and
bottom boundaries to be adjusted by a percentage to allow for
horizontal and vertical scroll regions.
|
|
* For trackpads that report max and min coordinates, retrieve these and
use them as the boundaries instead of the hard coded limits.
* Drop packets that are have x/y values that are outside the limits of
the trackpad. Some trackpads report a stream of low values in some
situations that cause cursor jumping.
|
|
- Ensure that packets are processed whenever any button change
occurs, instead of just processing packets when there is movement
or trackpad finger activity
- Only transfer the state of the "extended buttons" to the button
masks when actual changes occur OR a button is being held down.
With this patch, my middle mouse button no longer gets "stuck down",
but proper press/release tracking and dragging behavior is preserved.
Thanks to blymn for pointers.
|
|
|
|
* Accumulate packets for primary, secondary, finger count packets
before handing off to pms_synaptics_process_packet. This means
that both primary and, possibly, secondary finger locations will
be processed at the same time. Previously the processing each
packet as it arrived.
* Fix the secondary finger position reporting, there was an off by
one in the shifts when decoding which effectively halved the
reported position.
* For a clickpad, make the emulated button region "dead" so that finger
movements in this region are ignored. This makes it easier to click
a button without accidentally repositioning the cursor. There is a
sysctl variable "button_region_movement_enable" that will allow
these finger movements to be reported if this is desirable.
* Reset the finger ballistics when the number of fingers changes. This
stops the annoying position jumps when a second finger touch is added
to or removed from the touchpad.
* Add a level argument to the DPRINTF macro so one can choose their
level of debug spam via the debug sysctl variable.
|
|
to implement two-finger scrolling. remove non-functional code for
detecting reported finger width.
|
|
keyboard layout for French
|
|
|
|
|
|
needs to be SYN_MAX_FINGERS because the driver expects it to be.
|
|
Set hw.synaptics.debug=1 to re-enable it; the compile-time DIAGNOSTIC
option was inappropriate for this.
|
|
Neo is an optimized layout for German and English, similar to
Dvorak for English. It can be used to type most Latin-based languages
and has separate layers for symbols and directional commands.
|
|
Simplify and make extensible the config_search() / config_found() /
config_attach() interfaces: rather than having different variants for
which arguments you want pass along, just have a single call that
takes a variadic list of tag-value arguments.
Adjust all call sites:
- Simplify wherever possible; don't pass along arguments that aren't
actually needed.
- Don't be explicit about what interface attribute is attaching if
the device only has one. (More simplification.)
- Add a config_probe() function to be used in indirect configuiration
situations, making is visibly easier to see when indirect config is
in play, and allowing for future change in semantics. (As of now,
this is just a wrapper around config_match(), but that is an
implementation detail.)
Remove unnecessary or redundant interface attributes where they're not
needed.
There are currently 5 "cfargs" defined:
- CFARG_SUBMATCH (submatch function for direct config)
- CFARG_SEARCH (search function for indirect config)
- CFARG_IATTR (interface attribte)
- CFARG_LOCATORS (locators array)
- CFARG_DEVHANDLE (devhandle_t - wraps OFW, ACPI, etc. handles)
...and a sentinel value CFARG_EOL.
Add some extra sanity checking to ensure that interface attributes
aren't ambiguous.
Use CFARG_DEVHANDLE in MI FDT, OFW, and ACPI code, and macppc and shark
ports to associate those device handles with device_t instance. This
will trickle trough to more places over time (need back-end for pre-OFW
Sun OBP; any others?).
|
|
idea stolen from various other operating systems.
this configurable with a sysctl in case somebody wants to hold the middle
button, e.g. with old window managers that close menus when a button is
released.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This is significantly different from the European Portugese layout,
and was pieced together from Wikipedia, X11 layout files, and to
some extent with trial and error.
Thanks to lun-4 for helping test this.
PR kern/44570
|
|
Cherrypicked from a patch from an anonymous contributor.
|
|
pms_enable does this for us. Seems to resolve issues with my trackpoint
not working immediately after starting X on ThinkPad X260.
|
|
button press / release state separate from touch events.
|
|
Reported on current-users by Mandacarú Cascavel
|
|
It seems I have to figure out another way to make scrolling work for me.
|
|
|
|
I now have smooth two-finger scrolling.
|
|
I suspect this code doesn't make any sense if we want two-finger scrolling
|
|
This will mean we automatically get two-finger scrolling on multitouch
pads.
This works, but the scrolling is janky. Why does it eventually move the
mouse cursor (only one finger detected, but two are still there), and why
does it jump up slightly?
|
|
|
|
|
|
It's a less surprising default for modern hardware.
|
|
On devices such as the Thinkpad X250, the clickpad can be pressed
to generate mouse button events 1 and 2. There are also additional
physical buttons which the pms(4) driver recognizes as "up/down" buttons
(mouse buttons 3 and 4). Allow these to be remapped to buttons 1 and 2
and used like normal touchpad buttons with the following sysctl:
# sysctl -w hw.synaptics.up_down_emulation=3
While here, adjust the existing "middle button emulation"
(hw.synaptics.up_down_emulation=1) so it works with single-button
clickpads.
XXX: 3 may be a more useful default than the current default,
depending on hardware availability of touchpads with "up/down buttons".
Update the documentation accordingly.
|
|
Use "pms_synaptics_input" instead for another 2 messages.
|
|
Use "pms_synaptics_input" instead.
|
|
Even without extended W mode, sp_w can be 2. This causes
"invalid extended w mode N" warning messages.
Restrict extended W mode conditional for hardwares with extended W
support.
Tested with Synaptics 6.2 device on Panasonic CF-Y8, however it does
not work with X.
|
|
|
|
|
|
|
|
|
|
and remove code to handle failures that can no longer happen.
|
|
|
|
|