From 1d9e66aea17787e03954f32c6cd7561c881bb444 Mon Sep 17 00:00:00 2001 From: Noam Postavsky Date: Sun, 6 May 2018 10:07:25 -0400 Subject: [PATCH] Don't check non-X frames for z order (Bug#31373) * src/xfns.c (x_frame_list_z_order): Only use frames with `output_method' set to `output_x_window'. --- src/xfns.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/xfns.c b/src/xfns.c index 20fe61bffd8..3da853ede8a 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -5300,12 +5300,16 @@ x_frame_list_z_order (Display* dpy, Window window) Lisp_Object frame, tail; FOR_EACH_FRAME (tail, frame) - /* With a reparenting window manager the parent_desc field - usually specifies the topmost windows of our frames. - Otherwise FRAME_OUTER_WINDOW should do. */ - if (XFRAME (frame)->output_data.x->parent_desc == children[i] - || FRAME_OUTER_WINDOW (XFRAME (frame)) == children[i]) - frames = Fcons (frame, frames); + { + struct frame *cf = XFRAME (frame); + /* With a reparenting window manager the parent_desc + field usually specifies the topmost windows of our + frames. Otherwise FRAME_OUTER_WINDOW should do. */ + if (FRAME_X_P (cf) + && (cf->output_data.x->parent_desc == children[i] + || FRAME_OUTER_WINDOW (cf) == children[i])) + frames = Fcons (frame, frames); + } } if (children) XFree ((char *)children); -- 2.39.5