diff options
author | Jasper St. Pierre <jstpierre@mecheye.net> | 2011-10-17 17:18:50 -0400 |
---|---|---|
committer | Alberts Muktupāvels <alberts.muktupavels@gmail.com> | 2015-01-20 19:53:21 +0200 |
commit | 9fe51fd0b1bd7a23e28cb0e8c6f6e9c681666182 (patch) | |
tree | 59146a088d4cb3ab899660c1374414ca898115e6 | |
parent | a3630d7cf5578344b87ffeb1f2b6605985a6a985 (diff) | |
download | metacity-9fe51fd0b1bd7a23e28cb0e8c6f6e9c681666182.tar.gz |
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
-rw-r--r-- | src/core/frame.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/core/frame.c b/src/core/frame.c index e29a69bd..6584d745 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; @@ -181,6 +182,8 @@ meta_window_destroy_frame (MetaWindow *window) frame = window->frame; + meta_frame_calc_borders (frame, &borders); + meta_bell_notify_frame_destroy (frame); /* Unparent the client window; it may be destroyed, @@ -204,8 +207,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, FALSE); meta_ui_destroy_frame_window (window->screen->ui, frame->xwindow); |