GNOME Bugzilla – Bug 614441
the Text tool works wrong with a graphic tablet
Last modified: 2014-02-10 21:33:27 UTC
When you use a graphic tablet, normally you must call Image: Edit-> Input Devices and change the mode of the tablet devices to GDK_MODE_SCREEN. This is true for the pen, the cursor, and the eraser. It is important for the pen and the eraser, to use their pressure, tilt, and rotation capabilities. If it is done, the tablet devices can no longer be used for setting text parameters in the image. If you click on one of the buttons or other controls in the control pseudo-window above the text, it is as if you clicked elsewhere in the image to type another text. Thus you are forced to use a device in mode GDK_MODE_DISABLED, for example an ordinary mouse.
This is unfortunately unfixable within GIMP because the bug is in GTK+ and will go away by switching to GTK+ 3.x
*** Bug 666462 has been marked as a duplicate of this bug. ***
Created attachment 264200 [details] [review] app: Fix on canvas widgets ignoring clicks from tablets Disable extended input events when the cursor moves to a child of the canvas widget. Otherwise GTK will try and fail to deliver an extended event to the child widget, and end up sending it to the canvas instead. While it should be possible to fix the event delivery in GTK to send the correct core pointer event to the offscreen window doing so will require almost the exact same hack because gimp will need to ignore device changes while the cursor is over the offscreen window.
Thanks, fixed in master and gimp-2-8: commit 405e50c759d5d0576cf1b0dbdbed0820673919b8 Author: Daniel Sabo <DanielSabo@gmail.com> Date: Sat Dec 14 12:56:20 2013 -0800 app: Fix on canvas widgets ignoring clicks from tablets - bug 614441 Disable extended input events when the cursor moves to a child of the canvas widget. Otherwise GTK will try and fail to deliver an extended event to the child widget, and end up sending it to the canvas instead. (cherry picked from commit a059c0e7eb73329e1e2661de2b44864531ea1a6b) app/display/gimpdisplayshell-tool-events.c | 18 +++++++++++++++++- app/display/gimpdisplayshell.h | 2 ++ 2 files changed, 19 insertions(+), 1 deletion(-)