diff -Nur -x '*.orig' -x '*~' gnome-control-center-2.21.90/capplets/mouse/gnome-mouse-properties.c gnome-control-center-2.21.90.new/capplets/mouse/gnome-mouse-properties.c --- gnome-control-center-2.21.90/capplets/mouse/gnome-mouse-properties.c 2008-02-14 09:15:50.000000000 +0000 +++ gnome-control-center-2.21.90.new/capplets/mouse/gnome-mouse-properties.c 2008-02-14 09:18:13.000000000 +0000 @@ -41,6 +41,7 @@ #include #include #include +#include #ifdef HAVE_XCURSOR #include @@ -341,6 +342,35 @@ return new_value; } +static gboolean +find_synaptics() +{ + int numdevices, i; + gboolean ret = FALSE; + XDeviceInfo *devicelist = XListInputDevices (GDK_DISPLAY(), &numdevices); + for (i = 0; i < numdevices; i++) { + if (strcmp (devicelist[i].name, "Synaptics Touchpad") == 0) + ret = TRUE; + } + + XFreeDeviceList(devicelist); + return ret; +} + + +static void +touchpad_enabled_toggle_cb (GtkToggleButton *button, GladeXML *dialog) +{ + gboolean active; + + active = gtk_toggle_button_get_active (button); + + gtk_widget_set_sensitive (WID ("tap_to_click_toggle"), active); + gtk_widget_set_sensitive (WID ("vert_scroll_toggle"), active); + gtk_widget_set_sensitive (WID ("horiz_scroll_toggle"), active); + +} + /* Set up the property editors in the dialog. */ static void setup_dialog (GladeXML *dialog, GConfChangeSet *changeset) @@ -387,6 +417,23 @@ (changeset, "/desktop/gnome/peripherals/mouse/drag_threshold", WID ("drag_threshold_scale"), "conv-to-widget-cb", drag_threshold_from_gconf, NULL); + + /* Trackpad page */ + if (find_synaptics() == FALSE) + gtk_notebook_remove_page (GTK_NOTEBOOK(WID("prefs_widget")),-1); + else { + g_signal_connect (G_OBJECT (WID ("touchpad_enabled_toggle")), "toggled", (GCallback) touchpad_enabled_toggle_cb, dialog); + + peditor = gconf_peditor_new_boolean + (changeset, "/desktop/gnome/peripherals/mouse/touchpad_enabled", WID ("touchpad_enabled_toggle"), NULL); + peditor = gconf_peditor_new_boolean + (changeset, "/desktop/gnome/peripherals/mouse/tap_to_click", WID ("tap_to_click_toggle"), NULL); + peditor = gconf_peditor_new_boolean + (changeset, "/desktop/gnome/peripherals/mouse/pad_vert_scroll", WID ("vert_scroll_toggle"), NULL); + peditor = gconf_peditor_new_boolean + (changeset, "/desktop/gnome/peripherals/mouse/pad_horiz_scroll", WID ("horiz_scroll_toggle"), NULL); + } + } /* Construct the dialog */ diff -Nur -x '*.orig' -x '*~' gnome-control-center-2.21.90/capplets/mouse/gnome-mouse-properties.glade gnome-control-center-2.21.90.new/capplets/mouse/gnome-mouse-properties.glade --- gnome-control-center-2.21.90/capplets/mouse/gnome-mouse-properties.glade 2008-02-14 09:15:50.000000000 +0000 +++ gnome-control-center-2.21.90.new/capplets/mouse/gnome-mouse-properties.glade 2008-02-14 09:17:39.000000000 +0000 @@ -1288,6 +1288,235 @@ False + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 12 + 18 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 6 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + 0 + <b>General</b> + True + + + False + False + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + 0 + + + + False + False + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Enable _touchpad + True + 0 + True + True + + + 1 + + + + + False + False + 1 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + 0 + + + + False + False + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Enable mouse _clicks with touchpad + True + 0 + True + True + + + 1 + + + + + False + False + 2 + + + + + False + False + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 6 + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + 0 + <b>Scrolling</b> + True + + + False + False + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + 0 + + + + False + False + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Enable _vertical scrolling + True + 0 + True + True + + + 1 + + + + + False + False + 1 + + + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + + + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + 0 + 0 + + + + False + False + + + + + True + True + GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK + Enable _horizontal scrolling + True + 0 + True + + + 1 + + + + + False + False + 2 + + + + + False + False + 1 + + + + + 2 + + + + + True + Touchpad + GTK_JUSTIFY_CENTER + + + tab + 2 + False + + 1