mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2026-03-22 22:00:36 +01:00
touchpad: Add a tp_post_pointer_motion helper function
Split out the pointer-motion handling into a helper function. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
e923001c95
commit
759e5eca6d
1 changed files with 26 additions and 20 deletions
|
|
@ -586,32 +586,13 @@ tp_post_process_state(struct tp_dispatch *tp, uint64_t time)
|
|||
tp->queued = TOUCHPAD_EVENT_NONE;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
tp_post_events(struct tp_dispatch *tp, uint64_t time)
|
||||
tp_post_pointer_motion(struct tp_dispatch *tp, uint64_t time)
|
||||
{
|
||||
struct tp_touch *t = tp_current_touch(tp);
|
||||
double dx, dy;
|
||||
int filter_motion = 0;
|
||||
double dx_unaccel, dy_unaccel;
|
||||
|
||||
/* Only post (top) button events while suspended */
|
||||
if (tp->device->suspended) {
|
||||
tp_post_button_events(tp, time);
|
||||
return;
|
||||
}
|
||||
|
||||
filter_motion |= tp_tap_handle_state(tp, time);
|
||||
filter_motion |= tp_post_button_events(tp, time);
|
||||
|
||||
if (filter_motion || tp->sendevents.trackpoint_active) {
|
||||
tp_stop_scroll_events(tp, time);
|
||||
return;
|
||||
}
|
||||
|
||||
if (tp_post_scroll_events(tp, time) != 0)
|
||||
return;
|
||||
|
||||
if (!t->is_pointer) {
|
||||
tp_for_each_touch(tp, t) {
|
||||
if (t->is_pointer)
|
||||
|
|
@ -633,6 +614,31 @@ tp_post_events(struct tp_dispatch *tp, uint64_t time)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
tp_post_events(struct tp_dispatch *tp, uint64_t time)
|
||||
{
|
||||
int filter_motion = 0;
|
||||
|
||||
/* Only post (top) button events while suspended */
|
||||
if (tp->device->suspended) {
|
||||
tp_post_button_events(tp, time);
|
||||
return;
|
||||
}
|
||||
|
||||
filter_motion |= tp_tap_handle_state(tp, time);
|
||||
filter_motion |= tp_post_button_events(tp, time);
|
||||
|
||||
if (filter_motion || tp->sendevents.trackpoint_active) {
|
||||
tp_stop_scroll_events(tp, time);
|
||||
return;
|
||||
}
|
||||
|
||||
if (tp_post_scroll_events(tp, time) != 0)
|
||||
return;
|
||||
|
||||
tp_post_pointer_motion(tp, time);
|
||||
}
|
||||
|
||||
static void
|
||||
tp_handle_state(struct tp_dispatch *tp,
|
||||
uint64_t time)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue