This drastically changes the way KisInputManager works. Instead of relying on MouseMove events to carry our information, we transmit information from every event. I moved KisManager::Private into its own kis_input_manager_p.h / .cpp since it was cluttering the main logic.
This patch disables the various macros like start_ignore_cursor_events() and so on. I'm sure it breaks touch support and other corners of the event handling loop but I don't have a suitable device to test this on. In Windows with our custom event handler it works very nicely on my Intuos.
In Linux, using the default Qt handler, this works just fine. The problem is that we still receive fake MouseMove events, which mess up the pressure response. (We get big max-pressure blotches in the middle of the line.) I tried to ensure we accept every single tablet event we come across, but in fact it seems like we receive MouseMove events carrying different position information from the tablet events, so the events themselves were not even triggered by event rejection! My log looks like:
" MouseMove btn: 0 btns: 1 pos: 1314,1177 gpos: 4223,1404 " " TabletMove btn: 0 btns: 1 pos: 1314,1178 gpos: 4223,1405 hires: 4223.25, 1404.95 prs: 0.242676 Stylus Pen id: 794728369274 xTilt: 16 yTilt: 1 rot: 0 z: 0 tp: 0 " " MouseMove btn: 0 btns: 1 pos: 1317,1177 gpos: 4226,1404 " " TabletMove btn: 0 btns: 1 pos: 1318,1177 gpos: 4227,1404 hires: 4226.52, 1404.03 prs: 0.242676 Stylus Pen id: 794728369274 xTilt: 16 yTilt: 1 rot: 0 z: 0 tp: 0 " " MouseMove btn: 0 btns: 1 pos: 1320,1178 gpos: 4229,1405 " " TabletMove btn: 0 btns: 1 pos: 1321,1178 gpos: 4230,1405 hires: 4229.61, 1405.11 prs: 0.242676 Stylus Pen id: 794728369274 xTilt: 16 yTilt: 1 rot: 0 z: 0 tp: 0 "
On the other hand,