From 6d0c1f08d28458934259c462638f31c22d6b3e3f Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Mon, 17 Oct 2011 17:18:50 -0400 Subject: [PATCH] frame: Make sure to offset by invisible borders when unmanaging windows When we reparent a window to the root when we're exiting, we need to offset the position by the invisible borders, otherwise windows will creep up and to the left. https://bugzilla.gnome.org/show_bug.cgi?id=660848 --- src/core/frame.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/core/frame.c b/src/core/frame.c index 33e0c6f8d..203805388 100644 --- a/src/core/frame.c +++ b/src/core/frame.c @@ -173,6 +173,7 @@ void meta_window_destroy_frame (MetaWindow *window) { MetaFrame *frame; + MetaFrameBorders borders; if (window->frame == NULL) return; @@ -180,6 +181,8 @@ meta_window_destroy_frame (MetaWindow *window) meta_verbose ("Unframing window %s\n", window->desc); frame = window->frame; + + meta_frame_calc_borders (frame, &borders); meta_bell_notify_frame_destroy (frame); @@ -207,8 +210,8 @@ meta_window_destroy_frame (MetaWindow *window) * coordinates here means we'll need to ensure a configure * notify event is sent; see bug 399552. */ - window->frame->rect.x, - window->frame->rect.y); + window->frame->rect.x + borders.invisible.left, + window->frame->rect.y + borders.invisible.top); meta_error_trap_pop (window->display); meta_ui_destroy_frame_window (window->screen->ui, frame->xwindow);