Author: czeidler Date: 2009-11-28 13:41:10 +0100 (Sat, 28 Nov 2009) New Revision: 34326 Changeset: http://dev.haiku-os.org/changeset/34326/haiku Ticket: http://dev.haiku-os.org/ticket/5043 Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.c haiku/trunk/src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.h Log: - The right and bottom touchpad size was a bit to small, at least on my maschine (fix bug #5043). - Don't allow scrolling when a pad button is pressed because we are likely in a drag action. Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.c =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.c 2009-11-27 21:10:08 UTC (rev 34325) +++ haiku/trunk/src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.c 2009-11-28 12:41:10 UTC (rev 34326) @@ -241,6 +241,11 @@ bool isSideScrollingV = false; bool isSideScrollingH = false; + // if a button is pressed don't allow to scroll, we likely be in a drag + // action + if (cookie->buttons_state != 0) + return false; + if ((SYN_AREA_END_X - SYN_AREA_WIDTH_X * settings->scroll_rightrange < event->xPosition && !cookie->movement_started && settings->scroll_rightrange > 0.000001) @@ -402,7 +407,7 @@ status = event_to_movement(cookie, &event, movement); - return B_OK; + return status; } Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.h =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.h 2009-11-27 21:10:08 UTC (rev 34325) +++ haiku/trunk/src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.h 2009-11-28 12:41:10 UTC (rev 34326) @@ -34,12 +34,15 @@ // synaptics touchpad proportions #define SYN_EDGE_MOTION_WIDTH 50 #define SYN_EDGE_MOTION_SPEED 5 -#define SYN_AREA_OFFSET 40 // increase the touchpad size a little bit -#define SYN_AREA_START_X (1472 - SYN_AREA_OFFSET) -#define SYN_AREA_END_X (5472 + SYN_AREA_OFFSET) +#define SYN_AREA_OFFSET 40 +// increase the touchpad size a little bit +#define SYN_AREA_TOP_LEFT_OFFSET 40 +#define SYN_AREA_BOTTOM_RIGHT_OFFSET 60 +#define SYN_AREA_START_X (1472 - SYN_AREA_TOP_LEFT_OFFSET) +#define SYN_AREA_END_X (5472 + SYN_AREA_BOTTOM_RIGHT_OFFSET) #define SYN_AREA_WIDTH_X (SYN_AREA_END_X - SYN_AREA_START_X) -#define SYN_AREA_START_Y (1408 - SYN_AREA_OFFSET) -#define SYN_AREA_END_Y (4448 + SYN_AREA_OFFSET) +#define SYN_AREA_START_Y (1408 - SYN_AREA_TOP_LEFT_OFFSET) +#define SYN_AREA_END_Y (4448 + SYN_AREA_BOTTOM_RIGHT_OFFSET) #define SYN_AREA_WIDTH_Y (SYN_AREA_END_Y - SYN_AREA_START_Y) #define SYN_TAP_TIMEOUT 200000