[Xfce4-commits] <xfce4-settings:master> Make touchpad type delay configurable (bug #8948).
Nick Schermer
noreply at xfce.org
Sun Mar 17 17:56:01 CET 2013
Updating branch refs/heads/master
to 1e5662d9c5b5a50de011c5324902824ca905ba23 (commit)
from c1ed2d22da004f475f1e240803859ab0ac7335ca (commit)
commit 1e5662d9c5b5a50de011c5324902824ca905ba23
Author: Philipp Matthias Schafer <philipp.schaefer at gmail.com>
Date: Sun Mar 17 17:54:51 2013 +0100
Make touchpad type delay configurable (bug #8948).
dialogs/mouse-settings/main.c | 32 +++++++-
dialogs/mouse-settings/mouse-dialog.glade | 121 +++++++++++++++++++++--------
xfsettingsd/pointers.c | 38 +++++----
3 files changed, 139 insertions(+), 52 deletions(-)
diff --git a/dialogs/mouse-settings/main.c b/dialogs/mouse-settings/main.c
index f4b475b..46168e7 100644
--- a/dialogs/mouse-settings/main.c
+++ b/dialogs/mouse-settings/main.c
@@ -136,6 +136,18 @@ mouse_settings_format_value_ms (GtkScale *scale,
+#ifdef DEVICE_PROPERTIES
+static gchar *
+mouse_settings_format_value_s (GtkScale *scale,
+ gdouble value)
+{
+ /* seconds value for some of the scales in the dialog */
+ return g_strdup_printf (_("%.1f s"), value);
+}
+#endif
+
+
+
#ifdef HAVE_XCURSOR
static GdkPixbuf *
@@ -1582,6 +1594,8 @@ main (gint argc, gchar **argv)
XExtensionVersion *version = NULL;
#ifdef DEVICE_PROPERTIES
gchar *syndaemon;
+ GObject *synaptics_disable_while_type;
+ GObject *synaptics_disable_duration_table;
#endif
/* setup translation domain */
@@ -1703,12 +1717,26 @@ main (gint argc, gchar **argv)
G_CALLBACK (mouse_settings_device_reset), builder);
#ifdef DEVICE_PROPERTIES
- object = gtk_builder_get_object (builder, "synaptics-disable-while-type");
+ synaptics_disable_while_type = gtk_builder_get_object (builder, "synaptics-disable-while-type");
syndaemon = g_find_program_in_path ("syndaemon");
gtk_widget_set_sensitive (GTK_WIDGET (object), syndaemon != NULL);
g_free (syndaemon);
xfconf_g_property_bind (pointers_channel, "/DisableTouchpadWhileTyping",
- G_TYPE_BOOLEAN, G_OBJECT (object), "active");
+ G_TYPE_BOOLEAN, G_OBJECT (synaptics_disable_while_type), "active");
+
+ synaptics_disable_duration_table = gtk_builder_get_object (builder, "synaptics-disable-duration-box");
+
+ g_object_bind_property (G_OBJECT (synaptics_disable_while_type), "active",
+ G_OBJECT (synaptics_disable_duration_table), "sensitive",
+ G_BINDING_SYNC_CREATE);
+
+ object = gtk_builder_get_object (builder, "synaptics-disable-duration-scale");
+ g_signal_connect (G_OBJECT (object), "format-value",
+ G_CALLBACK (mouse_settings_format_value_s), NULL);
+
+ object = gtk_builder_get_object (builder, "synaptics-disable-duration");
+ xfconf_g_property_bind (pointers_channel, "/DisableTouchpadDuration",
+ G_TYPE_DOUBLE, G_OBJECT (object), "value");
object = gtk_builder_get_object (builder, "synaptics-tap-to-click");
g_signal_connect_swapped (G_OBJECT (object), "toggled",
diff --git a/dialogs/mouse-settings/mouse-dialog.glade b/dialogs/mouse-settings/mouse-dialog.glade
index d3aab0d..dc1f208 100644
--- a/dialogs/mouse-settings/mouse-dialog.glade
+++ b/dialogs/mouse-settings/mouse-dialog.glade
@@ -42,6 +42,13 @@
<property name="can_focus">False</property>
<property name="stock">gtk-revert-to-saved</property>
</object>
+ <object class="GtkAdjustment" id="synaptics-disable-duration">
+ <property name="lower">0.10000000000000001</property>
+ <property name="upper">4</property>
+ <property name="value">2</property>
+ <property name="step_increment">0.10000000000000001</property>
+ <property name="page_increment">1</property>
+ </object>
<object class="GtkListStore" id="synaptics-scroll-store">
<columns>
<!-- column-name title -->
@@ -75,6 +82,32 @@
<property name="step_increment">1</property>
<property name="page_increment">11</property>
</object>
+ <object class="GtkListStore" id="wacom-rotation-store">
+ <columns>
+ <!-- column-name rotation -->
+ <column type="gint"/>
+ <!-- column-name title -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0">0</col>
+ <col id="1" translatable="yes">None (right-handed)</col>
+ </row>
+ <row>
+ <col id="0">3</col>
+ <col id="1" translatable="yes">Half (left-handed)</col>
+ </row>
+ <row>
+ <col id="0">1</col>
+ <col id="1" translatable="yes">Clockwise</col>
+ </row>
+ <row>
+ <col id="0">2</col>
+ <col id="1" translatable="yes">Counterclockwise</col>
+ </row>
+ </data>
+ </object>
<object class="XfceTitledDialog" id="mouse-dialog">
<property name="can_focus">False</property>
<property name="title" translatable="yes">Mouse and Touchpad</property>
@@ -93,8 +126,8 @@
<property name="can_focus">False</property>
<property name="layout_style">end</property>
<child>
- <object class="GtkButton" id="button2">
- <property name="label">gtk-help</property>
+ <object class="GtkButton" id="button1">
+ <property name="label">gtk-close</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -105,12 +138,11 @@
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
- <property name="secondary">True</property>
</packing>
</child>
<child>
- <object class="GtkButton" id="button1">
- <property name="label">gtk-close</property>
+ <object class="GtkButton" id="button2">
+ <property name="label">gtk-help</property>
<property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
@@ -121,6 +153,7 @@
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
+ <property name="secondary">True</property>
</packing>
</child>
</object>
@@ -490,6 +523,54 @@
</packing>
</child>
<child>
+ <object class="GtkAlignment" id="alignment8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="left_padding">18</property>
+ <child>
+ <object class="GtkHBox" id="synaptics-disable-duration-box">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="label5">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Duratio_n:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">synaptics-disable-duration-scale</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHScale" id="synaptics-disable-duration-scale">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="update_policy">delayed</property>
+ <property name="adjustment">synaptics-disable-duration</property>
+ <property name="round_digits">1</property>
+ <property name="value_pos">right</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkCheckButton" id="synaptics-tap-to-click">
<property name="label" translatable="yes">Tap touchpad to clic_k</property>
<property name="use_action_appearance">False</property>
@@ -502,7 +583,7 @@
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
</object>
@@ -1168,8 +1249,8 @@
</object>
</child>
<action-widgets>
- <action-widget response="-11">button2</action-widget>
<action-widget response="0">button1</action-widget>
+ <action-widget response="-11">button2</action-widget>
</action-widgets>
</object>
<object class="GtkListStore" id="wacom-mode-store">
@@ -1190,30 +1271,4 @@
</row>
</data>
</object>
- <object class="GtkListStore" id="wacom-rotation-store">
- <columns>
- <!-- column-name rotation -->
- <column type="gint"/>
- <!-- column-name title -->
- <column type="gchararray"/>
- </columns>
- <data>
- <row>
- <col id="0">0</col>
- <col id="1" translatable="yes">None (right-handed)</col>
- </row>
- <row>
- <col id="0">3</col>
- <col id="1" translatable="yes">Half (left-handed)</col>
- </row>
- <row>
- <col id="0">1</col>
- <col id="1" translatable="yes">Clockwise</col>
- </row>
- <row>
- <col id="0">2</col>
- <col id="1" translatable="yes">Counterclockwise</col>
- </row>
- </data>
- </object>
</interface>
diff --git a/xfsettingsd/pointers.c b/xfsettingsd/pointers.c
index e7192e7..d081c0d 100644
--- a/xfsettingsd/pointers.c
+++ b/xfsettingsd/pointers.c
@@ -221,7 +221,9 @@ xfce_pointers_helper_syndaemon_check (XfcePointersHelper *helper)
Atom *props;
gint i, nprops;
gboolean have_synaptics = FALSE;
- gchar *args[] = { "syndaemon", "-i", "2.0", "-K", "-R", NULL };
+ gdouble disable_duration;
+ gchar disable_duration_string[64];
+ gchar *args[] = { "syndaemon", "-i", disable_duration_string, "-K", "-R", NULL };
GError *error = NULL;
/* only stop a running daemon */
@@ -272,25 +274,26 @@ xfce_pointers_helper_syndaemon_check (XfcePointersHelper *helper)
start_stop_daemon:
+ /* stop the daemon in any case */
+ xfce_pointers_helper_syndaemon_stop (helper);
+
if (have_synaptics)
{
- if (helper->syndaemon_pid == 0)
+ disable_duration = xfconf_channel_get_double (helper->channel,
+ "/DisableTouchpadDuration",
+ 2.0);
+ g_snprintf (disable_duration_string, sizeof (disable_duration_string),
+ "%.1f", disable_duration);
+
+ if (!g_spawn_async (NULL, args, NULL, G_SPAWN_SEARCH_PATH,
+ NULL, NULL, &helper->syndaemon_pid, &error))
{
- if (!g_spawn_async (NULL, args, NULL, G_SPAWN_SEARCH_PATH,
- NULL, NULL, &helper->syndaemon_pid, &error))
- {
- g_critical ("Spawning syndaemon failed: %s", error->message);
- g_error_free (error);
- }
-
- xfsettings_dbg (XFSD_DEBUG_POINTERS, "Started syndaemon with pid %d",
- helper->syndaemon_pid);
+ g_critical ("Spawning syndaemon failed: %s", error->message);
+ g_error_free (error);
}
- }
- else
- {
- /* stop the daemon */
- xfce_pointers_helper_syndaemon_stop (helper);
+
+ xfsettings_dbg (XFSD_DEBUG_POINTERS, "Started syndaemon with pid %d",
+ helper->syndaemon_pid);
}
#endif
}
@@ -917,7 +920,8 @@ xfce_pointers_helper_channel_property_changed (XfconfChannel *channel,
return;
/* check the daemon status */
- if (strcmp (property_name, "/DisableTouchpadWhileTyping") == 0)
+ if ((strcmp (property_name, "/DisableTouchpadWhileTyping") == 0) ||
+ (strcmp (property_name, "/DisableTouchpadDuration") == 0))
{
xfce_pointers_helper_syndaemon_check (helper);
return;
More information about the Xfce4-commits
mailing list