SOURCES: control-center-evdev.patch (NEW) patch from GNOME Bugzilla
wiget
wiget at pld-linux.org
Mon Apr 10 00:30:44 CEST 2006
Author: wiget Date: Sun Apr 9 22:30:44 2006 GMT
Module: SOURCES Tag: HEAD
---- Log message:
patch from GNOME Bugzilla
---- Files affected:
SOURCES:
control-center-evdev.patch (NONE -> 1.1) (NEW)
---- Diffs:
================================================================
Index: SOURCES/control-center-evdev.patch
diff -u /dev/null SOURCES/control-center-evdev.patch:1.1
--- /dev/null Mon Apr 10 00:30:44 2006
+++ SOURCES/control-center-evdev.patch Mon Apr 10 00:30:39 2006
@@ -0,0 +1,74 @@
+=== modified file 'gnome-settings-daemon/gnome-settings-mouse.c'
+--- gnome-settings-daemon/gnome-settings-mouse.c
++++ gnome-settings-daemon/gnome-settings-mouse.c
+@@ -33,24 +33,57 @@
+ gint n_buttons,
+ gboolean left_handed)
+ {
+- const gint left_button = 0;
++ const gint left_button = 1;
+ gint right_button;
++ gint i;
+
+ /* if the button is higher than 2 (3rd button) then it's
+ * probably one direction of a scroll wheel or something else
+ * uninteresting
+ */
+- right_button = MIN (n_buttons - 1, 2);
+-
+- if (left_handed)
+- {
+- buttons[left_button] = right_button + 1;
+- buttons[right_button] = left_button + 1;
+- }
+- else
+- {
+- buttons[left_button] = left_button + 1;
+- buttons[right_button] = right_button + 1;
++ right_button = MIN (n_buttons, 3);
++
++ /* If we change things we need to make sure we only swap buttons.
++ * If we end up with multiple physical buttons assigned to the same
++ * logical button the server will complain. This code assumes physical
++ * button 0 is the physical left mouse button, and that the physical
++ * button other than 0 currently assigned left_button or right_button
++ * is the physical right mouse button.
++ */
++
++ /* check if the current mapping satisfies the above assumptions */
++ if (buttons[left_button - 1] != left_button &&
++ buttons[left_button - 1] != right_button)
++ /* The current mapping is weird. Swapping buttons is probably not a
++ * good idea.
++ */
++ return;
++
++ /* check if we are left_handed and currently not swapped */
++ if (left_handed && buttons[left_button - 1] == left_button)
++ {
++ /* find the right button */
++ for (i = 0; i < n_buttons; i++)
++ {
++ if (buttons[i] == right_button)
++ break;
++ }
++ /* swap the buttons */
++ buttons[left_button - 1] = right_button;
++ buttons[i] = left_button;
++ }
++ /* check if we are not left_handed but are swapped */
++ else if (!left_handed && buttons[left_button - 1] == right_button)
++ {
++ /* find the right button */
++ for (i = 0; i < n_buttons; i++)
++ {
++ if (buttons[i] == left_button)
++ break;
++ }
++ /* swap the buttons */
++ buttons[i] = right_button;
++ buttons[left_button - 1] = left_button;
+ }
+ }
+
+
================================================================
More information about the pld-cvs-commit
mailing list