Commit: c9344d6c5b0533629966c6baa853591f345af00a
Author: Brecht Van Lommel
Date: Wed Dec 5 13:58:38 2018 +0100
Branches: master
https://developer.blender.org/rBc9344d6c5b0533629966c6baa853591f345af00a
Fix T58776, T58030: pressure sensitivity on Linux not working for some tablets.
===================================================================
M intern/ghost/intern/GHOST_SystemX11.cpp
===================================================================
diff --git a/intern/ghost/intern/GHOST_SystemX11.cpp
b/intern/ghost/intern/GHOST_SystemX11.cpp
index 0c0abc95356..3befb700c55 100644
--- a/intern/ghost/intern/GHOST_SystemX11.cpp
+++ b/intern/ghost/intern/GHOST_SystemX11.cpp
@@ -2269,6 +2269,8 @@ void GHOST_SystemX11::refreshXInputDevices()
if (m_xtablet.StylusDevice != NULL) {
/* Find how many pressure
levels tablet has */
XAnyClassPtr ici =
device_info[i].inputclassinfo;
+ bool found_valuator_class =
false;
+
for (int j = 0; j <
m_xtablet.StylusDevice->num_classes; ++j) {
if (ici->c_class ==
ValuatorClass) {
//
printf("\t\tfound ValuatorClass\n");
@@ -2286,11 +2288,23 @@ void GHOST_SystemX11::refreshXInputDevices()
m_xtablet.YtiltLevels = 0;
}
+
found_valuator_class = true;
+
break;
}
ici =
(XAnyClassPtr)(((char *)ici) + ici->length);
}
+
+ if (!found_valuator_class) {
+ /* In case our name
matching detects a device that
+ * isn't actually a
stylus. For example there can
+ * be "XPPEN Tablet"
and "XPPEN Tablet Pen", but
+ * only the latter is a
stylus. */
+ XCloseDevice(m_display,
m_xtablet.StylusDevice);
+ m_xtablet.StylusDevice
= NULL;
+ m_xtablet.StylusID = 0;
+ }
}
else {
m_xtablet.StylusID = 0;
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs