From 39fd4b3984dd046dba61fbfe88514fcc9479303f Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Mon, 21 Feb 2005 18:41:05 +0000 Subject: [PATCH] put back some important code that was accidentially removed when fixing 2005-02-21 Michael Natterer * app/display/gimpdisplayshell-callbacks.c (gimp_display_shell_canvas_tool_events): put back some important code that was accidentially removed when fixing bug #162823. Also moved the calls to gtk_grab_add() and gtk_grab_remove() around a bit. --- ChangeLog | 8 ++++++++ app/display/gimpdisplayshell-callbacks.c | 18 ++++++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index bd97127167..0e819c7635 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2005-02-21 Michael Natterer + + * app/display/gimpdisplayshell-callbacks.c + (gimp_display_shell_canvas_tool_events): put back some important + code that was accidentially removed when fixing bug #162823. Also + moved the calls to gtk_grab_add() and gtk_grab_remove() around a + bit. + 2005-02-21 Michael Natterer * app/widgets/gimptoolbox.c (toolbox_area_notify): apply evil diff --git a/app/display/gimpdisplayshell-callbacks.c b/app/display/gimpdisplayshell-callbacks.c index 7ee4ffe99b..1055d9dc6d 100644 --- a/app/display/gimpdisplayshell-callbacks.c +++ b/app/display/gimpdisplayshell-callbacks.c @@ -775,23 +775,33 @@ gimp_display_shell_canvas_tool_events (GtkWidget *canvas, gdk_display_pointer_ungrab (gdk_display, time); + gtk_grab_add (GTK_WIDGET (canvas)); + if (active_tool && (! gimp_image_is_empty (gimage) || gimp_tool_control_handles_empty_image (active_tool->control))) { if (gimp_tool_control_is_active (active_tool->control)) { - gtk_grab_add (GTK_WIDGET (canvas)); - tool_manager_button_release_active (gimp, &image_coords, time, state, gdisp); - - gtk_grab_remove (GTK_WIDGET (canvas)); } } + /* update the tool's modifier state because it didn't get + * key events while BUTTON1 was down + */ + tool_manager_focus_display_active (gimp, gdisp); + tool_manager_modifier_state_active (gimp, state, gdisp); + + tool_manager_oper_update_active (gimp, + &image_coords, state, + gdisp); + + gtk_grab_remove (GTK_WIDGET (canvas)); + if (shell->space_release_pending) { #ifdef DEBUG_MOVE_PUSH