From e4c68641268956ff99cef21dc5e5cb3e3b55ccdf Mon Sep 17 00:00:00 2001 From: Clement Lefebvre Date: Thu, 3 Sep 2015 17:43:46 +0100 Subject: Touchpad settings: Added support for natural scrolling, 2 finger and 3 finger clicks --- capplets/mouse/mate-mouse-properties.c | 35 +++ capplets/mouse/mate-mouse-properties.ui | 486 +++++++++++++++++++++++++------- 2 files changed, 412 insertions(+), 109 deletions(-) (limited to 'capplets/mouse') diff --git a/capplets/mouse/mate-mouse-properties.c b/capplets/mouse/mate-mouse-properties.c index 94f2a0fb..96c14185 100644 --- a/capplets/mouse/mate-mouse-properties.c +++ b/capplets/mouse/mate-mouse-properties.c @@ -212,6 +212,8 @@ scrollmethod_gsettings_changed_event (GSettings *settings, scroll_method == 2); gtk_widget_set_sensitive (WID ("horiz_scroll_toggle"), scroll_method != 0); + gtk_widget_set_sensitive (WID ("natural_scroll_toggle"), + scroll_method != 0); } static void @@ -223,6 +225,9 @@ scrollmethod_clicked_event (GtkWidget *widget, gtk_widget_set_sensitive (WID ("horiz_scroll_toggle"), !gtk_toggle_button_get_active (disabled)); + gtk_widget_set_sensitive (WID ("natural_scroll_toggle"), + !gtk_toggle_button_get_active (disabled)); + GSList *radio_group; int new_scroll_method; int old_scroll_method = g_settings_get_int (touchpad_settings, "scroll-method"); @@ -347,6 +352,14 @@ find_synaptics (void) return ret; } +static void +comboxbox_changed_callback (GtkWidget *combobox, void *data) +{ + gint value = gtk_combo_box_get_active (GTK_COMBO_BOX (combobox)); + gchar *key = (char *) data; + g_settings_set_int (touchpad_settings, key, value); +} + /* Set up the property editors in the dialog. */ static void setup_dialog (GtkBuilder *dialog) @@ -405,9 +418,31 @@ setup_dialog (GtkBuilder *dialog) g_settings_bind (touchpad_settings, "horiz-scroll-enabled", WID ("horiz_scroll_toggle"), "active", G_SETTINGS_BIND_DEFAULT); + g_settings_bind (touchpad_settings, "natural-scroll", + WID ("natural_scroll_toggle"), "active", + G_SETTINGS_BIND_DEFAULT); scrollmethod_gsettings_changed_event (touchpad_settings, "scroll-method", dialog); + char * emulation_values[] = { _("Disabled"), _("Left button"), _("Middle button"), _("Right button") }; + + GtkWidget *two_click_comboxbox = gtk_combo_box_text_new (); + GtkWidget *three_click_comboxbox = gtk_combo_box_text_new (); + gtk_box_pack_start (GTK_BOX (WID ("hbox_two_finger_click")), two_click_comboxbox, FALSE, FALSE, 6); + gtk_box_pack_start (GTK_BOX (WID ("hbox_three_finger_click")), three_click_comboxbox, FALSE, FALSE, 6); + int i; + for (i=0; i<4; i++) { + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (two_click_comboxbox), emulation_values[i]); + gtk_combo_box_text_append_text (GTK_COMBO_BOX_TEXT (three_click_comboxbox), emulation_values[i]); + } + + gtk_combo_box_set_active (GTK_COMBO_BOX (two_click_comboxbox), g_settings_get_int (touchpad_settings, "two-finger-click")); + gtk_combo_box_set_active (GTK_COMBO_BOX (three_click_comboxbox), g_settings_get_int (touchpad_settings, "three-finger-click")); + gtk_widget_show (two_click_comboxbox); + gtk_widget_show (three_click_comboxbox); + g_signal_connect (two_click_comboxbox, "changed", G_CALLBACK (comboxbox_changed_callback), "two-finger-click"); + g_signal_connect (three_click_comboxbox, "changed", G_CALLBACK (comboxbox_changed_callback), "three-finger-click"); + radio = GTK_RADIO_BUTTON (WID ("scroll_disabled_radio")); GSList *radio_group = gtk_radio_button_get_group (radio); GSList *item = NULL; diff --git a/capplets/mouse/mate-mouse-properties.ui b/capplets/mouse/mate-mouse-properties.ui index 19314bfa..487961c5 100644 --- a/capplets/mouse/mate-mouse-properties.ui +++ b/capplets/mouse/mate-mouse-properties.ui @@ -1,74 +1,112 @@ - + + + - 10 1 - 1 - 1 - 0 + 10 6 + 1 + 1 - 10 1 - 1 - 1 - 0 + 10 1 + 1 + 1 - 10 1 - 1 - 1 - 0 + 10 1 + 1 + 1 - 1000 100 - 100 - 100 - 0 + 1000 400 + 100 + 100 - 3 0.5 - 0.10000000000000001 - 0.10000000000000001 - 0 + 3 1.2 + 0.10000000000000001 + 0.10000000000000001 - 3 0.20000000000000001 - 0.10000000000000001 - 0.10000000000000001 - 0 + 3 1.2 + 0.10000000000000001 + 0.10000000000000001 30 - 0 - 1 - 1 - 0 15 + 1 + 1 - - + False 5 Mouse Preferences - dialog 500 550 + dialog True - vertical + False 2 + + + True + False + end + + + gtk-help + True + True + True + False + False + True + + + False + False + 0 + + + + + gtk-close + True + True + True + False + False + True + + + False + False + 1 + + + + + False + True + end + 0 + + True @@ -77,18 +115,19 @@ True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 12 - vertical 18 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - vertical True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 Mouse Orientation @@ -97,20 +136,23 @@ + True + True 0 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 6 12 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - vertical 6 @@ -119,11 +161,14 @@ True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False True True True + True + True 0 @@ -134,12 +179,15 @@ True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False True True True right_handed_radio + True + True 1 @@ -147,23 +195,27 @@ + True + True 1 False + True 0 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - vertical True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 Locate Pointer @@ -172,12 +224,15 @@ + True + True 0 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 6 12 @@ -188,29 +243,34 @@ True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False True True + True + True 1 False + True 1 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - vertical True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 Pointer Speed @@ -219,18 +279,22 @@ + True + True 0 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 6 12 True + False 2 3 12 @@ -238,6 +302,7 @@ True + False 0 _Acceleration: True @@ -252,6 +317,7 @@ True + False 0 _Sensitivity: True @@ -268,21 +334,24 @@ True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 6 True + False 1 - Slow + Slow center - + False + True 0 @@ -295,22 +364,26 @@ right + True + True 1 True + False 0 - Fast + Fast center - + False + True 2 @@ -323,21 +396,24 @@ True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 6 True + False 1 - Low + Low center - + False + True 0 @@ -350,22 +426,26 @@ False + True + True 1 True + False 0 - High + High center - + False + True 2 @@ -381,23 +461,27 @@ + True + True 1 False + True 2 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - vertical True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 Drag and Drop @@ -406,28 +490,33 @@ + True + True 0 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 6 12 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - vertical 12 True + False 12 True + False 0 Thr_eshold: True @@ -443,16 +532,18 @@ True + False 6 True + False 1 - Small + Small center - + @@ -468,27 +559,27 @@ adjustment3 0 False - - - - + Cursor blinks speed + True + True 1 True + False 0 - Large + Large - + @@ -499,11 +590,15 @@ + True + True 1 + True + True 0 @@ -511,23 +606,27 @@ + True + True 1 False + True 3 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - vertical True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 Double-Click Timeout @@ -536,28 +635,33 @@ + True + True 0 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 6 12 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - vertical 12 True + False 12 True + False 0 _Timeout: True @@ -573,15 +677,17 @@ True + False 6 True + False 1 Short - + @@ -596,27 +702,27 @@ True adjustment4 False - - - - + Cursor blinks speed + True + True 1 True + False 0 Long - + @@ -627,23 +733,29 @@ + True + True 1 + True + True 0 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 12 180 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 To test your double-click settings, try to double-click on the light bulb. @@ -653,28 +765,36 @@ + True + True 0 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK False True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK gtk-missing-image + True + True 1 + True + True 1 @@ -682,12 +802,15 @@ + True + True 1 False + True 4 @@ -696,6 +819,7 @@ True + False General center @@ -706,19 +830,20 @@ True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 12 - vertical 18 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - vertical 6 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 0 @@ -736,10 +861,12 @@ True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 0 @@ -758,11 +885,14 @@ True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False True True True + True + True 1 @@ -776,10 +906,12 @@ True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 0 @@ -798,11 +930,14 @@ True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False True True True + True + True 1 @@ -813,6 +948,116 @@ 2 + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + 0 + + + + False + False + 0 + + + + + True + False + 6 + + + True + False + 0 + Two-finger click emulation: + + + False + False + 0 + + + + + + + + True + True + 1 + + + + + False + False + 3 + + + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + 0 + + + + False + False + 0 + + + + + True + False + 6 + + + True + False + 0 + Three-finger click emulation: + + + False + False + 0 + + + + + + + + True + True + 1 + + + + + False + False + 4 + + False @@ -823,12 +1068,13 @@ True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - vertical 6 True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 0 @@ -846,10 +1092,12 @@ True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 0 @@ -864,12 +1112,14 @@ True + False _Disabled True True False + False True True @@ -885,6 +1135,7 @@ True True False + False True True scroll_disabled_radio @@ -901,6 +1152,7 @@ True True False + False True True scroll_disabled_radio @@ -913,6 +1165,8 @@ + True + True 1 @@ -923,13 +1177,59 @@ 1 + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + 0 + + + + False + False + 0 + + + + + Enable n_atural scrolling + True + True + False + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False + True + True + + + True + True + 1 + + + + + False + False + 2 + + True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK True + False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 0 0 @@ -948,10 +1248,13 @@ True False GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + False True True + True + True 1 @@ -959,7 +1262,7 @@ False False - 2 + 3 @@ -970,10 +1273,14 @@ + + 1 + True + False Touchpad center @@ -984,50 +1291,11 @@ + True + True 1 - - - True - end - - - gtk-help - True - True - True - False - True - - - False - False - 0 - - - - - gtk-close - True - True - True - False - True - - - False - False - 1 - - - - - False - end - 0 - - -- cgit v1.2.1