[PATCH synaptics 08/12] Factor out updating the hardware state.
Peter Hutterer
peter.hutterer at who-t.net
Thu May 6 21:42:00 PDT 2010
No functional changes.
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
src/synaptics.c | 55 ++++++++++++++++++++++++++++++++-----------------------
1 files changed, 32 insertions(+), 23 deletions(-)
diff --git a/src/synaptics.c b/src/synaptics.c
index 9a286b5..650fbc2 100644
--- a/src/synaptics.c
+++ b/src/synaptics.c
@@ -2127,6 +2127,37 @@ adjust_state_from_scrollbuttons(const LocalDevicePtr local, struct SynapticsHwSt
}
static inline void
+update_hw_button_state(const LocalDevicePtr local, struct SynapticsHwState *hw, int *delay)
+{
+ SynapticsPrivate *priv = (SynapticsPrivate *) (local->private);
+ SynapticsParameters *para = &priv->synpara;
+
+ /* Treat the first two multi buttons as up/down for now. */
+ hw->up |= hw->multi[0];
+ hw->down |= hw->multi[1];
+
+ if (!para->guestmouse_off) {
+ hw->left |= hw->guest_left;
+ hw->middle |= hw->guest_mid;
+ hw->right |= hw->guest_right;
+ }
+
+ /* 3rd button emulation */
+ hw->middle |= HandleMidButtonEmulation(priv, hw, delay);
+
+ /* Fingers emulate other buttons */
+ if(hw->left && hw->numFingers >= 1){
+ HandleClickWithFingers(para, hw);
+ }
+
+ /* Two finger emulation */
+ if (hw->numFingers == 1 && hw->z >= para->emulate_twofinger_z &&
+ hw->fingerWidth >= para->emulate_twofinger_w) {
+ hw->numFingers = 2;
+ }
+}
+
+static inline void
post_button_click(const LocalDevicePtr local, const int button)
{
xf86PostButtonEvent(local->dev, FALSE, button, TRUE, 0, 0);
@@ -2177,29 +2208,7 @@ HandleState(LocalDevicePtr local, struct SynapticsHwState *hw)
if (para->touchpad_off == 1)
return delay;
- /* Treat the first two multi buttons as up/down for now. */
- hw->up |= hw->multi[0];
- hw->down |= hw->multi[1];
-
- if (!para->guestmouse_off) {
- hw->left |= hw->guest_left;
- hw->middle |= hw->guest_mid;
- hw->right |= hw->guest_right;
- }
-
- /* 3rd button emulation */
- hw->middle |= HandleMidButtonEmulation(priv, hw, &delay);
-
- /* Fingers emulate other buttons */
- if(hw->left && hw->numFingers >= 1){
- HandleClickWithFingers(para, hw);
- }
-
- /* Two finger emulation */
- if (hw->numFingers == 1 && hw->z >= para->emulate_twofinger_z &&
- hw->fingerWidth >= para->emulate_twofinger_w) {
- hw->numFingers = 2;
- }
+ update_hw_button_state(local, hw, &delay);
double_click = adjust_state_from_scrollbuttons(local, hw);
--
1.6.6.1
More information about the xorg-devel
mailing list