summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;