diff options
author | Richard M. Stallman <rms@gnu.org> | 1994-03-08 06:18:49 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1994-03-08 06:18:49 +0000 |
commit | 0ce4503c0400c04d35788733616940ae7097a016 (patch) | |
tree | c9642fd9f03d333a8b3da9b3f055655640e8488d | |
parent | b3d90ea9db4290cc6f85759013df01977bff2dce (diff) | |
download | emacs-0ce4503c0400c04d35788733616940ae7097a016.tar.gz |
(next_frame, prev_frame): If MINIBUF is `visible',
consider only visible frames.
(Fnext_frame, Fprevious_frame): Doc fix.
(syms_of_frame): Staticpro Qvisible.
-rw-r--r-- | src/frame.c | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/src/frame.c b/src/frame.c index f90d5384b0e..5c6bffd05a9 100644 --- a/src/frame.c +++ b/src/frame.c @@ -85,6 +85,7 @@ Lisp_Object Qunsplittable; Lisp_Object Qmenu_bar_lines; Lisp_Object Qwidth; Lisp_Object Qx; +Lisp_Object Qvisible; extern Lisp_Object Vminibuffer_list; extern Lisp_Object get_minibuffer (); @@ -469,7 +470,9 @@ DEFUN ("frame-list", Fframe_list, Sframe_list, If MINIBUF is nil, exclude minibuffer-only frames. If MINIBUF is a window, include only frames using that window for their minibuffer. - If MINIBUF is non-nil, and not a window, include all frames. */ + If MINIBUF is `visible', include all visible frames. + Otherwise, include all frames. */ + Lisp_Object next_frame (frame, minibuf) Lisp_Object frame; @@ -506,7 +509,13 @@ next_frame (frame, minibuf) if (! FRAME_MINIBUF_ONLY_P (XFRAME (f))) return f; } - else if (XTYPE (minibuf) == Lisp_Window) + else if (EQ (minibuf, Qvisible)) + { + FRAME_SAMPLE_VISIBILITY (XFRAME (f)); + if (FRAME_VISIBLE_P (XFRAME (f))) + return f; + } + else if (WINDOWP (minibuf)) { if (EQ (FRAME_MINIBUF_WINDOW (XFRAME (f)), minibuf)) return f; @@ -524,7 +533,9 @@ next_frame (frame, minibuf) If MINIBUF is nil, exclude minibuffer-only frames. If MINIBUF is a window, include only frames using that window for their minibuffer. - If MINIBUF is non-nil and not a window, include all frames. */ + If MINIBUF is `visible', include all visible frames. + Otherwise, include all frames. */ + Lisp_Object prev_frame (frame, minibuf) Lisp_Object frame; @@ -560,6 +571,12 @@ prev_frame (frame, minibuf) if (EQ (FRAME_MINIBUF_WINDOW (XFRAME (f)), minibuf)) prev = f; } + else if (EQ (minibuf, Qvisible)) + { + FRAME_SAMPLE_VISIBILITY (XFRAME (f)); + if (FRAME_VISIBLE_P (XFRAME (f))) + prev = f; + } else prev = f; } @@ -584,7 +601,8 @@ If omitted, FRAME defaults to the selected frame.\n\ If optional argument MINIFRAME is nil, exclude minibuffer-only frames.\n\ If MINIFRAME is a window, include only frames using that window for their\n\ minibuffer.\n\ -If MINIFRAME is non-nil and not a window, include all frames.") +If MINIFRAME is `visible', include all visible frames.\n\ +Otherwise, include all frames.") (frame, miniframe) Lisp_Object frame, miniframe; { @@ -605,7 +623,8 @@ If omitted, FRAME defaults to the selected frame.\n\ If optional argument MINIFRAME is nil, exclude minibuffer-only frames.\n\ If MINIFRAME is a window, include only frames using that window for their\n\ minibuffer.\n\ -If MINIFRAME is non-nil and not a window, include all frames.") +If MINIFRAME is `visible', include all visible frames.\n\ +Otherwise, include all frames.") (frame, miniframe) Lisp_Object frame, miniframe; { @@ -1505,12 +1524,14 @@ syms_of_frame () staticpro (&Qonly); Qunsplittable = intern ("unsplittable"); staticpro (&Qunsplittable); + Qmenu_bar_lines = intern ("menu-bar-lines"); + staticpro (&Qmenu_bar_lines); Qwidth = intern ("width"); staticpro (&Qwidth); Qx = intern ("x"); staticpro (&Qx); - Qmenu_bar_lines = intern ("menu-bar-lines"); - staticpro (&Qmenu_bar_lines); + Qvisible = intern ("visible"); + staticpro (&Qvisible); staticpro (&Vframe_list); |