aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/frame.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/src/frame.c b/src/frame.c
index 2eec0c87bab..eaab6d11ba7 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -454,7 +454,7 @@ DEFUN ("selected-frame", Fselected_frame, Sselected_frame, 0, 0, 0,
454 XSET (tem, Lisp_Frame, selected_frame); 454 XSET (tem, Lisp_Frame, selected_frame);
455 return tem; 455 return tem;
456} 456}
457 457
458DEFUN ("window-frame", Fwindow_frame, Swindow_frame, 1, 1, 0, 458DEFUN ("window-frame", Fwindow_frame, Swindow_frame, 1, 1, 0,
459 "Return the frame object that window WINDOW is on.") 459 "Return the frame object that window WINDOW is on.")
460 (window) 460 (window)
@@ -520,6 +520,30 @@ If omitted, FRAME defaults to the currently selected frame.")
520 return XFRAME (frame)->selected_window; 520 return XFRAME (frame)->selected_window;
521} 521}
522 522
523DEFUN ("set-frame-selected-window", Fset_frame_selected_window,
524 Sset_frame_selected_window, 2, 2, 0,
525 "Set the selected window of frame object FRAME to WINDOW.\n\
526If FRAME is nil, the selected frame is used.\n\
527If FRAME is the selected frame, this makes WINDOW the selected window.")
528 (frame, window)
529 Lisp_Object frame, window;
530{
531 if (NILP (frame))
532 XSET (frame, Lisp_Frame, selected_frame);
533 else
534 CHECK_LIVE_FRAME (frame, 0);
535
536 CHECK_LIVE_WINDOW (window, 1);
537
538 if (! EQ (frame, WINDOW_FRAME (XWINDOW (window))))
539 error ("In `set-frame-selected-window', WINDOW is not on FRAME");
540
541 if (XFRAME (frame) == selected_frame)
542 return Fselect_window (window);
543
544 return XFRAME (frame)->selected_window = window;
545}
546
523DEFUN ("frame-list", Fframe_list, Sframe_list, 547DEFUN ("frame-list", Fframe_list, Sframe_list,
524 0, 0, 0, 548 0, 0, 0,
525 "Return a list of all frames.") 549 "Return a list of all frames.")
@@ -1698,6 +1722,7 @@ For values specific to the separate minibuffer frame, see\n\
1698 defsubr (&Swindow_frame); 1722 defsubr (&Swindow_frame);
1699 defsubr (&Sframe_root_window); 1723 defsubr (&Sframe_root_window);
1700 defsubr (&Sframe_selected_window); 1724 defsubr (&Sframe_selected_window);
1725 defsubr (&Sset_frame_selected_window);
1701 defsubr (&Sframe_list); 1726 defsubr (&Sframe_list);
1702 defsubr (&Snext_frame); 1727 defsubr (&Snext_frame);
1703 defsubr (&Sprevious_frame); 1728 defsubr (&Sprevious_frame);