elisp: Visibility of Frames

 
 28.11 Visibility of Frames
 ==========================
 
 A frame on a graphical display may be “visible”, “invisible”, or
 “iconified”.  If it is visible, its contents are displayed in the usual
 manner.  If it is iconified, its contents are not displayed, but there
 is a little icon somewhere to bring the frame back into view (some
 window managers refer to this state as “minimized” rather than
 “iconified”, but from Emacs’ point of view they are the same thing).  If
 a frame is invisible, it is not displayed at all.
 
    Visibility is meaningless on text terminals, since only the selected
 one is actually displayed in any case.
 
  -- Function: frame-visible-p frame
      This function returns the visibility status of frame FRAME.  The
      value is ‘t’ if FRAME is visible, ‘nil’ if it is invisible, and
      ‘icon’ if it is iconified.
 
      On a text terminal, all frames are considered visible for the
      purposes of this function, even though only one frame is displayed.
      SeeRaising and Lowering.
 
  -- Command: iconify-frame &optional frame
      This function iconifies frame FRAME.  If you omit FRAME, it
      iconifies the selected frame.
 
  -- Command: make-frame-visible &optional frame
      This function makes frame FRAME visible.  If you omit FRAME, it
      makes the selected frame visible.  This does not raise the frame,
      but you can do that with ‘raise-frame’ if you wish (SeeRaising
      and Lowering).
 
  -- Command: make-frame-invisible &optional frame force
      This function makes frame FRAME invisible.  If you omit FRAME, it
      makes the selected frame invisible.
 
      Unless FORCE is non-‘nil’, this function refuses to make FRAME
      invisible if all other frames are invisible..
 
    The visibility status of a frame is also available as a frame
 parameter.  You can read or change it as such.  SeeManagement
 Parameters.  The user can also iconify and deiconify frames with the
 window manager.  This happens below the level at which Emacs can exert
 any control, but Emacs does provide events that you can use to keep
 track of such changes.  SeeMisc Events.