summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Heuer <kwzh@gnu.org>1994-03-25 06:12:40 +0000
committerKarl Heuer <kwzh@gnu.org>1994-03-25 06:12:40 +0000
commitba32f2db71110396e28e6c1841dfdd2aa5daa68c (patch)
tree0f04e1d7286f7633c2b858578095416d9a6fcf23
parent121e45555c727682faf2b58ecdd0ab170f326df7 (diff)
downloademacs-ba32f2db71110396e28e6c1841dfdd2aa5daa68c.tar.gz
emacs-ba32f2db71110396e28e6c1841dfdd2aa5daa68c.tar.bz2
emacs-ba32f2db71110396e28e6c1841dfdd2aa5daa68c.zip
(Fframe_first_window): New function.
-rw-r--r--src/frame.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/frame.c b/src/frame.c
index b11a40a61a3..60f50a86e04 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -464,6 +464,33 @@ DEFUN ("window-frame", Fwindow_frame, Swindow_frame, 1, 1, 0,
return XWINDOW (window)->frame;
}
+DEFUN ("frame-first-window", Fframe_first_window, Sframe_first_window, 0, 1, 0,
+ "Returns the topmost, leftmost window of FRAME.\n\
+If omitted, FRAME defaults to the currently selected frame.")
+ (frame)
+ Lisp_Object frame;
+{
+ Lisp_Object w;
+
+ if (NILP (frame))
+ w = selected_frame->root_window;
+ else
+ {
+ CHECK_LIVE_FRAME (frame, 0);
+ w = XFRAME (frame)->root_window;
+ }
+ while (NILP (XWINDOW (w)->buffer))
+ {
+ if (! NILP (XWINDOW (w)->hchild))
+ w = XWINDOW (w)->hchild;
+ else if (! NILP (XWINDOW (w)->vchild))
+ w = XWINDOW (w)->vchild;
+ else
+ abort ();
+ }
+ return w;
+}
+
DEFUN ("frame-root-window", Fframe_root_window, Sframe_root_window, 0, 1, 0,
"Returns the root-window of FRAME.\n\
If omitted, FRAME defaults to the currently selected frame.")