From: Noam Postavsky Date: Sun, 6 May 2018 14:07:25 +0000 (-0400) Subject: Don't check non-X frames for z order (Bug#31373) X-Git-Tag: emacs-26.1~40 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=1d9e66a;p=emacs.git 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'. --- 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);