--- gnome-settings-daemon-2.26.1.old/plugins/mouse/gsd-mouse-manager.c 2009-05-08 02:25:09.000000000 +0100
+++ gnome-settings-daemon-2.26.1/plugins/mouse/gsd-mouse-manager.c 2009-05-08 02:34:53.000000000 +0100
@@ -549,12 +549,24 @@ set_tap_to_click (gboolean state)
if (rc == Success && type == XA_INTEGER && format == 8 && nitems >= 7)
{
- /* Set RLM mapping for 1/2/3 fingers*/
- data[4] = (state) ? 1 : 0;
- data[5] = (state) ? 3 : 0;
- data[6] = (state) ? 2 : 0;
- XChangeDeviceProperty(GDK_DISPLAY(), device, prop, XA_INTEGER, 8,
- PropModeReplace, data, nitems);
+ GConfClient *client = gconf_client_get_default ();
+ gboolean left_handed;
+
+ if (gconf_client_get_bool (client, KEY_LEFT_HANDED, NULL)) {
+ /* Set RLM mapping for 1/2/3 fingers*/
+ data[4] = (state) ? 1 : 0;
+ data[5] = (state) ? 3 : 0;
+ data[6] = (state) ? 2 : 0;
+ } else {
+ /* Set RLM mapping for 1/2/3 fingers, but swap
+ * the left and right, so tapping left-handed is
+ * still a left-click */
+ data[4] = (state) ? 3 : 0;
+ data[5] = (state) ? 1 : 0;
+ data[6] = (state) ? 2 : 0;
+ }
+ XChangeDeviceProperty(GDK_DISPLAY(), device, prop, XA_INTEGER, 8,
+ PropModeReplace, data, nitems);
}
if (rc == Success)