From cffe62015c2d4c168f11fb570d2f671ed0a99534 Mon Sep 17 00:00:00 2001 From: Victor Kareh Date: Fri, 2 Aug 2019 14:50:35 -0400 Subject: mouse: Add support for Acceleration Profiles Currently libinput supports Adaptive and Flat acceleration profiles. We can use these to change mouse behavior. Synaptic touchpads are not supported through libinput, so I have not included a UI change for this (even though it's technically supported in gsettings). The Default acceleration profile reads the value from the libinput defaults and sets them as the current profile. Usually ends up being Adaptive. --- capplets/mouse/mate-mouse-properties.c | 18 ++++++++++++++++++ capplets/mouse/mate-mouse-properties.ui | 31 +++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) (limited to 'capplets') diff --git a/capplets/mouse/mate-mouse-properties.c b/capplets/mouse/mate-mouse-properties.c index 2c2292a4..a3c06e60 100644 --- a/capplets/mouse/mate-mouse-properties.c +++ b/capplets/mouse/mate-mouse-properties.c @@ -49,6 +49,12 @@ enum DOUBLE_CLICK_TEST_ON }; +typedef enum { + ACCEL_PROFILE_DEFAULT, + ACCEL_PROFILE_ADAPTIVE, + ACCEL_PROFILE_FLAT +} AccelProfile; + #define MOUSE_SCHEMA "org.mate.peripherals-mouse" #define INTERFACE_SCHEMA "org.mate.interface" #define DOUBLE_CLICK_KEY "double-click" @@ -217,6 +223,13 @@ synaptics_check_capabilities (GtkBuilder *dialog) XFreeDeviceList (devicelist); } +static void +accel_profile_combobox_changed_callback (GtkWidget *combobox, void *data) +{ + AccelProfile value = gtk_combo_box_get_active (GTK_COMBO_BOX (combobox)); + g_settings_set_enum (mouse_settings, (const gchar *) "accel-profile", value); +} + static void comboxbox_changed (GtkWidget *combobox, GtkBuilder *dialog, const char *key) { @@ -293,6 +306,11 @@ setup_dialog (GtkBuilder *dialog) gtk_range_get_adjustment (GTK_RANGE (WID ("sensitivity_scale"))), "value", G_SETTINGS_BIND_DEFAULT); + g_signal_connect (WID ("mouse_accel_profile"), "changed", + G_CALLBACK (accel_profile_combobox_changed_callback), NULL); + gtk_combo_box_set_active (GTK_COMBO_BOX (WID ("mouse_accel_profile")), + g_settings_get_enum (mouse_settings, "accel-profile")); + /* DnD threshold */ g_settings_bind (mouse_settings, "drag-threshold", gtk_range_get_adjustment (GTK_RANGE (WID ("drag_threshold_scale"))), "value", diff --git a/capplets/mouse/mate-mouse-properties.ui b/capplets/mouse/mate-mouse-properties.ui index a2990fa7..9c353240 100644 --- a/capplets/mouse/mate-mouse-properties.ui +++ b/capplets/mouse/mate-mouse-properties.ui @@ -512,6 +512,37 @@ 1 + + + True + False + Acceleration _Profile: + True + center + mouse_accel_profile + 0 + + + 0 + 2 + + + + + True + False + start + + Default + Adaptive + Flat + + + + 1 + 2 + + -- cgit v1.2.1