[gnome-control-center/gnome-3-8] mouse: show enable trackpad slider button even if mouse is not present.



commit 8032f1109334eb9428e45b34b9fae491fc77043e
Author: Srinivasa Ragavan <srinivasa ragavan venkateswaran intel com>
Date:   Wed Jul 10 18:42:07 2013 +0530

    mouse: show enable trackpad slider button even if mouse is not present.
    
    On touchscreen machine, if the trackpad was previously disabled using mouse
    which isn't present now, there is no way to enable it. It now shows the slider
    when trackpad is disable or if mouse/touchscreen is present.
    
    Fixes bug #703946

 panels/mouse/gnome-mouse-properties.c |   26 ++++++++++++++++++++++++--
 1 files changed, 24 insertions(+), 2 deletions(-)
---
diff --git a/panels/mouse/gnome-mouse-properties.c b/panels/mouse/gnome-mouse-properties.c
index 00e4f48..a31758c 100644
--- a/panels/mouse/gnome-mouse-properties.c
+++ b/panels/mouse/gnome-mouse-properties.c
@@ -153,6 +153,26 @@ pointer_speed_scale_event (GtkRange *scale, GtkBuilder *dialog)
        g_settings_set_int (settings, "motion-threshold", value);
 }
 
+static gboolean
+show_touchpad_enabling_switch (GSettings *touchpad_settings)
+{
+       gboolean enabled;
+
+       if (!touchpad_is_present())
+               return FALSE;
+
+       /* Lets show the button when the mouse/touchscreen is present */
+       if (mouse_is_present() || touchscreen_is_present())
+               return TRUE;
+       
+       /* Lets also show when touch pad is disabled. */
+       enabled = g_settings_get_boolean (touchpad_settings,  "touchpad-enabled");
+       if (!enabled)
+               return TRUE;
+       
+       return FALSE;
+}
+
 /* Set up the property editors in the dialog. */
 static void
 setup_dialog (GtkBuilder *dialog)
@@ -188,7 +208,8 @@ setup_dialog (GtkBuilder *dialog)
        /* Trackpad page */
        touchpad_present = touchpad_is_present ();
        gtk_widget_set_visible (WID ("touchpad_vbox"), touchpad_present);
-       gtk_widget_set_visible (WID ("touchpad_enabled_switch"), mouse_present);
+       gtk_widget_set_visible (WID ("touchpad_enabled_switch"), 
+                               show_touchpad_enabling_switch (touchpad_settings));
 
        g_settings_bind (touchpad_settings, "touchpad-enabled",
                         WID ("touchpad_enabled_switch"), "active",
@@ -269,7 +290,8 @@ device_changed (GdkDeviceManager *device_manager,
 
        present = mouse_is_present ();
        gtk_widget_set_visible (WID ("mouse_vbox"), present);
-       gtk_widget_set_visible (WID ("touchpad_enabled_switch"), present);
+       gtk_widget_set_visible (WID ("touchpad_enabled_switch"), 
+                               show_touchpad_enabling_switch (touchpad_settings));
 }
 
 GtkWidget *


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]