chiark / gitweb /
Button zones: Provide BottomEdgeZonesEnable
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 23 Apr 2016 19:18:53 +0000 (20:18 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Tue, 26 Apr 2016 19:42:32 +0000 (20:42 +0100)
commit898a7d315ac511bbdc3c1d424cb7ae23e71bc191
tree0e36df5287fa1ebf9ee6bda44797ceb092070a26
parent7a57045f656241ca22c86efe7e757064582faca3
Button zones: Provide BottomEdgeZonesEnable

Many modern laptops have a clickpad, with some faint legend on the
surface suggesting that the bottom portion is a pair (usually) of
buttons.

Some users who are used to laptops which had separate physical buttons
below the trackpad have developed the habit of putting one finger on
the physical button, and using another finger to mouse.

This user behaviour can be supported if we:
 - ignore touches in the "button" area for all purposes, except
 - decide which button was pressed, if the user clicks the clickpad,
   by looking at which touch(es) are present in the button area

This is a novel combination of the behaviours of the BottomEdge and
ButtonZones options.  Provide a new BottomEdgeZonesEnable option,
(including documentation and static configuration).

The current code does not support users who have a habit of generating
and using chorded button events on mice with physical buttons.  (That
is, users who have configured application(s) to process simultaneous
clicks of different buttons meaningfully differently to single-button
clicks.)  I think this should be regarded as a bug in the
implementation I am introducing in this patch.  Fixing this would be
feasible without new config options or changes to other semantics but
would involve more rework of the zone processing in gestures.c than I
currently have time for.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
README.md
include/mconfig.h
src/gestures.c
src/mconfig.c