[gnome-control-center] mouse: port panel to the new design
- From: Felipe Borges <felipeborges src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] mouse: port panel to the new design
- Date: Fri, 23 Oct 2015 13:19:47 +0000 (UTC)
commit 1896fafef65c5d7daff83fc4591803daac8652db
Author: Felipe Borges <feborges redhat com>
Date: Thu Oct 22 15:33:08 2015 +0200
mouse: port panel to the new design
https://wiki.gnome.org/Design/SystemSettings/Mouse
https://bugzilla.gnome.org/show_bug.cgi?id=756863
panels/mouse/cc-mouse-caps-helper.c | 12 +-
panels/mouse/cc-mouse-caps-helper.h | 1 +
panels/mouse/cc-mouse-panel.c | 58 +--
panels/mouse/gnome-mouse-properties.c | 201 ++++---
panels/mouse/gnome-mouse-properties.ui | 910 ++++++++++++++++----------------
5 files changed, 607 insertions(+), 575 deletions(-)
---
diff --git a/panels/mouse/cc-mouse-caps-helper.c b/panels/mouse/cc-mouse-caps-helper.c
index e2c7f32..cf6e415 100644
--- a/panels/mouse/cc-mouse-caps-helper.c
+++ b/panels/mouse/cc-mouse-caps-helper.c
@@ -22,6 +22,7 @@
static gboolean
synaptics_check_capabilities_x11 (gboolean *have_two_finger_scrolling,
+ gboolean *have_edge_scrolling,
gboolean *have_tap_to_click)
{
int numdevices, i;
@@ -38,6 +39,7 @@ synaptics_check_capabilities_x11 (gboolean *have_two_finger_scrolling,
return FALSE;
*have_two_finger_scrolling = FALSE;
+ *have_edge_scrolling = FALSE;
*have_tap_to_click = FALSE;
devicelist = XListInputDevices (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), &numdevices);
@@ -68,6 +70,9 @@ synaptics_check_capabilities_x11 (gboolean *have_two_finger_scrolling,
if (data[3])
*have_two_finger_scrolling = TRUE;
+ /* Edge scrolling should be supported for all synaptics touchpads */
+ *have_edge_scrolling = TRUE;
+
XFree (data);
}
@@ -77,9 +82,12 @@ synaptics_check_capabilities_x11 (gboolean *have_two_finger_scrolling,
&bytes_after, &data) == Success) && (realtype != None)) {
/* Property data is booleans for two-finger, edge, on-button scroll available. */
- if (data[0] && data[1])
+ if (data[0])
*have_two_finger_scrolling = TRUE;
+ if (data[1])
+ *have_edge_scrolling = TRUE;
+
XFree (data);
}
@@ -103,10 +111,12 @@ synaptics_check_capabilities_x11 (gboolean *have_two_finger_scrolling,
gboolean
synaptics_check_capabilities (gboolean *have_two_finger_scrolling,
+ gboolean *have_edge_scrolling,
gboolean *have_tap_to_click)
{
if (GDK_IS_X11_DISPLAY (gdk_display_get_default ()))
return synaptics_check_capabilities_x11 (have_two_finger_scrolling,
+ have_edge_scrolling,
have_tap_to_click);
/* else we unconditionally show all touchpad knobs */
return FALSE;
diff --git a/panels/mouse/cc-mouse-caps-helper.h b/panels/mouse/cc-mouse-caps-helper.h
index a5f9802..7ab2605 100644
--- a/panels/mouse/cc-mouse-caps-helper.h
+++ b/panels/mouse/cc-mouse-caps-helper.h
@@ -28,6 +28,7 @@
#include <X11/extensions/XInput.h>
gboolean synaptics_check_capabilities (gboolean *have_two_finger_scrolling,
+ gboolean *have_edge_scrolling,
gboolean *have_tap_to_click);
#endif /* _CC_MOUSE_CAPS_HELPER_H_ */
diff --git a/panels/mouse/cc-mouse-panel.c b/panels/mouse/cc-mouse-panel.c
index 9aa3107..f88b70f 100644
--- a/panels/mouse/cc-mouse-panel.c
+++ b/panels/mouse/cc-mouse-panel.c
@@ -37,9 +37,7 @@ CC_PANEL_REGISTER (CcMousePanel, cc_mouse_panel)
struct _CcMousePanelPrivate
{
- GtkWidget *test_dialog;
- GtkWidget *prefs_widget;
- GtkWidget *test_widget;
+ GtkWidget *stack;
};
enum {
@@ -50,14 +48,6 @@ enum {
static void
cc_mouse_panel_dispose (GObject *object)
{
- CcMousePanelPrivate *priv = CC_MOUSE_PANEL (object)->priv;
-
- if (priv->test_dialog)
- {
- gtk_widget_destroy (priv->test_dialog);
- priv->test_dialog = NULL;
- }
-
G_OBJECT_CLASS (cc_mouse_panel_parent_class)->dispose (object);
}
@@ -68,22 +58,20 @@ cc_mouse_panel_get_help_uri (CcPanel *panel)
}
static void
-shell_test_button_clicked (GtkButton *button, CcMousePanel *panel)
+shell_test_button_toggled (GtkToggleButton *button, CcMousePanel *panel)
{
CcMousePanelPrivate *priv = panel->priv;
+ gboolean active;
- /* GTK_RESPONSE_NONE is returned if the dialog is being destroyed, so only
- * hide the dialog if it is not being destroyed */
- if (gtk_dialog_run (GTK_DIALOG (priv->test_dialog)) != GTK_RESPONSE_NONE)
- gtk_widget_hide (priv->test_dialog);
+ active = gtk_toggle_button_get_active (button);
+ gtk_stack_set_visible_child_name (GTK_STACK (priv->stack), active ? "test_widget" : "prefs_widget");
}
static void
cc_mouse_panel_constructed (GObject *object)
{
CcMousePanel *self = CC_MOUSE_PANEL (object);
- CcMousePanelPrivate *priv = self->priv;
- GtkWidget *button, *container, *toplevel;
+ GtkWidget *button;
CcShell *shell;
G_OBJECT_CLASS (cc_mouse_panel_parent_class)->constructed (object);
@@ -91,7 +79,7 @@ cc_mouse_panel_constructed (GObject *object)
/* Add test area button to shell header. */
shell = cc_panel_get_shell (CC_PANEL (self));
- button = gtk_button_new_with_mnemonic (_("Test Your _Settings"));
+ button = gtk_toggle_button_new_with_mnemonic (_("Test Your _Settings"));
gtk_style_context_add_class (gtk_widget_get_style_context (button),
"text-button");
gtk_widget_set_valign (button, GTK_ALIGN_CENTER);
@@ -99,41 +87,29 @@ cc_mouse_panel_constructed (GObject *object)
cc_shell_embed_widget_in_header (shell, button);
- g_signal_connect (GTK_BUTTON (button), "clicked",
- G_CALLBACK (shell_test_button_clicked),
+ g_signal_connect (GTK_BUTTON (button), "toggled",
+ G_CALLBACK (shell_test_button_toggled),
self);
-
- toplevel = cc_shell_get_toplevel (shell);
- priv->test_dialog = g_object_new (GTK_TYPE_DIALOG, "title", _("Test Your Settings"),
- "transient-for", GTK_WINDOW (toplevel),
- "modal", TRUE,
- "use_header-bar", TRUE,
- "resizable", FALSE,
- NULL);
-
- container = gtk_dialog_get_content_area (GTK_DIALOG (priv->test_dialog));
- gtk_container_add (GTK_CONTAINER (container), priv->test_widget);
}
static void
cc_mouse_panel_init (CcMousePanel *self)
{
CcMousePanelPrivate *priv;
+ GtkWidget *prefs_widget, *test_widget;
priv = self->priv = MOUSE_PANEL_PRIVATE (self);
g_resources_register (cc_mouse_get_resource ());
- priv->prefs_widget = cc_mouse_properties_new ();
- priv->test_widget = cc_mouse_test_new ();
+ prefs_widget = cc_mouse_properties_new ();
+ test_widget = cc_mouse_test_new ();
- gtk_widget_set_margin_start (priv->prefs_widget, 6);
- gtk_widget_set_margin_end (priv->prefs_widget, 6);
- gtk_widget_set_margin_top (priv->prefs_widget, 6);
- gtk_widget_set_margin_bottom (priv->prefs_widget, 6);
+ priv->stack = gtk_stack_new ();
+ gtk_stack_add_named (GTK_STACK (priv->stack), prefs_widget, "prefs_widget");
+ gtk_stack_add_named (GTK_STACK (priv->stack), test_widget, "test_widget");
- gtk_container_add (GTK_CONTAINER (self), priv->prefs_widget);
- gtk_widget_show (priv->prefs_widget);
- gtk_widget_show (priv->test_widget);
+ gtk_container_add (GTK_CONTAINER (self), priv->stack);
+ gtk_widget_show_all (priv->stack);
}
static void
diff --git a/panels/mouse/gnome-mouse-properties.c b/panels/mouse/gnome-mouse-properties.c
index c8b9a70..0b1b5ae 100644
--- a/panels/mouse/gnome-mouse-properties.c
+++ b/panels/mouse/gnome-mouse-properties.c
@@ -35,6 +35,7 @@
#include "gnome-mouse-properties.h"
#include "gsd-input-helper.h"
#include "gsd-device-manager.h"
+#include "shell/list-box-helper.h"
#include "cc-mouse-caps-helper.h"
#include <sys/types.h>
@@ -61,50 +62,100 @@ struct _CcMousePropertiesPrivate
gboolean have_touchpad;
gboolean have_touchscreen;
+ gboolean left_handed;
+
gboolean changing_scroll;
};
G_DEFINE_TYPE (CcMouseProperties, cc_mouse_properties, GTK_TYPE_BIN);
static void
-orientation_radio_button_release_event (GtkWidget *widget,
- GdkEventButton *event)
+on_mouse_orientation_changed (GtkToggleButton *button,
+ gpointer user_data)
+{
+ CcMousePropertiesPrivate *d = user_data;
+
+ if (gtk_toggle_button_get_active (button)) {
+ g_settings_set_boolean (d->mouse_settings, "left-handed", !d->left_handed);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID (d->left_handed ? "primary-button-right"
: "primary-button-left")), FALSE);
+ d->left_handed = !d->left_handed;
+ }
+}
+
+static void
+orientation_button_release_event (GtkWidget *widget,
+ GdkEventButton *event)
{
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), TRUE);
}
static void
-setup_scrollmethod_radios (CcMousePropertiesPrivate *d)
+natural_scrolling_state_set (GtkSwitch *button,
+ gboolean state,
+ gpointer user_data)
{
- GsdTouchpadScrollMethod method;
- gboolean active;
- gboolean two_finger_scrolling;
- gboolean tap_to_click;
-
- if (synaptics_check_capabilities (&two_finger_scrolling, &tap_to_click)) {
- gtk_widget_set_sensitive (WID ("two_finger_scroll_toggle"), two_finger_scrolling);
- gtk_widget_set_sensitive (WID ("tap_to_click_toggle"), tap_to_click);
- }
-
- method = g_settings_get_enum (d->touchpad_settings, "scroll-method");
- active = (method == GSD_TOUCHPAD_SCROLL_METHOD_TWO_FINGER_SCROLLING);
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID ("two_finger_scroll_toggle")), active);
+ CcMousePropertiesPrivate *d = user_data;
+
+ g_settings_set_boolean (d->mouse_settings, "natural-scroll", state);
+ g_settings_set_boolean (d->touchpad_settings, "natural-scroll", state);
+ gtk_switch_set_state (button, state);
}
static void
-scrollmethod_changed_event (GtkToggleButton *button, CcMousePropertiesPrivate *d)
+setup_touchpad_options (CcMousePropertiesPrivate *d)
{
GsdTouchpadScrollMethod method;
+ gboolean have_two_finger_scrolling;
+ gboolean have_edge_scrolling;
+ gboolean have_tap_to_click;
+
+ synaptics_check_capabilities (&have_two_finger_scrolling, &have_edge_scrolling, &have_tap_to_click);
+
+ gtk_widget_show_all (WID ("touchpad-frame"));
+
+ if (have_two_finger_scrolling)
+ gtk_widget_show (WID ("two-finger-scrolling-row"));
+ else if (have_edge_scrolling)
+ gtk_widget_show (WID ("edge-scrolling-row"));
+ if (have_tap_to_click)
+ gtk_widget_show (WID ("tap-to-click-row"));
+
+ method = g_settings_get_enum (d->touchpad_settings, "scroll-method");
+ gtk_switch_set_active (GTK_SWITCH (WID ("two-finger-scrolling-switch")),
+ method == GSD_TOUCHPAD_SCROLL_METHOD_TWO_FINGER_SCROLLING);
+
+ gtk_switch_set_active (GTK_SWITCH (WID ("edge-scrolling-switch")),
+ method == GSD_TOUCHPAD_SCROLL_METHOD_EDGE_SCROLLING);
+}
+
+static void
+two_finger_scrollmethod_changed_event (GtkSwitch *button,
+ gboolean state,
+ gpointer user_data)
+{
+ CcMousePropertiesPrivate *d = user_data;
if (d->changing_scroll)
return;
- if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (WID ("two_finger_scroll_toggle"))))
- method = GSD_TOUCHPAD_SCROLL_METHOD_TWO_FINGER_SCROLLING;
- else
- method = GSD_TOUCHPAD_SCROLL_METHOD_EDGE_SCROLLING;
+ g_settings_set_enum (d->touchpad_settings, "scroll-method",
+ state ? GSD_TOUCHPAD_SCROLL_METHOD_TWO_FINGER_SCROLLING :
GSD_TOUCHPAD_SCROLL_METHOD_DISABLED);
+ gtk_switch_set_state (button, state);
+}
+
+static void
+edge_scrolling_changed_event (GtkSwitch *button,
+ gboolean state,
+ gpointer user_data)
+{
+ CcMousePropertiesPrivate *d = user_data;
- g_settings_set_enum (d->touchpad_settings, "scroll-method", method);
+ if (d->changing_scroll)
+ return;
+
+ g_settings_set_enum (d->touchpad_settings, "scroll-method",
+ state ? GSD_TOUCHPAD_SCROLL_METHOD_EDGE_SCROLLING :
GSD_TOUCHPAD_SCROLL_METHOD_DISABLED);
+ gtk_switch_set_state (button, state);
}
static gboolean
@@ -163,94 +214,79 @@ touchpad_enabled_set_mapping (const GValue *value,
static void
setup_dialog (CcMousePropertiesPrivate *d)
{
- GtkRadioButton *radio;
+ GtkToggleButton *button;
- /* Orientation radio buttons */
- radio = GTK_RADIO_BUTTON (WID ("left_handed_radio"));
- g_settings_bind (d->mouse_settings, "left-handed", radio, "active", G_SETTINGS_BIND_DEFAULT);
+ d->left_handed = g_settings_get_boolean (d->mouse_settings, "left-handed");
+ button = GTK_TOGGLE_BUTTON (WID (d->left_handed ? "primary-button-right" : "primary-button-left"));
+ gtk_toggle_button_set_active (button, TRUE);
+ g_signal_connect (WID ("primary-button-left"), "toggled",
+ G_CALLBACK (on_mouse_orientation_changed), d);
+ g_signal_connect (WID ("primary-button-right"), "toggled",
+ G_CALLBACK (on_mouse_orientation_changed), d);
/* 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);
-
- /* Double-click time */
- g_settings_bind (d->gsd_mouse_settings, "double-click",
- gtk_range_get_adjustment (GTK_RANGE (WID ("double_click_scale"))), "value",
+ g_signal_connect (WID ("primary-button-right"), "button_release_event",
+ G_CALLBACK (orientation_button_release_event), NULL);
+ g_signal_connect (WID ("primary-button-left"), "button_release_event",
+ G_CALLBACK (orientation_button_release_event), NULL);
+
+ /* bind natural-scroll setting for mice and touchpad */
+ g_settings_bind (d->touchpad_settings, "natural-scroll",
+ WID ("natural-scrolling-switch"), "active",
G_SETTINGS_BIND_DEFAULT);
+ g_signal_connect (WID ("natural-scrolling-switch"), "state-set",
+ G_CALLBACK (natural_scrolling_state_set), d);
+
+ gtk_list_box_set_header_func (GTK_LIST_BOX (WID ("general-listbox")), cc_list_box_update_header_func,
NULL, NULL);
/* Mouse section */
- gtk_widget_set_visible (WID ("mouse_vbox"), d->have_mouse);
+ gtk_widget_set_visible (WID ("mouse-frame"), d->have_mouse);
- gtk_scale_add_mark (GTK_SCALE (WID ("pointer_speed_scale")), 0,
+ gtk_scale_add_mark (GTK_SCALE (WID ("mouse-speed-scale")), 0,
GTK_POS_TOP, NULL);
g_settings_bind (d->mouse_settings, "speed",
- gtk_range_get_adjustment (GTK_RANGE (WID ("pointer_speed_scale"))), "value",
+ gtk_range_get_adjustment (GTK_RANGE (WID ("mouse-speed-scale"))), "value",
G_SETTINGS_BIND_DEFAULT);
- /* Trackpad page */
- gtk_widget_set_visible (WID ("touchpad_vbox"), d->have_touchpad);
- gtk_widget_set_visible (WID ("touchpad_enabled_switch"),
+ /* Touchpad section */
+ gtk_widget_set_visible (WID ("touchpad-frame"), d->have_touchpad);
+ gtk_widget_set_visible (WID ("touchpad-toggle-switch"),
show_touchpad_enabling_switch (d));
g_settings_bind_with_mapping (d->touchpad_settings, "send-events",
- WID ("touchpad_enabled_switch"), "active",
+ WID ("touchpad-toggle-switch"), "active",
G_SETTINGS_BIND_DEFAULT,
touchpad_enabled_get_mapping,
touchpad_enabled_set_mapping,
NULL, NULL);
g_settings_bind_with_mapping (d->touchpad_settings, "send-events",
- WID ("touchpad_options_box"), "sensitive",
+ WID ("touchpad-options-revealer"), "reveal-child",
G_SETTINGS_BIND_GET,
touchpad_enabled_get_mapping,
touchpad_enabled_set_mapping,
NULL, NULL);
- g_settings_bind (d->touchpad_settings, "tap-to-click",
- WID ("tap_to_click_toggle"), "active",
- G_SETTINGS_BIND_DEFAULT);
- g_settings_bind (d->touchpad_settings, "natural-scroll",
- WID ("natural_scroll_toggle"), "active",
- G_SETTINGS_BIND_DEFAULT);
- gtk_scale_add_mark (GTK_SCALE (WID ("touchpad_pointer_speed_scale")), 0,
+ gtk_scale_add_mark (GTK_SCALE (WID ("touchpad-speed-scale")), 0,
GTK_POS_TOP, NULL);
g_settings_bind (d->touchpad_settings, "speed",
- gtk_range_get_adjustment (GTK_RANGE (WID ("touchpad_pointer_speed_scale"))), "value",
+ gtk_range_get_adjustment (GTK_RANGE (WID ("touchpad-speed-scale"))), "value",
+ G_SETTINGS_BIND_DEFAULT);
+
+ g_settings_bind (d->touchpad_settings, "tap-to-click",
+ WID ("tap-to-click-switch"), "active",
G_SETTINGS_BIND_DEFAULT);
if (d->have_touchpad) {
- setup_scrollmethod_radios (d);
+ setup_touchpad_options (d);
}
- g_signal_connect (WID ("two_finger_scroll_toggle"), "toggled",
- G_CALLBACK (scrollmethod_changed_event), d);
-}
-
-/* Construct the dialog */
-
-static void
-create_dialog (CcMousePropertiesPrivate *d)
-{
- GtkSizeGroup *size_group;
-
- size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
- gtk_size_group_add_widget (size_group, WID ("primary_button_label"));
- gtk_size_group_add_widget (size_group, WID ("pointer_speed_label"));
- gtk_size_group_add_widget (size_group, WID ("double_click_label"));
- gtk_size_group_add_widget (size_group, WID ("touchpad_pointer_speed_label"));
-
- size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
- gtk_size_group_add_widget (size_group, WID ("pointer_speed_fast_label"));
- gtk_size_group_add_widget (size_group, WID ("double_click_fast_label"));
- gtk_size_group_add_widget (size_group, WID ("touchpad_pointer_speed_fast_label"));
+ g_signal_connect (WID ("two-finger-scrolling-switch"), "state-set",
+ G_CALLBACK (two_finger_scrollmethod_changed_event), d);
- size_group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
- gtk_size_group_add_widget (size_group, WID ("pointer_speed_slow_label"));
- gtk_size_group_add_widget (size_group, WID ("double_click_slow_label"));
- gtk_size_group_add_widget (size_group, WID ("touchpad_pointer_speed_slow_label"));
+ g_signal_connect (WID ("edge-scrolling-switch"), "state-set",
+ G_CALLBACK (edge_scrolling_changed_event), d);
- gtk_widget_set_direction (WID ("primary_button_box"), GTK_TEXT_DIR_LTR);
+ gtk_list_box_set_header_func (GTK_LIST_BOX (WID ("touchpad-options-listbox")),
cc_list_box_update_header_func, NULL, NULL);
}
/* Callback issued when a button is clicked on the dialog */
@@ -261,17 +297,17 @@ device_changed (GsdDeviceManager *device_manager,
CcMousePropertiesPrivate *d)
{
d->have_touchpad = touchpad_is_present ();
- gtk_widget_set_visible (WID ("touchpad_vbox"), d->have_touchpad);
+ gtk_widget_set_visible (WID ("touchpad-frame"), d->have_touchpad);
if (d->have_touchpad) {
d->changing_scroll = TRUE;
- setup_scrollmethod_radios (d);
+ setup_touchpad_options (d);
d->changing_scroll = FALSE;
}
d->have_mouse = mouse_is_present ();
- gtk_widget_set_visible (WID ("mouse_vbox"), d->have_mouse);
- gtk_widget_set_visible (WID ("touchpad_enabled_switch"),
+ gtk_widget_set_visible (WID ("mouse-frame"), d->have_mouse);
+ gtk_widget_set_visible (WID ("touchpad-toggle-switch"),
show_touchpad_enabling_switch (d));
}
@@ -335,9 +371,8 @@ cc_mouse_properties_init (CcMouseProperties *object)
d->changing_scroll = FALSE;
- gtk_container_add (GTK_CONTAINER (object), WID ("prefs_widget"));
+ gtk_container_add (GTK_CONTAINER (object), WID ("scrolled-window"));
- create_dialog (d);
setup_dialog (d);
}
diff --git a/panels/mouse/gnome-mouse-properties.ui b/panels/mouse/gnome-mouse-properties.ui
index 582ab55..81430bf 100644
--- a/panels/mouse/gnome-mouse-properties.ui
+++ b/panels/mouse/gnome-mouse-properties.ui
@@ -16,610 +16,620 @@
<property name="step_increment">100</property>
<property name="page_increment">100</property>
</object>
- <object class="GtkBox" id="prefs_widget">
+ <object class="GtkScrolledWindow" id="scrolled-window">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="shadow_type">none</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="height_request">460</property>
+ <child>
+ <object class="GtkBox" id="prefs_widget">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_start">134</property>
+ <property name="margin_end">134</property>
+ <property name="margin_top">12</property>
+ <property name="margin_bottom">12</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkFrame" id="general-frame">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="valign">start</property>
- <property name="orientation">vertical</property>
+ <property name="shadow_type">in</property>
+ <property name="margin_top">12</property>
+ <property name="margin_bottom">12</property>
+ <property name="label" translatable="yes">General</property>
+ <property name="shadow_type">none</property>
+ <child type="label">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="margin_start">3</property>
+ <property name="label" translatable="yes">General</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
<child>
- <object class="GtkVBox" id="vbox">
+ <object class="GtkFrame" id="general-frame-listbox">
<property name="visible">True</property>
<property name="can_focus">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="border_width">10</property>
- <property name="spacing">10</property>
+ <property name="shadow_type">in</property>
+ <property name="margin_top">12</property>
+ <property name="margin_bottom">12</property>
+ <property name="shadow_type">in</property>
<child>
- <object class="GtkVBox" id="primary_button_vbox">
+ <object class="GtkListBox" id="general-listbox">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <child>
- <object class="GtkLabel" id="label27">
- <property name="visible">True</property>
- <property name="can_focus">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="xalign">0</property>
- <property name="label" translatable="yes">General</property>
- <property name="margin_start">5</property>
- <property name="margin_end">5</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
+ <property name="can_focus">True</property>
+ <property name="selection_mode">none</property>
+ <child>
+ <object class="GtkListBoxRow" id="primary-button-row">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
<child>
- <object class="GtkTable" id="table3">
+ <object class="GtkGrid" id="primary-button-grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="n_rows">2</property>
- <property name="n_columns">3</property>
- <property name="column_spacing">40</property>
- <property name="row_spacing">10</property>
- <property name="margin_top">5</property>
- <property name="margin_start">20</property>
- <property name="margin_end">240</property>
+ <property name="row_spacing">0</property>
+ <property name="column_spacing">16</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">6</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
<child>
- <object class="GtkHBox" id="hbox5">
+ <object class="GtkLabel" id="primary-button-label">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">5</property>
- <child>
- <object class="GtkLabel" id="double_click_slow_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes" context="double click,
speed">Slow</property>
- <attributes>
- <attribute name="scale" value="0.82999999999999996"/>
- </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="double_click_scale">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">adjustment4</property>
- <property name="inverted">True</property>
- <property name="draw_value">False</property>
- <child internal-child="accessible">
- <object class="AtkObject" id="double_click_scale-atkobject">
- <property name="AtkObject::accessible-description"
translatable="yes">Double-click timeout</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="double_click_fast_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes" context="double click,
speed">Fast</property>
- <attributes>
- <attribute name="scale" value="0.82999999999999996"/>
- </attributes>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">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>
- <property name="x_padding">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="double_click_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="halign">start</property>
+ <property name="hexpand">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">_Double-click</property>
+ <property name="label" translatable="yes">Primary Button</property>
<property name="use_underline">True</property>
- <property name="justify">center</property>
- <property name="mnemonic_widget">double_click_scale</property>
+ <property name="mnemonic_widget">primary-button-chooser-grid</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>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkLabel" id="primary_button_label">
+ <object class="GtkLabel" id="primary-button-description">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="halign">start</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">Primary _button</property>
- <property name="use_underline">True</property>
- <property name="mnemonic_widget">right_handed_radio</property>
+ <property name="label" translatable="yes">For mice and touchpads.</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
</object>
<packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkBox" id="primary_button_box">
+ <object class="GtkGrid" id="primary-button-chooser-grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="spacing">10</property>
+ <style>
+ <class name="linked"/>
+ </style>
<child>
- <object class="GtkRadioButton" id="right_handed_radio">
- <property name="label" translatable="yes" context="mouse, left button as
primary">_Left</property>
- <property name="use_action_appearance">False</property>
+ <object class="GtkToggleButton" id="primary-button-left">
<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_action_appearance">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="hexpand">True</property>
+ <property name="label">Left</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
<child>
- <object class="GtkRadioButton" id="left_handed_radio">
- <property name="label" translatable="yes" context="mouse, right button
as primary">_Right</property>
- <property name="use_action_appearance">False</property>
+ <object class="GtkToggleButton" id="primary-button-right">
<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_action_appearance">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- <property name="group">right_handed_radio</property>
+ <property name="hexpand">True</property>
+ <property name="label">Right</property>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">3</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">2</property>
</packing>
</child>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
<child>
- <object class="GtkVBox" id="mouse_vbox">
+ <object class="GtkListBoxRow" id="natural-scrolling-row">
<property name="visible">True</property>
- <property name="can_focus">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="can_focus">True</property>
<child>
- <object class="GtkSeparator" id="separator2">
+ <object class="GtkGrid" id="natural-scrolling-grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="label29">
- <property name="visible">True</property>
- <property name="can_focus">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="xalign">0</property>
- <property name="label" translatable="yes">Mouse</property>
- <property name="margin_top">10</property>
- <property name="margin_start">5</property>
- <property name="margin_end">5</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkTable" id="table2">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="n_columns">3</property>
- <property name="column_spacing">40</property>
- <property name="row_spacing">5</property>
- <property name="margin_top">5</property>
- <property name="margin_start">20</property>
- <property name="margin_end">240</property>
+ <property name="row_spacing">0</property>
+ <property name="column_spacing">16</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">6</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
<child>
- <object class="GtkLabel" id="pointer_speed_label">
+ <object class="GtkLabel" id="natural-scrolling-label">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="halign">start</property>
+ <property name="hexpand">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">_Pointer speed</property>
+ <property name="label" translatable="yes" comments="Translators: This switch
reverses the scrolling direction for touchpads. The term used comes from OS X so use the same translation if
possible. ">Natural Scrolling</property>
<property name="use_underline">True</property>
- <property name="justify">center</property>
- <property name="mnemonic_widget">pointer_speed_scale</property>
+ <property name="mnemonic_widget">natural-scrolling-switch</property>
</object>
<packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options">GTK_FILL</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox1">
+ <object class="GtkLabel" id="natural-scrolling-description">
<property name="visible">True</property>
<property name="can_focus">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="spacing">5</property>
- <child>
- <object class="GtkLabel" id="pointer_speed_slow_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes" context="mouse pointer,
speed">Slow</property>
- <property name="justify">center</property>
- <attributes>
- <attribute name="style" value="normal"/>
- <attribute name="scale" value="0.82999999999999996"/>
- </attributes>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
- <child>
- <object class="GtkScale" id="pointer_speed_scale">
- <property name="orientation">horizontal</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="adjustment">adjustment1</property>
- <property name="draw_value">False</property>
- <property name="has_origin">False</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="pointer_speed_fast_label">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="xalign">0</property>
- <property name="label" translatable="yes" context="mouse pointer,
speed">Fast</property>
- <property name="justify">center</property>
- <attributes>
- <attribute name="style" value="normal"/>
- <attribute name="scale" value="0.82999999999999996"/>
- </attributes>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
- </child>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">For mice and touchpads.</property>
+ <style>
+ <class name="dim-label"/>
+ </style>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSwitch" id="natural-scrolling-switch">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="halign">end</property>
+ <property name="valign">center</property>
</object>
<packing>
<property name="left_attach">1</property>
- <property name="right_attach">3</property>
- <property name="x_padding">2</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">2</property>
</packing>
</child>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
</child>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">2</property>
- </packing>
</child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkFrame" id="mouse-frame">
+ <property name="visible">False</property>
+ <property name="can_focus">False</property>
+ <property name="shadow_type">in</property>
+ <property name="margin_top">12</property>
+ <property name="margin_bottom">12</property>
+ <property name="shadow_type">none</property>
+ <child type="label">
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="margin_start">3</property>
+ <property name="label" translatable="yes">Mouse</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ <child>
+ <object class="GtkFrame" id="mouse-frame-listbox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="shadow_type">in</property>
+ <property name="margin_top">12</property>
+ <property name="margin_bottom">12</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkListBox" id="mouse-listbox">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="selection_mode">none</property>
<child>
- <object class="GtkVBox" id="touchpad_vbox">
+ <object class="GtkListBoxRow" id="mouse-row">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <child>
- <object class="GtkSeparator" id="separator1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- </object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
- </child>
+ <property name="can_focus">True</property>
<child>
- <object class="GtkBox" id="box3">
+ <object class="GtkGrid" id="mouse-grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="margin_top">10</property>
- <property name="margin_start">5</property>
- <property name="margin_end">5</property>
+ <property name="row_spacing">0</property>
+ <property name="column_spacing">32</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">12</property>
+ <property name="margin_top">12</property>
+ <property name="margin_bottom">12</property>
<child>
- <object class="GtkLabel" id="label6">
+ <object class="GtkLabel" id="mouse-label">
<property name="visible">True</property>
<property name="can_focus">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="xalign">0</property>
- <property name="label" translatable="yes">Touchpad</property>
- <property name="mnemonic-widget">touchpad_enabled_switch</property>
- <attributes>
- <attribute name="weight" value="bold"/>
- </attributes>
+ <property name="label" translatable="yes">Mouse Speed</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">primary-button-chooser-grid</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkSwitch" id="touchpad_enabled_switch">
- <property name="use_action_appearance">False</property>
+ <object class="GtkScale" id="mouse-speed-scale">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="halign">end</property>
- <property name="use_action_appearance">False</property>
- </object>
- <packing>
+ <property name="adjustment">adjustment1</property>
+ <property name="inverted">True</property>
+ <property name="draw_value">False</property>
+ <property name="width-request">200</property>
<property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="mouse_speed_scale-atkobject">
+ <property name="AtkObject::accessible-description"
translatable="yes">Double-click timeout</property>
+ </object>
+ </child>
+ </object>
</child>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkFrame" id="touchpad-frame">
+ <property name="visible">False</property>
+ <property name="can_focus">False</property>
+ <property name="shadow_type">in</property>
+ <property name="margin_top">12</property>
+ <property name="margin_bottom">12</property>
+ <property name="shadow_type">none</property>
+ <child type="label">
+ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="margin_start">3</property>
+ <property name="label" translatable="yes">Touchpad</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ </child>
+ <child>
+ <object class="GtkFrame" id="touchpad-frame-listbox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="shadow_type">in</property>
+ <property name="margin_top">12</property>
+ <property name="margin_bottom">12</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkBox" id="touchpad-box">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkListBox" id="touchpad-listbox">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="selection_mode">none</property>
<child>
- <object class="GtkBox" id="touchpad_options_box">
+ <object class="GtkListBoxRow" id="touchpad-toggle-row">
<property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="orientation">vertical</property>
- <property name="spacing">15</property>
- <property name="margin_top">5</property>
- <property name="margin_start">20</property>
- <property name="margin_end">20</property>
+ <property name="can_focus">True</property>
<child>
- <object class="GtkTable" id="table1">
+ <object class="GtkGrid" id="touchpad-toggle-grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="margin_end">220</property>
- <property name="n_columns">3</property>
- <property name="column_spacing">40</property>
- <property name="row_spacing">5</property>
+ <property name="row_spacing">0</property>
+ <property name="column_spacing">32</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">6</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
<child>
- <object class="GtkLabel" id="touchpad_pointer_speed_label">
+ <object class="GtkLabel" id="touchpad-toggle-label">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="halign">start</property>
+ <property name="hexpand">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">_Pointer speed</property>
+ <property name="label" translatable="yes">Touchpad</property>
<property name="use_underline">True</property>
- <property name="justify">center</property>
- <property name="mnemonic_widget">touchpad_pointer_speed_scale</property>
+ <property name="mnemonic_widget">touchpad-toggle-switch</property>
</object>
<packing>
- <property name="x_options">GTK_FILL</property>
- <property name="y_options"></property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkHBox" id="hbox7">
+ <object class="GtkSwitch" id="touchpad-toggle-switch">
<property name="visible">True</property>
- <property name="can_focus">False</property>
+ <property name="can_focus">True</property>
+ <property name="halign">end</property>
+ <property name="valign">center</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">5</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">2</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBoxRow" id="touchpad-separator-row1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkSeparator" id="touchpad-separator1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkRevealer" id="touchpad-options-revealer">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkListBox" id="touchpad-options-listbox">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="selection_mode">none</property>
+ <child>
+ <object class="GtkListBoxRow" id="touchpad-speed-row">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <child>
+ <object class="GtkGrid" id="touchpad-speed-grid">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="row_spacing">0</property>
+ <property name="column_spacing">32</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">6</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
<child>
- <object class="GtkLabel" id="touchpad_pointer_speed_slow_label">
+ <object class="GtkLabel" id="touchpad-speed-label">
<property name="visible">True</property>
<property name="can_focus">False</property>
- <property name="xalign">1</property>
- <property name="label" translatable="yes" context="touchpad pointer,
speed">Slow</property>
- <property name="justify">center</property>
- <attributes>
- <attribute name="scale" value="0.82999999999999996"/>
- </attributes>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Touchpad Speed</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">touchpad-speed-scale</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
</packing>
</child>
<child>
- <object class="GtkScale" id="touchpad_pointer_speed_scale">
- <property name="orientation">horizontal</property>
+ <object class="GtkScale" id="touchpad-speed-scale">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="adjustment">adjustment11</property>
+ <property name="inverted">True</property>
<property name="draw_value">False</property>
- <property name="has_origin">False</property>
+ <property name="width-request">200</property>
+ <property name="hexpand">True</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="touchpad_speed_scale-atkobject">
+ <property name="AtkObject::accessible-description"
translatable="yes">Double-click timeout</property>
+ </object>
+ </child>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBoxRow" id="tap-to-click-row">
+ <property name="visible">False</property>
+ <property name="can_focus">True</property>
+ <child>
+ <object class="GtkGrid" id="tap-to-click-grid">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="row_spacing">0</property>
+ <property name="column_spacing">32</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">6</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
<child>
- <object class="GtkLabel" id="touchpad_pointer_speed_fast_label">
+ <object class="GtkLabel" id="tap-to-click-label">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="hexpand">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes" context="touchpad pointer,
speed">Fast</property>
- <property name="justify">center</property>
- <attributes>
- <attribute name="scale" value="0.82999999999999996"/>
- </attributes>
+ <property name="label" translatable="yes">Tap to Click</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">tap-to-click-switch</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">2</property>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSwitch" id="tap-to-click-switch">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="halign">end</property>
+ <property name="valign">center</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">2</property>
</packing>
</child>
</object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">3</property>
- <property name="y_options"></property>
- <property name="x_padding">2</property>
- </packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
- </packing>
</child>
<child>
- <object class="GtkGrid" id="grid1">
- <property name="visible">True</property>
- <property name="can_focus">False</property>
- <property name="row_spacing">5</property>
- <property name="column_spacing">10</property>
+ <object class="GtkListBoxRow" id="two-finger-scrolling-row">
+ <property name="visible">False</property>
+ <property name="can_focus">True</property>
+ <property name="no_show_all">True</property>
<child>
- <object class="GtkCheckButton" id="tap_to_click_toggle">
- <property name="label" translatable="yes">Tap to _click</property>
- <property name="use_action_appearance">False</property>
+ <object class="GtkGrid" id="two-finger-scrolling-grid">
<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_action_appearance">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can_focus">False</property>
+ <property name="row_spacing">0</property>
+ <property name="column_spacing">32</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">6</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
+ <child>
+ <object class="GtkLabel" id="two-finger-scrolling-label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Two Finger
Scrolling</property>
+ <property name="use_underline">True</property>
+ <property
name="mnemonic_widget">two-finger-scrolling-switch</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSwitch" id="two-finger-scrolling-switch">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="halign">end</property>
+ <property name="valign">center</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">2</property>
+ </packing>
+ </child>
</object>
- <packing>
- <property name="left_attach">0</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
- </child>
- <child>
- <object class="GtkCheckButton" id="two_finger_scroll_toggle">
- <property name="label" translatable="yes">Two _finger scroll</property>
- <property name="use_action_appearance">False</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_action_appearance">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkListBoxRow" id="edge-scrolling-row">
+ <property name="visible">False</property>
+ <property name="can_focus">True</property>
+ <property name="no_show_all">True</property>
<child>
- <object class="GtkCheckButton" id="natural_scroll_toggle">
- <property name="label" translatable="yes" comments="Translators: This
switch reverses the scrolling direction for touchpads. The term used comes from OS X so use the same
translation if possible. ">_Natural scrolling</property>
- <property name="use_action_appearance">False</property>
+ <object class="GtkGrid" id="edge-scrolling-grid">
<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_action_appearance">False</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="can_focus">False</property>
+ <property name="row_spacing">0</property>
+ <property name="column_spacing">32</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">6</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
+ <child>
+ <object class="GtkLabel" id="edge-scrolling-label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="hexpand">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Edge Scrolling</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">edge-scrolling-switch</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSwitch" id="edge-scrolling-switch">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="halign">end</property>
+ <property name="valign">center</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="width">1</property>
+ <property name="height">2</property>
+ </packing>
+ </child>
</object>
- <packing>
- <property name="left_attach">2</property>
- <property name="top_attach">0</property>
- <property name="width">1</property>
- <property name="height">1</property>
- </packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">1</property>
- </packing>
</child>
+ </object>
+ </child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">2</property>
- </packing>
</child>
</object>
- <packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="position">4</property>
- </packing>
</child>
</object>
- <packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
- </packing>
</child>
</object>
+ </child>
+ </object>
+ </child>
+ </object>
</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]