diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c index f28cd137..4e797a8f 100644 --- a/src/evdev-mt-touchpad.c +++ b/src/evdev-mt-touchpad.c @@ -621,8 +621,7 @@ tp_destroy(struct evdev_dispatch *dispatch) tp_destroy_tap(tp); tp_destroy_buttons(tp); - if (tp->filter) - tp->filter->interface->destroy(tp->filter); + motion_filter_destroy(tp->filter); free(tp->touches); free(tp); } diff --git a/src/filter.c b/src/filter.c index 2c23da16..22c3ed8a 100644 --- a/src/filter.c +++ b/src/filter.c @@ -331,3 +331,12 @@ create_pointer_accelator_filter(accel_profile_func_t profile) return &filter->base; } + +void +motion_filter_destroy(struct motion_filter *filter) +{ + if (!filter) + return; + + filter->interface->destroy(filter); +} diff --git a/src/filter.h b/src/filter.h index 0ef3d032..ada4f930 100644 --- a/src/filter.h +++ b/src/filter.h @@ -59,4 +59,7 @@ typedef double (*accel_profile_func_t)(struct motion_filter *filter, struct motion_filter * create_pointer_accelator_filter(accel_profile_func_t filter); +void +motion_filter_destroy(struct motion_filter *filter); + #endif /* FILTER_H */