diff options
author | Richard M. Stallman <rms@gnu.org> | 1994-04-23 20:53:09 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1994-04-23 20:53:09 +0000 |
commit | 4a7cfafcf713410e08089e706bddd02b06c3bb70 (patch) | |
tree | 77e5e041d842ce317228b412a111f64f13ee150a | |
parent | a21cfa1191d832372cefff686f3b849e2c56da12 (diff) | |
download | emacs-4a7cfafcf713410e08089e706bddd02b06c3bb70.tar.gz emacs-4a7cfafcf713410e08089e706bddd02b06c3bb70.tar.bz2 emacs-4a7cfafcf713410e08089e706bddd02b06c3bb70.zip |
(Fset_frame_selected_window): New function.
(syms_of_frame): Set up Lisp function.
-rw-r--r-- | src/frame.c | 27 |
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, XSET (tem, Lisp_Frame, selected_frame); return tem; } - + DEFUN ("window-frame", Fwindow_frame, Swindow_frame, 1, 1, 0, "Return the frame object that window WINDOW is on.") (window) @@ -520,6 +520,30 @@ If omitted, FRAME defaults to the currently selected frame.") return XFRAME (frame)->selected_window; } +DEFUN ("set-frame-selected-window", Fset_frame_selected_window, + Sset_frame_selected_window, 2, 2, 0, + "Set the selected window of frame object FRAME to WINDOW.\n\ +If FRAME is nil, the selected frame is used.\n\ +If FRAME is the selected frame, this makes WINDOW the selected window.") + (frame, window) + Lisp_Object frame, window; +{ + if (NILP (frame)) + XSET (frame, Lisp_Frame, selected_frame); + else + CHECK_LIVE_FRAME (frame, 0); + + CHECK_LIVE_WINDOW (window, 1); + + if (! EQ (frame, WINDOW_FRAME (XWINDOW (window)))) + error ("In `set-frame-selected-window', WINDOW is not on FRAME"); + + if (XFRAME (frame) == selected_frame) + return Fselect_window (window); + + return XFRAME (frame)->selected_window = window; +} + DEFUN ("frame-list", Fframe_list, Sframe_list, 0, 0, 0, "Return a list of all frames.") @@ -1698,6 +1722,7 @@ For values specific to the separate minibuffer frame, see\n\ defsubr (&Swindow_frame); defsubr (&Sframe_root_window); defsubr (&Sframe_selected_window); + defsubr (&Sset_frame_selected_window); defsubr (&Sframe_list); defsubr (&Snext_frame); defsubr (&Sprevious_frame); |