From 19648e29aba9063301bca4dfb4202dfdee24392c Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 4 Sep 2014 12:55:02 +1000 Subject: [PATCH] touchpad: move softbutton initialization to separate function No functional changes Signed-off-by: Peter Hutterer --- src/evdev-mt-touchpad-buttons.c | 77 +++++++++++++++++++++++++---------------- src/evdev-mt-touchpad.h | 3 ++ 2 files changed, 50 insertions(+), 30 deletions(-) diff --git a/src/evdev-mt-touchpad-buttons.c b/src/evdev-mt-touchpad-buttons.c index 1dd8913..02d3205 100644 --- a/src/evdev-mt-touchpad-buttons.c +++ b/src/evdev-mt-touchpad-buttons.c @@ -494,6 +494,52 @@ tp_release_all_buttons(struct tp_dispatch *tp, } } +void +tp_init_softbuttons(struct tp_dispatch *tp, + struct evdev_device *device) +{ + int width, height; + const struct input_absinfo *absinfo_x, *absinfo_y; + int xoffset, yoffset; + int yres; + + absinfo_x = device->abs.absinfo_x; + absinfo_y = device->abs.absinfo_y; + + xoffset = absinfo_x->minimum, + yoffset = absinfo_y->minimum; + yres = absinfo_y->resolution; + width = abs(absinfo_x->maximum - absinfo_x->minimum); + height = abs(absinfo_y->maximum - absinfo_y->minimum); + + /* button height: 10mm or 15% of the touchpad height, + whichever is smaller */ + if (yres > 1 && (height * 0.15/yres) > 10) { + tp->buttons.bottom_area.top_edge = + absinfo_y->maximum - 10 * yres; + } else { + tp->buttons.bottom_area.top_edge = height * .85 + yoffset; + } + + tp->buttons.bottom_area.rightbutton_left_edge = width/2 + xoffset; + + if (tp->buttons.has_topbuttons) { + /* T440s has the top button line 5mm from the top, + event analysis has shown events to start down to ~10mm + from the top - which maps to 15% */ + if (yres > 1) { + tp->buttons.top_area.bottom_edge = + yoffset + 10 * yres; + } else { + tp->buttons.top_area.bottom_edge = height * .15 + yoffset; + } + tp->buttons.top_area.rightbutton_left_edge = width * .58 + xoffset; + tp->buttons.top_area.leftbutton_right_edge = width * .42 + xoffset; + } else { + tp->buttons.top_area.bottom_edge = INT_MIN; + } +} + int tp_init_buttons(struct tp_dispatch *tp, struct evdev_device *device) @@ -535,36 +581,7 @@ tp_init_buttons(struct tp_dispatch *tp, tp->buttons.use_clickfinger = true; if (tp->buttons.is_clickpad && !tp->buttons.use_clickfinger) { - int xoffset = absinfo_x->minimum, - yoffset = absinfo_y->minimum; - int yres = absinfo_y->resolution; - - /* button height: 10mm or 15% of the touchpad height, - whichever is smaller */ - if (yres > 1 && (height * 0.15/yres) > 10) { - tp->buttons.bottom_area.top_edge = - absinfo_y->maximum - 10 * yres; - } else { - tp->buttons.bottom_area.top_edge = height * .85 + yoffset; - } - - tp->buttons.bottom_area.rightbutton_left_edge = width/2 + xoffset; - - if (tp->buttons.has_topbuttons) { - /* T440s has the top button line 5mm from the top, - event analysis has shown events to start down to ~10mm - from the top - which maps to 15% */ - if (yres > 1) { - tp->buttons.top_area.bottom_edge = - yoffset + 10 * yres; - } else { - tp->buttons.top_area.bottom_edge = height * .15 + yoffset; - } - tp->buttons.top_area.rightbutton_left_edge = width * .58 + xoffset; - tp->buttons.top_area.leftbutton_right_edge = width * .42 + xoffset; - } else { - tp->buttons.top_area.bottom_edge = INT_MIN; - } + tp_init_softbuttons(tp, device); } else { tp->buttons.bottom_area.top_edge = INT_MAX; tp->buttons.top_area.bottom_edge = INT_MIN; diff --git a/src/evdev-mt-touchpad.h b/src/evdev-mt-touchpad.h index 6988b79..b67b063 100644 --- a/src/evdev-mt-touchpad.h +++ b/src/evdev-mt-touchpad.h @@ -246,6 +246,9 @@ int tp_init_buttons(struct tp_dispatch *tp, struct evdev_device *device); void +tp_init_softbuttons(struct tp_dispatch *tp, struct evdev_device *device); + +void tp_destroy_buttons(struct tp_dispatch *tp); int -- 2.7.4