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
This commit is contained in:
Srinivasa Ragavan 2013-07-10 18:42:07 +05:30
parent 62e0666d25
commit d855a80bf6

View file

@ -165,6 +165,26 @@ pointer_speed_scale_event (GtkRange *scale, CcMousePropertiesPrivate *d)
g_settings_set_int (settings, "motion-threshold", value); 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. */ /* Set up the property editors in the dialog. */
static void static void
setup_dialog (CcMousePropertiesPrivate *d) setup_dialog (CcMousePropertiesPrivate *d)
@ -200,7 +220,8 @@ setup_dialog (CcMousePropertiesPrivate *d)
/* Trackpad page */ /* Trackpad page */
touchpad_present = touchpad_is_present (); touchpad_present = touchpad_is_present ();
gtk_widget_set_visible (WID ("touchpad_vbox"), touchpad_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 (d->touchpad_settings, "touchpad-enabled", g_settings_bind (d->touchpad_settings, "touchpad-enabled",
WID ("touchpad_enabled_switch"), "active", WID ("touchpad_enabled_switch"), "active",
@ -281,7 +302,8 @@ device_changed (GdkDeviceManager *device_manager,
present = mouse_is_present (); present = mouse_is_present ();
gtk_widget_set_visible (WID ("mouse_vbox"), 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));
} }