summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Andersen <phomes@gmail.com>2006-04-19 20:55:49 +0000
committerElijah Newren <newren@src.gnome.org>2006-04-19 20:55:49 +0000
commit14f120f13194b4e42a2751d0b9db82451667eeeb (patch)
tree8349d7a1da65f4a998826c4405305ab6a0e7670f
parentc118c501172b4456841837f899d43d6497453861 (diff)
downloadmetacity-14f120f13194b4e42a2751d0b9db82451667eeeb.tar.gz
warn and ignore if transient_for is set to a non-top-level window. Fixes
2006-04-19 Thomas Andersen <phomes@gmail.com> * src/window-props.c (reload_transient_for): warn and ignore if transient_for is set to a non-top-level window. Fixes #335524.
-rw-r--r--ChangeLog5
-rw-r--r--src/window-props.c11
2 files changed, 16 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 1df352fd..981afe36 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-04-19 Thomas Andersen <phomes@gmail.com>
+
+ * src/window-props.c (reload_transient_for): warn and ignore if
+ transient_for is set to a non-top-level window. Fixes #335524.
+
2006-04-19 Björn Lindqvist <bjourne@gmail.com>
* src/frames.c (struct CachedPixels, meta_frames_destroy,
diff --git a/src/window-props.c b/src/window-props.c
index 63696a11..a1348279 100644
--- a/src/window-props.c
+++ b/src/window-props.c
@@ -1130,6 +1130,17 @@ reload_transient_for (MetaWindow *window,
if (value->type != META_PROP_VALUE_INVALID)
window->xtransient_for = value->v.xwindow;
+ /* Make sure transient_for is valid */
+ if (window->xtransient_for != None &&
+ meta_display_lookup_x_window (window->display,
+ window->xtransient_for) == NULL)
+ {
+ window->xtransient_for = None;
+ meta_warning (_("Invalid WM_TRANSIENT_FOR window 0x%lx specified "
+ "for %s.\n"),
+ window->xtransient_for, window->desc);
+ }
+
window->transient_parent_is_root_window =
window->xtransient_for == window->screen->xroot;