[Bf-blender-cvs] [c9344d6c5b0] master: Fix T58776, T58030: pressure sensitivity on Linux not working for some tablets.

Brecht Van Lommel noreply at git.blender.org
Wed Dec 5 14:04:01 CET 2018


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;



More information about the Bf-blender-cvs mailing list