diff --git a/ChangeLog b/ChangeLog index fe5765b63..e8fba2f67 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Fri Aug 20 12:54:12 2004 Soeren Sandmann + + * src/display.c (meta_display_end_grab_op): Move wireframe code + before grab is released to prevent endless loops with fullscreen + windows. + 2004-08-18 Havoc Pennington * src/display.h (struct _MetaDisplay): track the last_xor_rect diff --git a/src/display.c b/src/display.c index 5827df6ee..e5cd7e438 100644 --- a/src/display.c +++ b/src/display.c @@ -3284,6 +3284,21 @@ meta_display_end_grab_op (MetaDisplay *display, display->ungrab_should_not_cause_focus_window = display->grab_xwindow; } + if (display->grab_wireframe_active) + { + display->grab_wireframe_active = FALSE; + meta_effects_end_wireframe (display->grab_window->screen, + &display->grab_wireframe_last_xor_rect); + if (!display->grab_was_cancelled) + meta_window_move_resize (display->grab_window, + TRUE, + display->grab_wireframe_rect.x, + display->grab_wireframe_rect.y, + display->grab_wireframe_rect.width, + display->grab_wireframe_rect.height); + meta_window_calc_showing (display->grab_window); + } + if (display->grab_have_pointer) { meta_topic (META_DEBUG_WINDOW_OPS, @@ -3311,21 +3326,6 @@ meta_display_end_grab_op (MetaDisplay *display, } #endif /* HAVE_XSYNC */ - if (display->grab_wireframe_active) - { - display->grab_wireframe_active = FALSE; - meta_effects_end_wireframe (display->grab_window->screen, - &display->grab_wireframe_last_xor_rect); - if (!display->grab_was_cancelled) - meta_window_move_resize (display->grab_window, - TRUE, - display->grab_wireframe_rect.x, - display->grab_wireframe_rect.y, - display->grab_wireframe_rect.width, - display->grab_wireframe_rect.height); - meta_window_calc_showing (display->grab_window); - } - /* repaint window in case the grab op drew it in a * nonstandard way such as transparent or wireframe */