[gnome-control-center] universal-access: add Repeat Keys to the Typing section
- From: Felipe Borges <felipeborges src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] universal-access: add Repeat Keys to the Typing section
- Date: Mon, 2 Nov 2015 14:03:46 +0000 (UTC)
commit 0b53a560db3aae0eeb1ca30e4f5ab6b9e87503f5
Author: Felipe Borges <feborges redhat com>
Date: Fri Oct 30 10:19:23 2015 +0100
universal-access: add Repeat Keys to the Typing section
According to the new Keyboard panel design, this setting belongs
to the Universal Access panel.
https://bugzilla.gnome.org/show_bug.cgi?id=757464
panels/universal-access/cc-ua-panel.c | 44 +++++
panels/universal-access/uap.ui | 289 +++++++++++++++++++++++++++++++++
2 files changed, 333 insertions(+), 0 deletions(-)
---
diff --git a/panels/universal-access/cc-ua-panel.c b/panels/universal-access/cc-ua-panel.c
index bf0041e..278a334 100644
--- a/panels/universal-access/cc-ua-panel.c
+++ b/panels/universal-access/cc-ua-panel.c
@@ -78,6 +78,10 @@
#define KEY_MOUSEKEYS_ENABLED "mousekeys-enable"
#define KEY_TOGGLEKEYS_ENABLED "togglekeys-enable"
+/* keyboard desktop settings */
+#define KEYBOARD_DESKTOP_SETTINGS "org.gnome.desktop.peripherals.keyboard"
+#define KEY_REPEAT_KEYS "repeat"
+
/* mouse settings */
#define MOUSE_SETTINGS "org.gnome.desktop.a11y.mouse"
#define KEY_SECONDARY_CLICK_ENABLED "secondary-click-enabled"
@@ -103,6 +107,7 @@ struct _CcUaPanelPrivate
GSettings *interface_settings;
GSettings *kb_settings;
GSettings *mouse_settings;
+ GSettings *kb_desktop_settings;
GSettings *application_settings;
GSettings *gsd_mouse_settings;
@@ -566,6 +571,19 @@ cc_ua_panel_init_hearing (CcUaPanel *self)
/* typing/keyboard section */
static void
+on_repeat_keys_toggled (GSettings *settings, const gchar *key, CcUaPanel *self)
+{
+ gboolean on;
+
+ on = g_settings_get_boolean (settings, KEY_REPEAT_KEYS);
+
+ gtk_label_set_text (GTK_LABEL (WID ("value_repeat_keys")), on ? _("On") : _("Off"));
+
+ gtk_widget_set_sensitive (WID ("repeat-keys-delay-grid"), on);
+ gtk_widget_set_sensitive (WID ("repeat-keys-speed-grid"), on);
+}
+
+static void
update_accessx_label (GSettings *settings, const gchar *key, CcUaPanel *self)
{
gboolean on;
@@ -600,6 +618,31 @@ cc_ua_panel_init_keyboard (CcUaPanel *self)
sw, "active",
G_SETTINGS_BIND_DEFAULT);
+ /* Repeat keys */
+ g_signal_connect (priv->kb_desktop_settings, "changed",
+ G_CALLBACK (on_repeat_keys_toggled), self);
+
+ dialog = WID ("repeat_keys_dialog");
+ priv->toplevels = g_slist_prepend (priv->toplevels, dialog);
+
+ g_object_set_data (G_OBJECT (WID ("row_repeat_keys")), "dialog", dialog);
+
+ g_signal_connect (dialog, "delete-event",
+ G_CALLBACK (gtk_widget_hide_on_delete), NULL);
+
+ sw = WID ("repeat_keys_switch");
+ g_settings_bind (priv->kb_desktop_settings, KEY_REPEAT_KEYS,
+ sw, "active",
+ G_SETTINGS_BIND_DEFAULT);
+ on_repeat_keys_toggled (priv->kb_desktop_settings, NULL, self);
+
+ g_settings_bind (priv->kb_desktop_settings, "delay",
+ gtk_range_get_adjustment (GTK_RANGE (WID ("repeat_keys_delay_scale"))), "value",
+ G_SETTINGS_BIND_DEFAULT);
+ g_settings_bind (priv->kb_desktop_settings, "repeat-interval",
+ gtk_range_get_adjustment (GTK_RANGE (WID ("repeat_keys_speed_scale"))), "value",
+ G_SETTINGS_BIND_DEFAULT);
+
/* accessx */
g_signal_connect (priv->kb_settings, "changed",
G_CALLBACK (update_accessx_label), self);
@@ -807,6 +850,7 @@ cc_ua_panel_init (CcUaPanel *self)
priv->a11y_settings = g_settings_new (A11Y_SETTINGS);
priv->wm_settings = g_settings_new (WM_SETTINGS);
priv->kb_settings = g_settings_new (KEYBOARD_SETTINGS);
+ priv->kb_desktop_settings = g_settings_new (KEYBOARD_DESKTOP_SETTINGS);
priv->mouse_settings = g_settings_new (MOUSE_SETTINGS);
priv->gsd_mouse_settings = g_settings_new (GSD_MOUSE_SETTINGS);
priv->application_settings = g_settings_new (APPLICATION_SETTINGS);
diff --git a/panels/universal-access/uap.ui b/panels/universal-access/uap.ui
index dc1da63..c49eab9 100644
--- a/panels/universal-access/uap.ui
+++ b/panels/universal-access/uap.ui
@@ -7,6 +7,20 @@
<property name="step_increment">100</property>
<property name="page_increment">100</property>
</object>
+ <object class="GtkAdjustment" id="repeat_delay_adjustment">
+ <property name="lower">100</property>
+ <property name="upper">2000</property>
+ <property name="value">500</property>
+ <property name="step_increment">10</property>
+ <property name="page_increment">10</property>
+ </object>
+ <object class="GtkAdjustment" id="repeat_speed_adjustment">
+ <property name="lower">0.5</property>
+ <property name="upper">110</property>
+ <property name="value">33.3</property>
+ <property name="step_increment">1</property>
+ <property name="page_increment">1</property>
+ </object>
<!-- interface-requires gtk+ 3.0 -->
<object class="GtkScrolledWindow" id="universal_access_panel">
<property name="visible">True</property>
@@ -553,6 +567,52 @@
</object>
</child>
<child>
+ <object class="GtkListBoxRow" id="row_repeat_keys">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <child>
+ <object class="GtkBox" id="box_repeat_keys">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkLabel" id="heading_repeat_keys">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_start">20</property>
+ <property name="margin_end">20</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Repeat Keys</property>
+ <property name="use_underline">True</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="value_repeat_keys">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="margin_start">20</property>
+ <property name="margin_end">20</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">6</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">Off</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
<object class="GtkListBoxRow" id="row_accessx">
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -1162,6 +1222,235 @@
<property name="step_increment">10</property>
<property name="page_increment">10</property>
</object>
+ <object class="GtkDialog" id="repeat_keys_dialog">
+ <property name="can_focus">False</property>
+ <property name="border_width">5</property>
+ <property name="title" translatable="yes">Repeat Keys</property>
+ <property name="resizable">False</property>
+ <property name="modal">True</property>
+ <property name="type_hint">dialog</property>
+ <property name="use_header_bar">1</property>
+ <child internal-child="headerbar">
+ <object class="GtkHeaderBar" id="repeat_keys_headerbar">
+ <property name="visible">True</property>
+ <child>
+ <object class="GtkSwitch" id="repeat_keys_switch">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </object>
+ <packing>
+ <property name="pack_type">end</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="repeat-keys-vbox5">
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="repeat-keys-description">
+ <property name="visible">True</property>
+ <property name="use_underline">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Key presses repeat when key is held down.</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">6</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">12</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="repeat-keys-delay-grid">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">6</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">12</property>
+ <property name="orientation">vertical</property>
+ <property name="row_spacing">18</property>
+ <property name="column_spacing">24</property>
+ <child>
+ <object class="GtkBox" id="repeat-keys-box6">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkBox" id="repeat-keys-box7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="repeat-keys-delay-label">
+ <property name="visible">True</property>
+ <property name="use_underline">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Delay</property>
+ <property name="mnemonic_widget">repeat_keys_delay_scale</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </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="GtkHScale" id="repeat_keys_delay_scale">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="adjustment">repeat_delay_adjustment</property>
+ <property name="draw_value">False</property>
+ <property name="width-request">400</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="repeat_delay_scale-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes">Repeat keys
delay</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkGrid" id="repeat-keys-speed-grid">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="margin_start">12</property>
+ <property name="margin_end">6</property>
+ <property name="margin_top">6</property>
+ <property name="margin_bottom">12</property>
+ <property name="orientation">vertical</property>
+ <property name="row_spacing">18</property>
+ <property name="column_spacing">24</property>
+ <child>
+ <object class="GtkBox" id="repeat-keys-speed-box7">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="valign">start</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkBox" id="repeat-keys-speed-box8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkLabel" id="repeat-keys-speed-label">
+ <property name="visible">True</property>
+ <property name="use_underline">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Speed</property>
+ <property name="mnemonic_widget">repeat_keys_speed_scale</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ </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="GtkHScale" id="repeat_keys_speed_scale">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hexpand">True</property>
+ <property name="adjustment">repeat_speed_adjustment</property>
+ <property name="draw_value">False</property>
+ <property name="width-request">200</property>
+ <child internal-child="accessible">
+ <object class="AtkObject" id="repeat_speed_scale-atkobject">
+ <property name="AtkObject::accessible-description" translatable="yes">Repeat keys
speed</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="width">1</property>
+ <property name="height">1</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>
+ <object class="GtkSizeGroup" id="repeat-keys-dialog-labels-sizegroup">
+ <widgets>
+ <widget name="repeat-keys-delay-label"/>
+ <widget name="repeat-keys-speed-label"/>
+ </widgets>
+ </object>
+ <object class="GtkSizeGroup" id="repeat-keys-dialog-scales-sizegroup">
+ <widgets>
+ <widget name="repeat_keys_delay_scale"/>
+ <widget name="repeat_keys_speed_scale"/>
+ </widgets>
+ </object>
<object class="GtkDialog" id="typing_dialog">
<property name="can_focus">False</property>
<property name="border_width">5</property>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]