aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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,
464 return XWINDOW (window)->frame; 464 return XWINDOW (window)->frame;
465} 465}
466 466
467DEFUN ("frame-first-window", Fframe_first_window, Sframe_first_window, 0, 1, 0,
468 "Returns the topmost, leftmost window of FRAME.\n\
469If omitted, FRAME defaults to the currently selected frame.")
470 (frame)
471 Lisp_Object frame;
472{
473 Lisp_Object w;
474
475 if (NILP (frame))
476 w = selected_frame->root_window;
477 else
478 {
479 CHECK_LIVE_FRAME (frame, 0);
480 w = XFRAME (frame)->root_window;
481 }
482 while (NILP (XWINDOW (w)->buffer))
483 {
484 if (! NILP (XWINDOW (w)->hchild))
485 w = XWINDOW (w)->hchild;
486 else if (! NILP (XWINDOW (w)->vchild))
487 w = XWINDOW (w)->vchild;
488 else
489 abort ();
490 }
491 return w;
492}
493
467DEFUN ("frame-root-window", Fframe_root_window, Sframe_root_window, 0, 1, 0, 494DEFUN ("frame-root-window", Fframe_root_window, Sframe_root_window, 0, 1, 0,
468 "Returns the root-window of FRAME.\n\ 495 "Returns the root-window of FRAME.\n\
469If omitted, FRAME defaults to the currently selected frame.") 496If omitted, FRAME defaults to the currently selected frame.")