From 9b4de2f592cff6be5203f7c01834618e06ce4397 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=BCller?= Date: Thu, 1 Nov 2012 21:01:59 +0100 Subject: [PATCH 1/5] mouse settings dialog: add hide-cursor option MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Andreas Müller --- dialogs/mouse-settings/main.c | 56 +++++++++++++++++++++++++++++ dialogs/mouse-settings/mouse-dialog.glade | 28 ++++++++++++++- 2 files changed, 83 insertions(+), 1 deletions(-) diff --git a/dialogs/mouse-settings/main.c b/dialogs/mouse-settings/main.c index f4b475b..c72940c 100644 --- a/dialogs/mouse-settings/main.c +++ b/dialogs/mouse-settings/main.c @@ -956,6 +956,50 @@ mouse_settings_device_set_enabled (GtkToggleButton *button, +#ifdef HAVE_XCURSOR +static void +mouse_settings_on_hide_cursor (GtkToggleButton *button, + GtkBuilder *builder) +{ + gchar *name = NULL; + gchar *prop; + gboolean enabled; + + if (locked > 0) + return; + + if (mouse_settings_device_get_selected (builder, NULL, &name)) + { + enabled = gtk_toggle_button_get_active (button); + prop = g_strconcat ("/", name, "/Hide_Cursor", NULL); + xfconf_channel_set_bool (pointers_channel, prop, enabled); + g_free (prop); + } + g_free (name); +} + +static void +mouse_settings_set_hide_cursor (GtkBuilder *builder) +{ + gchar *name = NULL; + gchar *prop; + gboolean enabled; + GtkToggleButton *button; + + if (mouse_settings_device_get_selected (builder, NULL, &name)) + { + button = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "hide-cursor")); + prop = g_strconcat ("/", name, "/Hide_Cursor", NULL); + enabled = xfconf_channel_get_bool (pointers_channel, prop, FALSE); + gtk_toggle_button_set_active (button, enabled); + g_free (prop); + } + g_free (name); +} +#endif + + + static void mouse_settings_device_selection_changed (GtkBuilder *builder) { @@ -1007,6 +1051,9 @@ mouse_settings_device_selection_changed (GtkBuilder *builder) /* get the selected item */ if (mouse_settings_device_get_selected (builder, &device, NULL)) { +#ifdef HAVE_XCURSOR + mouse_settings_set_hide_cursor (builder); +#endif gdk_error_trap_push (); device_info = XListInputDevices (xdisplay, &ndevices); if (gdk_error_trap_pop () == 0 && device_info != NULL) @@ -1735,11 +1782,20 @@ main (gint argc, gchar **argv) /* populate the themes treeview */ mouse_settings_themes_populate_store (builder); + /* connect & fill hide-cursor */ + object = gtk_builder_get_object (builder, "hide-cursor"); + g_signal_connect (G_OBJECT (object), "toggled", + G_CALLBACK (mouse_settings_on_hide_cursor), builder); + mouse_settings_set_hide_cursor (builder); + /* connect the cursor size in the cursor tab */ object = gtk_builder_get_object (builder, "theme-cursor-size"); xfconf_g_property_bind (xsettings_channel, "/Gtk/CursorThemeSize", G_TYPE_INT, G_OBJECT (object), "value"); #else + /* hide hide-cursor */ + object = gtk_builder_get_object (builder, "hide-cursor"); + gtk_widget_hide (GTK_WIDGET (object)); /* hide the themes tab */ object = gtk_builder_get_object (builder, "themes-hbox"); gtk_widget_hide (GTK_WIDGET (object)); diff --git a/dialogs/mouse-settings/mouse-dialog.glade b/dialogs/mouse-settings/mouse-dialog.glade index d3aab0d..70cf7e9 100644 --- a/dialogs/mouse-settings/mouse-dialog.glade +++ b/dialogs/mouse-settings/mouse-dialog.glade @@ -323,7 +323,7 @@ True False 6 - 3 + 4 2 12 6 @@ -415,6 +415,32 @@ 3 + + + True + False + 0 + 0 + 0 + + + _Hide pointer + False + True + True + False + When selected, no mouse pointer is displayed for this device + True + True + + + + + 2 + 3 + 4 + + -- 1.7.6.5