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