app: get rid of server grabs for almost all canvas interaction
Because it's generally the right thing to do, and server grabs broke badly with input devices / client side windows. gimpdisplayshell-grab.c: change logic to only server-grab if an event is passed to the pointer grab/ungrab functions, but always use gtk_grab_add/remove() which is sufficient in most cases. gimpdisplayshell-tool-events.c: have the grab functions grab the server only for space-bar scrolling and do all tool interaction, including ruler clicks, with gtk_grab_add/remove(). Refactor things a bit to also use the grab API for button-2 scrolling. gimpdeviceinfo-coords.c: transform the event's coords to the canvas' coordinate system, they might come from a ruler now. This fixes the following bugs: Bug 645315 - gimp_display_shell_pointer_grab: gdk_pointer_grab failed... Bug 644351 - Gimp misses some strokes especially when drawing fast Bug 645747 - Gimp is now unusable on xfce4
parent
b06bc636
Please register or sign in to comment