Commit: cd95c74194852cac8863d99beae4df82ac1cc880
Author: Bastien Montagne
Date: Thu May 19 20:30:48 2016 +0200
Branches: compositor-2016
https://developer.blender.org/rBcd95c74194852cac8863d99beae4df82ac1cc880
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]).
===================================================================
M intern/ghost/intern/GHOST_SystemX11.cpp
===================================================================
diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp
b/intern/ghost/intern/GHOST_SystemX11.cpp
index dde63ba..95dea38 100644
--- a/intern/ghost/intern/GHOST_SystemX11.cpp
+++ b/intern/ghost/intern/GHOST_SystemX11.cpp
@@ -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);
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs