[PATCH xf86-input-synaptics v3 03/10] Disable click action functionality for clickpads

Chase Douglas chase.douglas at canonical.com
Thu Feb 23 17:22:47 PST 2012


On 02/23/2012 05:07 PM, Peter Hutterer wrote:
> On Thu, Feb 23, 2012 at 01:02:18PM -0800, Chase Douglas wrote:
>> Clickpad press-and-drag with two fingers will break click actions.
>> Disable them for these devices until a good solution is found for
>> letting both functionalities co-exist.
>>
>> Signed-off-by: Chase Douglas<chase.douglas at canonical.com>
>> ---
>>   src/synaptics.c |   10 ++++++----
>>   1 files changed, 6 insertions(+), 4 deletions(-)
>>
>> diff --git a/src/synaptics.c b/src/synaptics.c
>> index e20d6a8..e90ec9e 100644
>> --- a/src/synaptics.c
>> +++ b/src/synaptics.c
>> @@ -2469,7 +2469,7 @@ update_hw_button_state(const InputInfoPtr pInfo, struct SynapticsHwState *hw,
>>       hw->middle |= HandleMidButtonEmulation(priv, hw, now, delay);
>>
>>       /* Fingers emulate other buttons */
>> -    if(hw->left&&  hw->numFingers>= 1){
>> +    if(!para->clickpad&&  hw->left&&  hw->numFingers>= 1){
>>           handle_clickfinger(para, hw);
>>       }
>>
>> @@ -2644,10 +2644,12 @@ HandleTouches(InputInfoPtr pInfo, struct SynapticsHwState *hw)
>>       Bool restart_touches = FALSE;
>>       int i;
>>
>> -    if (para->click_action[F3_CLICK1] || para->tap_action[F3_TAP])
>> +    if ((!para->clickpad&&  para->click_action[F3_CLICK1]) ||
>> +        para->tap_action[F3_TAP])
>>           min_touches = 4;
>> -    else if (para->click_action[F2_CLICK1] || para->tap_action[F2_TAP] ||
>> -             para->scroll_twofinger_vert || para->scroll_twofinger_horiz)
>> +    else if ((!para->clickpad&&  para->click_action[F2_CLICK1]) ||
>> +             para->tap_action[F2_TAP] || para->scroll_twofinger_vert ||
>> +             para->scroll_twofinger_horiz)
>>           min_touches = 3;
>>
>>       /* Count new number of active touches */
>> --
>> 1.7.9
>
> wouldn't a better/simpler approach be to set the click_actions to 0 on a
> clickpad? less conditionals, can be documented in the man page and if users
> enable them it's their fault (maybe they even like the behaviour).

Hmmm... Yeah, that might be better... I'll switch to that for the next 
series.

-- Chase


More information about the xorg-devel mailing list