diff options
author | Karl Heuer <kwzh@gnu.org> | 1994-03-25 06:12:40 +0000 |
---|---|---|
committer | Karl Heuer <kwzh@gnu.org> | 1994-03-25 06:12:40 +0000 |
commit | ba32f2db71110396e28e6c1841dfdd2aa5daa68c (patch) | |
tree | 0f04e1d7286f7633c2b858578095416d9a6fcf23 | |
parent | 121e45555c727682faf2b58ecdd0ab170f326df7 (diff) | |
download | emacs-ba32f2db71110396e28e6c1841dfdd2aa5daa68c.tar.gz emacs-ba32f2db71110396e28e6c1841dfdd2aa5daa68c.tar.bz2 emacs-ba32f2db71110396e28e6c1841dfdd2aa5daa68c.zip |
(Fframe_first_window): New function.
-rw-r--r-- | src/frame.c | 27 |
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.") |