window: Unmanage rule placed window if ending up outside of parent

If a client maps a persistent popup with a placement rule, then resizes
the parent window so that the popup ends up outside of the parent,
unmanage the popup and log a warning about the client being buggy.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/496
This commit is contained in:
Jonas Ådahl
2018-10-18 16:24:18 +02:00
committed by Florian Müllner
parent f2d7165a52
commit b4f1569640
3 changed files with 62 additions and 0 deletions

View File

@@ -527,6 +527,8 @@ struct _MetaWindow
gboolean placement_rule_constrained;
int constrained_placement_rule_offset_x;
int constrained_placement_rule_offset_y;
guint unmanage_idle_id;
};
struct _MetaWindowClass
@@ -610,6 +612,7 @@ MetaWindow * _meta_window_shared_new (MetaDisplay *display,
void meta_window_unmanage (MetaWindow *window,
guint32 timestamp);
void meta_window_unmanage_on_idle (MetaWindow *window);
void meta_window_queue (MetaWindow *window,
guint queuebits);
void meta_window_tile (MetaWindow *window,