diff options
author | Stefano Karapetsas <[email protected]> | 2012-10-22 16:44:21 +0200 |
---|---|---|
committer | Stefano Karapetsas <[email protected]> | 2012-10-22 16:44:21 +0200 |
commit | 909bf45d2c2d567decaf57b7869e0fbdcb7c0ed4 (patch) | |
tree | 62df20a365e7392a92f0ac471e0754ac484136d4 /capplets | |
parent | c9069329a8f08e10fe2193b8a3524653bdfc9ec3 (diff) | |
download | mate-control-center-909bf45d2c2d567decaf57b7869e0fbdcb7c0ed4.tar.bz2 mate-control-center-909bf45d2c2d567decaf57b7869e0fbdcb7c0ed4.tar.xz |
port mouse applet to gsettings
Diffstat (limited to 'capplets')
-rw-r--r-- | capplets/mouse/Makefile.am | 4 | ||||
-rw-r--r-- | capplets/mouse/mate-mouse-accessibility.c | 232 | ||||
-rw-r--r-- | capplets/mouse/mate-mouse-accessibility.h | 33 | ||||
-rw-r--r-- | capplets/mouse/mate-mouse-properties.c | 286 | ||||
-rw-r--r-- | capplets/mouse/mate-mouse-properties.ui | 666 |
5 files changed, 104 insertions, 1117 deletions
diff --git a/capplets/mouse/Makefile.am b/capplets/mouse/Makefile.am index c60082a5..c3aa4fc6 100644 --- a/capplets/mouse/Makefile.am +++ b/capplets/mouse/Makefile.am @@ -5,9 +5,7 @@ bin_PROGRAMS = mate-mouse-properties mate_mouse_properties_LDADD = $(MATECC_CAPPLETS_LIBS) mate_mouse_properties_SOURCES = \ - mate-mouse-properties.c \ - mate-mouse-accessibility.c \ - mate-mouse-accessibility.h + mate-mouse-properties.c @INTLTOOL_DESKTOP_RULE@ diff --git a/capplets/mouse/mate-mouse-accessibility.c b/capplets/mouse/mate-mouse-accessibility.c deleted file mode 100644 index a1c4277b..00000000 --- a/capplets/mouse/mate-mouse-accessibility.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Copyright (C) 2007 Gerd Kohlberger - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include <gtk/gtk.h> -#include <glib/gi18n.h> - -#include "capplet-util.h" -#include "mateconf-property-editor.h" - -#define MT_MATECONF_HOME "/desktop/mate/accessibility/mouse" - -/* 5th entry in combo box */ -#define DIRECTION_DISABLE 4 - -enum { - CLICK_TYPE_SINGLE, - CLICK_TYPE_DOUBLE, - CLICK_TYPE_DRAG, - CLICK_TYPE_SECONDARY, - N_CLICK_TYPES -}; - -static void -update_mode_sensitivity (GtkBuilder *dialog, gint mode) -{ - gtk_widget_set_sensitive (WID ("box_ctw"), !mode); - gtk_widget_set_sensitive (WID ("box_gesture"), mode); -} - -/* check if a direction (gesture mode) is already in use */ -static gboolean -verify_setting (MateConfClient *client, gint value, gint type) -{ - gint i, ct[N_CLICK_TYPES]; - - ct[CLICK_TYPE_SINGLE] = - mateconf_client_get_int (client, - MT_MATECONF_HOME "/dwell_gesture_single", - NULL); - ct[CLICK_TYPE_DOUBLE] = - mateconf_client_get_int (client, - MT_MATECONF_HOME "/dwell_gesture_double", - NULL); - ct[CLICK_TYPE_DRAG] = - mateconf_client_get_int (client, - MT_MATECONF_HOME "/dwell_gesture_drag", - NULL); - ct[CLICK_TYPE_SECONDARY] = - mateconf_client_get_int (client, - MT_MATECONF_HOME "/dwell_gesture_secondary", - NULL); - - for (i = 0; i < N_CLICK_TYPES; ++i) { - if (i == type) - continue; - if (ct[i] == value) - return FALSE; - } - - return TRUE; -} - -static void -populate_gesture_combo (GtkWidget *combo) -{ - GtkListStore *model; - GtkTreeIter iter; - GtkCellRenderer *cr; - - model = gtk_list_store_new (1, G_TYPE_STRING); - - gtk_list_store_append (model, &iter); - /* Translators: this is the gesture to trigger/choose the click type. - Don't include the prefix "gesture|" in the translation. */ - gtk_list_store_set (model, &iter, 0, Q_("gesture|Move left"), -1); - - gtk_list_store_append (model, &iter); - /* Translators: this is the gesture to trigger/choose the click type. - Don't include the prefix "gesture|" in the translation. */ - gtk_list_store_set (model, &iter, 0, Q_("gesture|Move right"), -1); - - gtk_list_store_append (model, &iter); - /* Translators: this is the gesture to trigger/choose the click type. - Don't include the prefix "gesture|" in the translation. */ - gtk_list_store_set (model, &iter, 0, Q_("gesture|Move up"), -1); - - gtk_list_store_append (model, &iter); - /* Translators: this is the gesture to trigger/choose the click type. - Don't include the prefix "gesture|" in the translation. */ - gtk_list_store_set (model, &iter, 0, Q_("gesture|Move down"), -1); - - gtk_list_store_append (model, &iter); - /* Translators: this is the gesture to trigger/choose the click type. - Don't include the prefix "gesture|" in the translation. */ - gtk_list_store_set (model, &iter, 0, Q_("gesture|Disabled"), -1); - - gtk_combo_box_set_model (GTK_COMBO_BOX (combo), GTK_TREE_MODEL (model)); - - cr = gtk_cell_renderer_text_new (); - gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), cr, TRUE); - gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), cr, - "text", 0, - NULL); -} - -static void -delay_enable_toggled_cb (GtkWidget *checkbox, GtkBuilder *dialog) -{ - gtk_widget_set_sensitive (WID ("delay_box"), - gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbox))); -} - -static void -dwell_enable_toggled_cb (GtkWidget *checkbox, GtkBuilder *dialog) -{ - gtk_widget_set_sensitive (WID ("dwell_box"), - gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (checkbox))); -} - -static void -gesture_single (GtkComboBox *combo, gpointer data) -{ - if (!verify_setting (data, gtk_combo_box_get_active (combo), CLICK_TYPE_SINGLE)) - gtk_combo_box_set_active (combo, DIRECTION_DISABLE); -} - -static void -gesture_double (GtkComboBox *combo, gpointer data) -{ - if (!verify_setting (data, gtk_combo_box_get_active (combo), CLICK_TYPE_DOUBLE)) - gtk_combo_box_set_active (combo, DIRECTION_DISABLE); -} - -static void -gesture_drag (GtkComboBox *combo, gpointer data) -{ - if (!verify_setting (data, gtk_combo_box_get_active (combo), CLICK_TYPE_DRAG)) - gtk_combo_box_set_active (combo, DIRECTION_DISABLE); -} - -static void -gesture_secondary (GtkComboBox *combo, gpointer data) -{ - if (!verify_setting (data, gtk_combo_box_get_active (combo), CLICK_TYPE_SECONDARY)) - gtk_combo_box_set_active (combo, DIRECTION_DISABLE); -} - -static void -mateconf_value_changed (MateConfClient *client, - const gchar *key, - MateConfValue *value, - gpointer dialog) -{ - if (g_str_equal (key, MT_MATECONF_HOME "/dwell_mode")) - update_mode_sensitivity (dialog, mateconf_value_get_int (value)); -} - -void -setup_accessibility (GtkBuilder *dialog, MateConfClient *client) -{ - mateconf_client_add_dir (client, MT_MATECONF_HOME, - MATECONF_CLIENT_PRELOAD_ONELEVEL, NULL); - g_signal_connect (client, "value_changed", - G_CALLBACK (mateconf_value_changed), dialog); - - mateconf_peditor_new_boolean (NULL, MT_MATECONF_HOME "/dwell_enable", - WID ("dwell_enable"), NULL); - mateconf_peditor_new_boolean (NULL, MT_MATECONF_HOME "/delay_enable", - WID ("delay_enable"), NULL); - mateconf_peditor_new_boolean (NULL, MT_MATECONF_HOME "/dwell_show_ctw", - WID ("dwell_show_ctw"), NULL); - - mateconf_peditor_new_numeric_range (NULL, MT_MATECONF_HOME "/delay_time", - WID ("delay_time"), NULL); - mateconf_peditor_new_numeric_range (NULL, MT_MATECONF_HOME "/dwell_time", - WID ("dwell_time"), NULL); - mateconf_peditor_new_numeric_range (NULL, MT_MATECONF_HOME "/threshold", - WID ("threshold"), NULL); - - mateconf_peditor_new_select_radio (NULL, MT_MATECONF_HOME "/dwell_mode", - gtk_radio_button_get_group (GTK_RADIO_BUTTON (WID ("dwell_mode_ctw"))), - NULL); - update_mode_sensitivity (dialog, - mateconf_client_get_int (client, - MT_MATECONF_HOME "/dwell_mode", - NULL)); - - populate_gesture_combo (WID ("dwell_gest_single")); - mateconf_peditor_new_combo_box (NULL, MT_MATECONF_HOME "/dwell_gesture_single", - WID ("dwell_gest_single"), NULL); - g_signal_connect (WID ("dwell_gest_single"), "changed", - G_CALLBACK (gesture_single), client); - - populate_gesture_combo (WID ("dwell_gest_double")); - mateconf_peditor_new_combo_box (NULL, MT_MATECONF_HOME "/dwell_gesture_double", - WID ("dwell_gest_double"), NULL); - g_signal_connect (WID ("dwell_gest_double"), "changed", - G_CALLBACK (gesture_double), client); - - populate_gesture_combo (WID ("dwell_gest_drag")); - mateconf_peditor_new_combo_box (NULL, MT_MATECONF_HOME "/dwell_gesture_drag", - WID ("dwell_gest_drag"), NULL); - g_signal_connect (WID ("dwell_gest_drag"), "changed", - G_CALLBACK (gesture_drag), client); - - populate_gesture_combo (WID ("dwell_gest_secondary")); - mateconf_peditor_new_combo_box (NULL, MT_MATECONF_HOME "/dwell_gesture_secondary", - WID ("dwell_gest_secondary"), NULL); - g_signal_connect (WID ("dwell_gest_secondary"), "changed", - G_CALLBACK (gesture_secondary), client); - - g_signal_connect (WID ("delay_enable"), "toggled", - G_CALLBACK (delay_enable_toggled_cb), dialog); - delay_enable_toggled_cb (WID ("delay_enable"), dialog); - g_signal_connect (WID ("dwell_enable"), "toggled", - G_CALLBACK (dwell_enable_toggled_cb), dialog); - dwell_enable_toggled_cb (WID ("dwell_enable"), dialog); -} diff --git a/capplets/mouse/mate-mouse-accessibility.h b/capplets/mouse/mate-mouse-accessibility.h deleted file mode 100644 index 0fd4ad33..00000000 --- a/capplets/mouse/mate-mouse-accessibility.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2007 Gerd Kohlberger - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#ifndef __MATE_MOUSE_A11Y_H -#define __MATE_MOUSE_A11Y_H - -#include <mateconf/mateconf-client.h> - -#ifdef __cplusplus -extern "C" { -#endif - -void setup_accessibility (GtkBuilder *dialog, MateConfClient *client); - -#ifdef __cplusplus -} -#endif - -#endif /* __MATE_MOUSE_A11Y_H */ diff --git a/capplets/mouse/mate-mouse-properties.c b/capplets/mouse/mate-mouse-properties.c index a1311f5b..6b0f3bf2 100644 --- a/capplets/mouse/mate-mouse-properties.c +++ b/capplets/mouse/mate-mouse-properties.c @@ -27,15 +27,14 @@ #include <glib/gi18n.h> #include <string.h> -#include <mateconf/mateconf-client.h> +#include <gio/gio.h> #include <gdk/gdkx.h> #include <math.h> #include "capplet-util.h" -#include "mateconf-property-editor.h" #include "activate-settings-daemon.h" #include "capplet-stock-icons.h" -#include "mate-mouse-accessibility.h" +//#include "mate-mouse-accessibility.h" #include <sys/types.h> #include <sys/stat.h> @@ -56,29 +55,18 @@ enum DOUBLE_CLICK_TEST_ON }; -/* We use this in at least half a dozen places, so it makes sense just to - * define the macro */ +#define MOUSE_SCHEMA "org.mate.peripherals-mouse" +#define DOUBLE_CLICK_KEY "double-click" -#define DOUBLE_CLICK_KEY "/desktop/mate/peripherals/mouse/double_click" +#define TOUCHPAD_SCHEMA "org.mate.peripherals-touchpad" /* State in testing the double-click speed. Global for a great deal of * convenience */ static gint double_click_state = DOUBLE_CLICK_TEST_OFF; -/* normalization routines */ -/* All of our scales but double_click are on the range 1->10 as a result, we - * have a few routines to convert from whatever the mateconf key is to our range. - */ -static MateConfValue * -double_click_from_mateconf (MateConfPropertyEditor *peditor, const MateConfValue *value) -{ - MateConfValue *new_value; - - new_value = mateconf_value_new (MATECONF_VALUE_INT); - mateconf_value_set_int (new_value, CLAMP ((int) floor ((mateconf_value_get_int (value) + 50) / 100.0) * 100, 100, 1000)); - return new_value; -} +static GSettings *mouse_settings = NULL; +static GSettings *touchpad_settings = NULL; static void get_default_mouse_info (int *default_numerator, int *default_denominator, int *default_threshold) @@ -105,86 +93,6 @@ get_default_mouse_info (int *default_numerator, int *default_denominator, int *d } -static MateConfValue * -motion_acceleration_from_mateconf (MateConfPropertyEditor *peditor, - const MateConfValue *value) -{ - MateConfValue *new_value; - gfloat motion_acceleration; - - new_value = mateconf_value_new (MATECONF_VALUE_FLOAT); - - if (mateconf_value_get_float (value) == -1.0) { - int numerator, denominator; - - get_default_mouse_info (&numerator, &denominator, NULL); - - motion_acceleration = CLAMP ((gfloat)(numerator / denominator), 0.2, 6.0); - } - else { - motion_acceleration = CLAMP (mateconf_value_get_float (value), 0.2, 6.0); - } - - if (motion_acceleration >= 1) - mateconf_value_set_float (new_value, motion_acceleration + 4); - else - mateconf_value_set_float (new_value, motion_acceleration * 5); - - return new_value; -} - -static MateConfValue * -motion_acceleration_to_mateconf (MateConfPropertyEditor *peditor, - const MateConfValue *value) -{ - MateConfValue *new_value; - gfloat motion_acceleration; - - new_value = mateconf_value_new (MATECONF_VALUE_FLOAT); - motion_acceleration = CLAMP (mateconf_value_get_float (value), 1.0, 10.0); - - if (motion_acceleration < 5) - mateconf_value_set_float (new_value, motion_acceleration / 5.0); - else - mateconf_value_set_float (new_value, motion_acceleration - 4); - - return new_value; -} - -static MateConfValue * -threshold_from_mateconf (MateConfPropertyEditor *peditor, - const MateConfValue *value) -{ - MateConfValue *new_value; - - new_value = mateconf_value_new (MATECONF_VALUE_FLOAT); - - if (mateconf_value_get_int (value) == -1) { - int threshold; - - get_default_mouse_info (NULL, NULL, &threshold); - mateconf_value_set_float (new_value, CLAMP (threshold, 1, 10)); - } - else { - mateconf_value_set_float (new_value, CLAMP (mateconf_value_get_int (value), 1, 10)); - } - - return new_value; -} - -static MateConfValue * -drag_threshold_from_mateconf (MateConfPropertyEditor *peditor, - const MateConfValue *value) -{ - MateConfValue *new_value; - - new_value = mateconf_value_new (MATECONF_VALUE_FLOAT); - - mateconf_value_set_float (new_value, CLAMP (mateconf_value_get_int (value), 1, 10)); - - return new_value; -} - /* Double Click handling */ struct test_data_t @@ -213,29 +121,21 @@ test_maybe_timeout (struct test_data_t *data) static gboolean event_box_button_press_event (GtkWidget *widget, GdkEventButton *event, - MateConfChangeSet *changeset) + gpointer user_data) { gint double_click_time; - MateConfValue *value; static struct test_data_t data; static gint test_on_timeout_id = 0; static gint test_maybe_timeout_id = 0; static guint32 double_click_timestamp = 0; GtkWidget *image; - MateConfClient *client; if (event->type != GDK_BUTTON_PRESS) return FALSE; image = g_object_get_data (G_OBJECT (widget), "image"); - if (!(changeset && mateconf_change_set_check_value (changeset, DOUBLE_CLICK_KEY, &value))) { - client = mateconf_client_get_default(); - double_click_time = mateconf_client_get_int (client, DOUBLE_CLICK_KEY, NULL); - g_object_unref (client); - - } else - double_click_time = mateconf_value_get_int (value); + double_click_time = g_settings_get_int (mouse_settings, DOUBLE_CLICK_KEY); if (test_maybe_timeout_id != 0) g_source_remove (test_maybe_timeout_id); @@ -289,42 +189,53 @@ orientation_radio_button_release_event (GtkWidget *widget, gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE); } -static MateConfValue * -left_handed_from_mateconf (MateConfPropertyEditor *peditor, - const MateConfValue *value) +static void +orientation_radio_button_toggled (GtkToggleButton *togglebutton, + GtkBuilder *dialog) { - MateConfValue *new_value; - - new_value = mateconf_value_new (MATECONF_VALUE_INT); - - mateconf_value_set_int (new_value, mateconf_value_get_bool (value)); - - return new_value; + gboolean left_handed; + left_handed = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (WID ("left_handed_radio"))); + g_settings_set_boolean (mouse_settings, "left-handed", left_handed); } -static MateConfValue * -left_handed_to_mateconf (MateConfPropertyEditor *peditor, - const MateConfValue *value) +static void +scrollmethod_gsettings_changed_event (GSettings *settings, + gchar *key, + GtkBuilder *dialog) { - MateConfValue *new_value; - - new_value = mateconf_value_new (MATECONF_VALUE_BOOL); - - mateconf_value_set_bool (new_value, mateconf_value_get_int (value) == 1); - - return new_value; + int scroll_method = g_settings_get_int (touchpad_settings, "scroll-method"); + gtk_widget_set_sensitive (WID ("scroll_disabled_radio"), + scroll_method == 0); + gtk_widget_set_sensitive (WID ("scroll_edge_radio"), + scroll_method == 1); + gtk_widget_set_sensitive (WID ("scroll_twofinger_radio"), + scroll_method == 2); } static void -scrollmethod_changed_event (MateConfPropertyEditor *peditor, - const gchar *key, - const MateConfValue *value, - GtkBuilder *dialog) +scrollmethod_clicked_event (GtkWidget *widget, + GtkBuilder *dialog) { GtkToggleButton *disabled = GTK_TOGGLE_BUTTON (WID ("scroll_disabled_radio")); gtk_widget_set_sensitive (WID ("horiz_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"); + + if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(widget))) + return; + + radio_group = g_slist_copy (gtk_radio_button_get_group + (GTK_RADIO_BUTTON (WID ("scroll_disabled_radio")))); + radio_group = g_slist_reverse (radio_group); + new_scroll_method = g_slist_index (radio_group, widget); + g_slist_free (radio_group); + + if (new_scroll_method != old_scroll_method) + g_settings_set_int (touchpad_settings, "scroll-method", new_scroll_method); } static void @@ -436,75 +347,85 @@ find_synaptics (void) /* Set up the property editors in the dialog. */ static void -setup_dialog (GtkBuilder *dialog, MateConfChangeSet *changeset) +setup_dialog (GtkBuilder *dialog) { GtkRadioButton *radio; - GObject *peditor; /* Orientation radio buttons */ radio = GTK_RADIO_BUTTON (WID ("left_handed_radio")); - peditor = mateconf_peditor_new_select_radio - (changeset, "/desktop/mate/peripherals/mouse/left_handed", gtk_radio_button_get_group (radio), - "conv-to-widget-cb", left_handed_from_mateconf, - "conv-from-widget-cb", left_handed_to_mateconf, - NULL); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(radio), + g_settings_get_boolean(mouse_settings, "left-handed")); /* explicitly connect to button-release so that you can change orientation with either button */ g_signal_connect (WID ("right_handed_radio"), "button_release_event", G_CALLBACK (orientation_radio_button_release_event), NULL); g_signal_connect (WID ("left_handed_radio"), "button_release_event", G_CALLBACK (orientation_radio_button_release_event), NULL); + g_signal_connect (WID ("left_handed_radio"), "toggled", + G_CALLBACK (orientation_radio_button_toggled), dialog); /* Locate pointer toggle */ - peditor = mateconf_peditor_new_boolean - (changeset, "/desktop/mate/peripherals/mouse/locate_pointer", WID ("locate_pointer_toggle"), NULL); + g_settings_bind (mouse_settings, "locate-pointer", WID ("locate_pointer_toggle"), + "active", G_SETTINGS_BIND_DEFAULT); /* Double-click time */ - peditor = mateconf_peditor_new_numeric_range - (changeset, DOUBLE_CLICK_KEY, WID ("delay_scale"), - "conv-to-widget-cb", double_click_from_mateconf, - NULL); + g_settings_bind (mouse_settings, DOUBLE_CLICK_KEY, + gtk_range_get_adjustment (GTK_RANGE (WID ("delay_scale"))), "value", + G_SETTINGS_BIND_DEFAULT); + gtk_image_set_from_stock (GTK_IMAGE (WID ("double_click_image")), MOUSE_DBLCLCK_OFF, mouse_capplet_dblclck_icon_get_size ()); g_object_set_data (G_OBJECT (WID ("double_click_eventbox")), "image", WID ("double_click_image")); g_signal_connect (WID ("double_click_eventbox"), "button_press_event", - G_CALLBACK (event_box_button_press_event), changeset); + G_CALLBACK (event_box_button_press_event), NULL); /* speed */ - mateconf_peditor_new_numeric_range - (changeset, "/desktop/mate/peripherals/mouse/motion_acceleration", WID ("accel_scale"), - "conv-to-widget-cb", motion_acceleration_from_mateconf, - "conv-from-widget-cb", motion_acceleration_to_mateconf, - NULL); - - mateconf_peditor_new_numeric_range - (changeset, "/desktop/mate/peripherals/mouse/motion_threshold", WID ("sensitivity_scale"), - "conv-to-widget-cb", threshold_from_mateconf, - NULL); + g_settings_bind (mouse_settings, "motion-acceleration", + gtk_range_get_adjustment (GTK_RANGE (WID ("accel_scale"))), "value", + G_SETTINGS_BIND_DEFAULT); + g_settings_bind (mouse_settings, "motion-threshold", + gtk_range_get_adjustment (GTK_RANGE (WID ("sensitivity_scale"))), "value", + G_SETTINGS_BIND_DEFAULT); /* DnD threshold */ - mateconf_peditor_new_numeric_range - (changeset, "/desktop/mate/peripherals/mouse/drag_threshold", WID ("drag_threshold_scale"), - "conv-to-widget-cb", drag_threshold_from_mateconf, - NULL); + g_settings_bind (mouse_settings, "drag-threshold", + gtk_range_get_adjustment (GTK_RANGE (WID ("drag_threshold_scale"))), "value", + G_SETTINGS_BIND_DEFAULT); /* Trackpad page */ if (find_synaptics () == FALSE) gtk_notebook_remove_page (GTK_NOTEBOOK (WID ("prefs_widget")), -1); else { - mateconf_peditor_new_boolean - (changeset, "/desktop/mate/peripherals/touchpad/disable_while_typing", WID ("disable_w_typing_toggle"), NULL); - mateconf_peditor_new_boolean - (changeset, "/desktop/mate/peripherals/touchpad/tap_to_click", WID ("tap_to_click_toggle"), NULL); - mateconf_peditor_new_boolean - (changeset, "/desktop/mate/peripherals/touchpad/horiz_scroll_enabled", WID ("horiz_scroll_toggle"), NULL); - radio = GTK_RADIO_BUTTON (WID ("scroll_disabled_radio")); - peditor = mateconf_peditor_new_select_radio - (changeset, "/desktop/mate/peripherals/touchpad/scroll_method", gtk_radio_button_get_group (radio), - NULL); + g_settings_bind (touchpad_settings, "disable-while-typing", + WID ("disable_w_typing_toggle"), "active", + G_SETTINGS_BIND_DEFAULT); + g_settings_bind (touchpad_settings, "tap-to-click", + WID ("tap_to_click_toggle"), "active", + G_SETTINGS_BIND_DEFAULT); + g_settings_bind (touchpad_settings, "horiz-scroll-enabled", + WID ("horiz_scroll_toggle"), "active", + G_SETTINGS_BIND_DEFAULT); + radio = GTK_RADIO_BUTTON (WID ("scroll_disabled_radio")); + GSList *radio_group = gtk_radio_button_get_group (radio); + GSList *item; + gint i; + gint scroll_method = g_settings_get_int(touchpad_settings, "scroll-method"); + for (item = radio_group; item != NULL; item = item->next) { + if (i == scroll_method) { + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(item->data), TRUE); + break; + } + i++; + } synaptics_check_capabilities (dialog); - scrollmethod_changed_event (MATECONF_PROPERTY_EDITOR (peditor), NULL, NULL, dialog); - g_signal_connect (peditor, "value-changed", - G_CALLBACK (scrollmethod_changed_event), dialog); + for (item = radio_group; item != NULL; item = item->next) { + g_signal_connect (G_OBJECT (item->data), "clicked", + G_CALLBACK(scrollmethod_clicked_event), + dialog); + } + g_signal_connect (touchpad_settings, + "changed::scroll-method", + G_CALLBACK(scrollmethod_gsettings_changed_event), + dialog); } } @@ -564,7 +485,7 @@ create_dialog (void) /* Callback issued when a button is clicked on the dialog */ static void -dialog_response_cb (GtkDialog *dialog, gint response_id, MateConfChangeSet *changeset) +dialog_response_cb (GtkDialog *dialog, gint response_id, gpointer data) { if (response_id == GTK_RESPONSE_HELP) capplet_help (GTK_WINDOW (dialog), @@ -576,7 +497,6 @@ dialog_response_cb (GtkDialog *dialog, gint response_id, MateConfChangeSet *chan int main (int argc, char **argv) { - MateConfClient *client; GtkBuilder *dialog; GtkWidget *dialog_win, *w; gchar *start_page = NULL; @@ -587,7 +507,7 @@ main (int argc, char **argv) G_OPTION_ARG_STRING, &start_page, /* TRANSLATORS: don't translate the terms in brackets */ - N_("Specify the name of the page to show (general|accessibility)"), + N_("Specify the name of the page to show (general)"), N_("page") }, {NULL} }; @@ -600,15 +520,14 @@ main (int argc, char **argv) activate_settings_daemon (); - client = mateconf_client_get_default (); - mateconf_client_add_dir (client, "/desktop/mate/peripherals/mouse", MATECONF_CLIENT_PRELOAD_ONELEVEL, NULL); - mateconf_client_add_dir (client, "/desktop/mate/peripherals/touchpad", MATECONF_CLIENT_PRELOAD_ONELEVEL, NULL); + mouse_settings = g_settings_new (MOUSE_SCHEMA); + touchpad_settings = g_settings_new (TOUCHPAD_SCHEMA); dialog = create_dialog (); if (dialog) { - setup_dialog (dialog, NULL); - setup_accessibility (dialog, client); + setup_dialog (dialog); + //setup_accessibility (dialog); dialog_win = WID ("mouse_properties_dialog"); g_signal_connect (dialog_win, "response", @@ -641,7 +560,8 @@ main (int argc, char **argv) g_object_unref (dialog); } - g_object_unref (client); + g_object_unref (mouse_settings); + g_object_unref (touchpad_settings); return 0; } diff --git a/capplets/mouse/mate-mouse-properties.ui b/capplets/mouse/mate-mouse-properties.ui index b855ff11..edc91a8c 100644 --- a/capplets/mouse/mate-mouse-properties.ui +++ b/capplets/mouse/mate-mouse-properties.ui @@ -707,672 +707,6 @@ </packing> </child> <child> - <object class="GtkVBox" id="accessibility_vbox"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="border_width">12</property> - <property name="orientation">vertical</property> - <property name="spacing">18</property> - <child> - <object class="GtkVBox" id="simulated_secondary_vbox"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="orientation">vertical</property> - <child> - <object class="GtkLabel" id="label21"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Simulated Secondary Click</property> - <attributes> - <attribute name="weight" value="bold"/> - </attributes> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkAlignment" id="alignment8"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="top_padding">6</property> - <property name="left_padding">12</property> - <child> - <object class="GtkVBox" id="vbox18"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="orientation">vertical</property> - <property name="spacing">6</property> - <child> - <object class="GtkCheckButton" id="delay_enable"> - <property name="label" translatable="yes">_Trigger secondary click by holding down the primary button</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkAlignment" id="alignment11"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="left_padding">12</property> - <child> - <object class="GtkHBox" id="delay_box"> - <property name="visible">True</property> - <property name="spacing">12</property> - <child> - <object class="GtkLabel" id="simulated_delay_label"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">_Delay:</property> - <property name="use_underline">True</property> - <property name="justify">center</property> - <property name="mnemonic_widget">delay_time</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkHBox" id="hbox12"> - <property name="visible">True</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="simulated_delay_short_label"> - <property name="visible">True</property> - <property name="xalign">1</property> - <property name="yalign">0.4699999988079071</property> - <property comments="short delay" name="label" translatable="yes">Short</property> - <attributes> - <attribute name="style" value="italic"/> - <attribute name="scale" value="0.83"/> - </attributes> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkHScale" id="delay_time"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="update_policy">discontinuous</property> - <property name="adjustment">adjustment5</property> - <property name="draw_value">False</property> - <accessibility> - - </accessibility> - <child internal-child="accessible"> - <object class="AtkObject" id="a11y-delay_time1"> - <property name="AtkObject::accessible-description" translatable="yes">Cursor blinks speed</property> - </object> - </child> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="simulated_delay_long_label"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property comments="long delay" name="label" translatable="yes">Long</property> - <attributes> - <attribute name="style" value="italic"/> - <attribute name="scale" value="0.83"/> - </attributes> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">2</property> - </packing> - </child> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - </object> - </child> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - </object> - </child> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkVBox" id="dwell_secondary_vbox"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="orientation">vertical</property> - <child> - <object class="GtkLabel" id="label16"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="xalign">0</property> - <property comments="Dwell Click = Clicking without hardware buttons (by letting the pointer sit on the click target for a certain amount of time)" name="label" translatable="yes">Dwell Click</property> - <attributes> - <attribute name="weight" value="bold"/> - </attributes> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkAlignment" id="alignment10"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="top_padding">6</property> - <property name="left_padding">12</property> - <child> - <object class="GtkVBox" id="vbox4"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="orientation">vertical</property> - <property name="spacing">6</property> - <child> - <object class="GtkCheckButton" id="dwell_enable"> - <property name="label" translatable="yes">_Initiate click when stopping pointer movement</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkAlignment" id="alignment12"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="left_padding">12</property> - <child> - <object class="GtkVBox" id="dwell_box"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="orientation">vertical</property> - <property name="spacing">6</property> - <child> - <object class="GtkTable" id="table4"> - <property name="visible">True</property> - <property name="n_rows">2</property> - <property name="n_columns">3</property> - <property name="column_spacing">12</property> - <property name="row_spacing">6</property> - <child> - <object class="GtkLabel" id="dwell_threshold_label"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">_Motion threshold:</property> - <property name="use_underline">True</property> - <property name="justify">center</property> - <property name="mnemonic_widget">threshold</property> - </object> - <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="dwell_delay_label"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">D_elay:</property> - <property name="use_underline">True</property> - <property name="justify">center</property> - <property name="mnemonic_widget">dwell_time</property> - </object> - <packing> - <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> - </packing> - </child> - <child> - <object class="GtkHBox" id="hbox4"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="dwell_delay_short_label"> - <property name="visible">True</property> - <property name="xalign">1</property> - <property comments="short delay" name="label" translatable="yes">Short</property> - <property name="justify">center</property> - <attributes> - <attribute name="style" value="italic"/> - <attribute name="scale" value="0.83"/> - </attributes> - </object> - <packing> - <property name="expand">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkHScale" id="dwell_time"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="update_policy">discontinuous</property> - <property name="adjustment">adjustment6</property> - <property name="draw_value">False</property> - <property name="value_pos">right</property> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="dwell_delay_long_label"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property comments="long delay" name="label" translatable="yes">Long</property> - <property name="justify">center</property> - <attributes> - <attribute name="style" value="italic"/> - <attribute name="scale" value="0.83"/> - </attributes> - </object> - <packing> - <property name="expand">False</property> - <property name="position">2</property> - </packing> - </child> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">3</property> - </packing> - </child> - <child> - <object class="GtkHBox" id="hbox5"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="spacing">6</property> - <child> - <object class="GtkLabel" id="dwell_threshold_small_label"> - <property name="visible">True</property> - <property name="xalign">1</property> - <property comments="small threshold" name="label" translatable="yes">Small</property> - <property name="justify">center</property> - <attributes> - <attribute name="style" value="italic"/> - <attribute name="scale" value="0.83"/> - </attributes> - </object> - <packing> - <property name="expand">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkHScale" id="threshold"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="update_policy">discontinuous</property> - <property name="adjustment">adjustment7</property> - <property name="digits">0</property> - <property name="draw_value">False</property> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="dwell_threshold_large_label"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property comments="large threshold" name="label" translatable="yes">Large</property> - <property name="justify">center</property> - <attributes> - <attribute name="style" value="italic"/> - <attribute name="scale" value="0.83"/> - </attributes> - </object> - <packing> - <property name="expand">False</property> - <property name="position">2</property> - </packing> - </child> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">3</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - </packing> - </child> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkVBox" id="vbox5"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="orientation">vertical</property> - <property name="spacing">6</property> - <child> - <object class="GtkVBox" id="vbox9"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="orientation">vertical</property> - <property name="spacing">6</property> - <child> - <object class="GtkRadioButton" id="dwell_mode_ctw"> - <property name="label" translatable="yes">Choose type of click _beforehand</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="use_underline">True</property> - <property name="active">True</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkAlignment" id="alignment14"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="left_padding">12</property> - <child> - <object class="GtkVBox" id="box_ctw"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="orientation">vertical</property> - <property name="spacing">6</property> - <child> - <object class="GtkCheckButton" id="dwell_show_ctw"> - <property name="label" translatable="yes">Show click type _window</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkHBox" id="hbox2"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="spacing">6</property> - <child> - <object class="GtkImage" id="image1"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="stock">gtk-dialog-info</property> - </object> - <packing> - <property name="expand">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label2"> - <property name="width_request">320</property> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="xalign">0</property> - <property comments="Dwell Click = Clicking without hardware buttons (by letting the pointer sit on the click target for a certain amount of time)" name="label" translatable="yes">You can also use the Dwell Click panel applet to choose the click type.</property> - <property name="wrap">True</property> - <attributes> - <attribute name="style" value="italic"/> - </attributes> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - </object> - </child> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkVBox" id="vbox13"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="orientation">vertical</property> - <property name="spacing">6</property> - <child> - <object class="GtkRadioButton" id="dwell_mode_gesture"> - <property name="label" translatable="yes">Choose type of click with mo_use gestures</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="use_underline">True</property> - <property name="active">True</property> - <property name="draw_indicator">True</property> - <property name="group">dwell_mode_ctw</property> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkAlignment" id="alignment13"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="left_padding">12</property> - <child> - <object class="GtkTable" id="box_gesture"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="n_rows">4</property> - <property name="n_columns">2</property> - <property name="column_spacing">12</property> - <property name="row_spacing">6</property> - <child> - <object class="GtkComboBox" id="dwell_gest_secondary"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> - </packing> - </child> - <child> - <object class="GtkComboBox" id="dwell_gest_drag"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - </packing> - </child> - <child> - <object class="GtkComboBox" id="dwell_gest_double"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - </packing> - </child> - <child> - <object class="GtkComboBox" id="dwell_gest_single"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label15"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Seco_ndary click:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">dwell_gest_secondary</property> - </object> - <packing> - <property name="top_attach">3</property> - <property name="bottom_attach">4</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label13"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="xalign">0</property> - <property comments="click to initiate drag-and-drop (like normally click and hold)" name="label" translatable="yes">D_rag click:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">dwell_gest_drag</property> - </object> - <packing> - <property name="top_attach">2</property> - <property name="bottom_attach">3</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label12"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">D_ouble click:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">dwell_gest_double</property> - </object> - <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="label10"> - <property name="visible">True</property> - <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">_Single click:</property> - <property name="use_underline">True</property> - <property name="mnemonic_widget">dwell_gest_single</property> - </object> - <packing> - <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> - </packing> - </child> - </object> - </child> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - </object> - </child> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - </object> - </child> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="position">1</property> - </packing> - </child> - </object> - </child> - <child type="tab"> - <object class="GtkLabel" id="label3"> - <property name="visible">True</property> - <property name="label" translatable="yes">Accessibility</property> - <property name="justify">center</property> - </object> - <packing> - <property name="position">1</property> - <property name="tab_fill">False</property> - </packing> - </child> - <child> <object class="GtkVBox" id="vbox3"> <property name="visible">True</property> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> |