From 40296db31895198a6e7c0fa7d768ce1fc9815513 Mon Sep 17 00:00:00 2001 From: Botond Ballo Date: Thu, 8 Apr 2021 01:15:42 +0000 Subject: [PATCH] Bug 1702855 - Disable three-finger touchpad pinch gestures on Linux by default. r=tnikkel Differential Revision: https://phabricator.services.mozilla.com/D111201 --- modules/libpref/init/StaticPrefList.yaml | 5 +++++ widget/gtk/nsWindow.cpp | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/modules/libpref/init/StaticPrefList.yaml b/modules/libpref/init/StaticPrefList.yaml index ee771185aedf..10febcfcc49a 100644 --- a/modules/libpref/init/StaticPrefList.yaml +++ b/modules/libpref/init/StaticPrefList.yaml @@ -526,6 +526,11 @@ type: RelaxedAtomicBool value: true mirror: always + +- name: apz.gtk.touchpad_pinch.three_fingers.enabled + type: RelaxedAtomicBool + value: false + mirror: always #endif - name: apz.keyboard.enabled diff --git a/widget/gtk/nsWindow.cpp b/widget/gtk/nsWindow.cpp index ba90930105ab..c194ca0f04e2 100644 --- a/widget/gtk/nsWindow.cpp +++ b/widget/gtk/nsWindow.cpp @@ -4287,6 +4287,14 @@ bool nsWindow::IsHandlingTouchSequence(GdkEventSequence* aSequence) { gboolean nsWindow::OnTouchpadPinchEvent(GdkEventTouchpadPinch* aEvent) { if (StaticPrefs::apz_gtk_touchpad_pinch_enabled()) { + // Do not respond to pinch gestures involving more than two fingers + // unless specifically preffed on. These are sometimes hooked up to other + // actions at the desktop environment level and having the browser also + // pinch can be undesirable. + if (aEvent->n_fingers > 2 && + !StaticPrefs::apz_gtk_touchpad_pinch_three_fingers_enabled()) { + return FALSE; + } PinchGestureInput::PinchGestureType pinchGestureType = PinchGestureInput::PINCHGESTURE_SCALE; ScreenCoord CurrentSpan;