dix: Add valuator_mask_set_absolute_unaccelerated
Add a valuator mask setter for setting absolute coordinate combined with unaccelerated motion deltas. This will later be used by Xwayland to combine a wl_pointer.motion() event with the unaccelerated delta of a wp_relative_pointer.relative_motion() event. Signed-off-by: Jonas Ådahl <jadahl@gmail.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
bbd4854f81
commit
0fae3be068
|
@ -636,6 +636,19 @@ valuator_mask_drop_unaccelerated(ValuatorMask *mask)
|
||||||
mask->has_unaccelerated = FALSE;
|
mask->has_unaccelerated = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
valuator_mask_set_absolute_unaccelerated(ValuatorMask *mask,
|
||||||
|
int valuator,
|
||||||
|
int absolute,
|
||||||
|
double unaccel)
|
||||||
|
{
|
||||||
|
BUG_WARN_MSG(mask->last_bit != -1 && !mask->has_unaccelerated,
|
||||||
|
"Do not mix valuator types, zero mask first\n");
|
||||||
|
_valuator_mask_set_double(mask, valuator, absolute);
|
||||||
|
mask->has_unaccelerated = TRUE;
|
||||||
|
mask->unaccelerated[valuator] = unaccel;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set both accelerated and unaccelerated value for this mask.
|
* Set both accelerated and unaccelerated value for this mask.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -675,12 +675,15 @@ extern _X_EXPORT Bool valuator_mask_fetch(const ValuatorMask *mask,
|
||||||
int valnum, int *val);
|
int valnum, int *val);
|
||||||
extern _X_EXPORT Bool valuator_mask_fetch_double(const ValuatorMask *mask,
|
extern _X_EXPORT Bool valuator_mask_fetch_double(const ValuatorMask *mask,
|
||||||
int valnum, double *val);
|
int valnum, double *val);
|
||||||
|
|
||||||
extern _X_EXPORT Bool valuator_mask_has_unaccelerated(const ValuatorMask *mask);
|
extern _X_EXPORT Bool valuator_mask_has_unaccelerated(const ValuatorMask *mask);
|
||||||
extern _X_EXPORT void valuator_mask_set_unaccelerated(ValuatorMask *mask,
|
extern _X_EXPORT void valuator_mask_set_unaccelerated(ValuatorMask *mask,
|
||||||
int valuator,
|
int valuator,
|
||||||
double accel,
|
double accel,
|
||||||
double unaccel);
|
double unaccel);
|
||||||
|
extern _X_EXPORT void valuator_mask_set_absolute_unaccelerated(ValuatorMask *mask,
|
||||||
|
int valuator,
|
||||||
|
int absolute,
|
||||||
|
double unaccel);
|
||||||
extern _X_EXPORT double valuator_mask_get_accelerated(const ValuatorMask *mask,
|
extern _X_EXPORT double valuator_mask_get_accelerated(const ValuatorMask *mask,
|
||||||
int valuator);
|
int valuator);
|
||||||
extern _X_EXPORT double valuator_mask_get_unaccelerated(const ValuatorMask *mask,
|
extern _X_EXPORT double valuator_mask_get_unaccelerated(const ValuatorMask *mask,
|
||||||
|
|
Loading…
Reference in New Issue