From f4992c302567351487013cc0248f75a022ad50e0 Mon Sep 17 00:00:00 2001 From: Clemens Zeidler Date: Sat, 28 Nov 2009 12:41:10 +0000 Subject: [PATCH] - 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. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34326 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.c | 7 ++++++- src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.h | 13 ++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.c b/src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.c index 535f32cad0..19d4eed7f4 100644 --- a/src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.c +++ b/src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.c @@ -241,6 +241,11 @@ check_scrolling_to_movement(synaptics_cookie *cookie, touch_event *event, 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 @@ get_synaptics_movment(synaptics_cookie *cookie, mouse_movement *movement) status = event_to_movement(cookie, &event, movement); - return B_OK; + return status; } diff --git a/src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.h b/src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.h index 5b9cb44924..e5dc6b590b 100644 --- a/src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.h +++ b/src/add-ons/kernel/bus_managers/ps2/ps2_synaptics.h @@ -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