forked from bartvdbraak/blender
Fix T48204: Generic Tablet on Linux - Erratic strokes with pressure sensitivity enabled.
Once and for all - I hope! So, for the records: Xinput1 events' valuators have a first_axis and axis_count defining the 'range' of valid axes for that event - but valid data in the valuator's array **always** start at zero (which means that, if event reports first axis as being axis 2, axis 2's value is in axis_data[0]).
This commit is contained in:
parent
dedc995018
commit
38f65c500c
@ -1239,7 +1239,8 @@ GHOST_SystemX11::processEvent(XEvent *xe)
|
||||
* events). So we have to check which values this event actually contains!
|
||||
*/
|
||||
|
||||
#define AXIS_VALUE_GET(axis, val) ((axis_first <= axis && axes_end > axis) && ((void)(val = data->axis_data[axis]), true))
|
||||
#define AXIS_VALUE_GET(axis, val) \
|
||||
((axis_first <= axis && axes_end > axis) && ((void)(val = data->axis_data[axis - axis_first]), true))
|
||||
|
||||
if (AXIS_VALUE_GET(2, axis_value)) {
|
||||
window->GetTabletData()->Pressure = axis_value / ((float)m_xtablet.PressureLevels);
|
||||
|
Loading…
Reference in New Issue
Block a user