summaryrefslogtreecommitdiff
path: root/src/core/frame.c
diff options
context:
space:
mode:
authorVictor Kareh <[email protected]>2019-05-23 12:50:54 -0400
committerraveit65 <[email protected]>2019-06-16 18:12:44 +0200
commit51d0f30ee0bfa70e37042e4ec1544b0a8d27ad0f (patch)
tree5d457b29601249a8cf33b864785ffce0faf2d6bd /src/core/frame.c
parenta72d3dd0d76908f1cb76503e78edce2ee14f920b (diff)
downloadmarco-51d0f30ee0bfa70e37042e4ec1544b0a8d27ad0f.tar.bz2
marco-51d0f30ee0bfa70e37042e4ec1544b0a8d27ad0f.tar.xz
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 upstream commit: https://gitlab.gnome.org/GNOME/metacity/commit/9fe51fd0
Diffstat (limited to 'src/core/frame.c')
-rw-r--r--src/core/frame.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/core/frame.c b/src/core/frame.c
index d4e09fbf..3c0ef935 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);