I don't know if the following behavior is a bug or feature, but...
For years, I've been using the following bit of code, to emulate for
me a very useful feature that used to exist in much older X
implementations, the "active icon". The intended effect is merely
that a full-size window has its font toggled with "nil2", so that it
smallifies into a corner, to get out of the way.
(defvar active-icon-iconic nil
"Iconic state of emacs.")
(defvar x-open-font (font-name (face-font 'default))
"*String name of font when window is \"opened.\"")
(defun x-active-icon-toggle (&optional arg)
"Toggles between the nil2 font and a large font."
(interactive)
(if active-icon-iconic
(progn
(setq active-icon-iconic nil)
(set-face-font 'default x-open-font))
(setq active-icon-iconic t)
(set-face-font 'default "nil2")))
(global-set-key "\e\C-Z" 'x-active-icon-toggle)
Today, I happened to have 2 frames open (editing in one, using *Info*
in the other), and had "iconified" XEmacs while I fiddled in an xterm:
Both frames were small. One of the frames was then completely covered
by the xterm. I toggled again in the visible frame to bring them back
up, and that frame opened...but the other frame did not. When I moved
the xterm to expose part of the frame, only then did that frame
"de-iconify".
After seeing this once, I played with it for a while. The effect is
seen even when part of the WM's (I use fvwm2) title bar or borders are
exposed, but as soon as window content proper is exposed, then the
font change in that frame takes place.