- User Since
- Aug 18 2019, 5:59 AM (66 w, 6 d)
Oct 25 2019
I dug slightly deeper. Events get dispatched from within a loop in WM_main() by calling wm_window_process_events(), and yes, handleTabletEvent() does not modify the event in the queue but changes values in the member variable m_tablet of GHOST_WindowCocoa. So given my reasoning above, I really don't think you want to dispatch events preemptively except in the sole case when leaving proximity.
Oct 9 2019
I'm not sure about flushing the queue where you suggest. handleTabletEvent() does not seem to modify the event in the queue, it just sets some tablet parameters (pressure, tilt) in some window context object, and then presumably some other code uses that info when it comes to processing the event. For drawing, then, you want the latest tablet info available when the event gets processed or else you're always using old pressure data. The only instance where you don't want tablet data smashing is on the leaving proximity event because it leaves tablet mode, and no drawing is going to happen anyway.
Oct 8 2019
This may or may not be an acceptable fix, but adding dispatchEvents() when leaving proximity in handleTabletEvent() flushes out the event queue and fixes the issue for me in both grease pencil and texture paint modes:
Sep 17 2019
Never mind. I see the fix for T69974 from this morning fixes this file.