[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

one-window-p with no args no good for standalone minibuffer frame

From: Drew Adams
Subject: one-window-p with no args no good for standalone minibuffer frame
Date: Wed, 21 Nov 2007 13:09:02 -0800

My reading of the doc string for `one-window-p says that
(one-window-p) should be the same as (one-window-p nil 'foobar), when
it is evaled in a standalone minibuffer frame and the minibuffer is
active. But it is not. The latter gives the correct result, t; the
former returns nil.

For instance, with a standalone minibuffer frame and active
minibuffer, this code should return t, just as it does if
(one-window-p nil 'foobar) is used in it:

(and (active-minibuffer-window)
       (select-window (minibuffer-window))

The problem, I think, is that `one-window-p' just passes its
ALL-FRAMES arg to `next-window', and `next-window' does not treat its
ALL-FRAMES arg the same as (what the doc string states for)

The doc string of `one-window-p' says this for arg ALL-FRAMES:
"ALL-FRAMES nil or omitted means count only the selected frame, plus
the minibuffer it uses (which may be on another frame)." To me, that
means it should count only the standalone minibuffer frame.

The doc string of `next-window' says that nil ALL-FRAMES means to
cycle among all frames that use the same minibuffer (whenever the
minibuffer counts, which it does when it is active). That is incorrect
behavior for `one-window-p', and it might even be incorrect behavior
for `next-window': In a standalone minibuffer, I would not expect
`next-window' with nil ALL-FRAMES to return a window on another frame.

BTW, I don't understand why the sexp (if nomini 'arg) is used in the
definition of `one-window-p'.  Why is the special value `arg' (or nil)
passed, instead of just the value of NOMINI?

In GNU Emacs 22.1.1 (i386-mingw-nt5.1.2600)
 of 2007-06-02 on RELEASE
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4) --cflags -Ic:/gnuwin32/include'

reply via email to

[Prev in Thread] Current Thread [Next in Thread]