emacs-devel
[Top][All Lists]
Advanced

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

Re: mode-line-inactive and toggle-input-method


From: Kim F. Storm
Subject: Re: mode-line-inactive and toggle-input-method
Date: 27 Feb 2002 00:15:05 +0100
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2.50

Richard Stallman <address@hidden> writes:

>     It seems like under some circumstances, the selected window is still
>     displayed with an inactive mode line.  With today's CVS, try this:
> 
>        emacs -q --no-site-file
>        C-x 4 f FTP RET
>        M-% C-u C-\ latin-2-prefix RET 'i
> 
>     (The "C-u C-\" part is needed if you want to replace non-ASCII
>     characters: it lets you select a non-default input method.)  Watch
>     closely: as soon as you type "C-u C-\", the mode line of the selected
>     window becomes displayed in the mode-line-inactive face.
> 
> I think this is because of the way minibuffer-scroll-window is handled
> in minibuf.c.  Maybe it should be bound on entry to the inner
> minibuffer (or to all minibuffers).  See read_minibuf_unwind for how
> this is handled for other things.
> 

There are actually two problems related to the usage of the 
minibuffer-scroll-window variable.

The first problem is that minibuffer-scroll-window is not guaranteed to
keep its original value that was set (from selected-window) on
entry to the minibuffer.  Specifically, it is changed when a
completion buffer is displayed, so that scrolling will apply to the
completion window.  So once a completion buffer is displayed, the
original concept of the "window selected when entering minibuffer" is
lost.

The second problem is that if the selected window is a minibuffer,
and we recursively enters the minibuffer, minibuffer-scroll-window is
set to the previous minibuffer window, again losing the concept of
which window was originally selected when first entering the
minibuffer.

I have just committed changes to fix this problem.  

The proper fix is to add a new internal variable (named
Vminibuf_selected_window) which is similar to Vminibuf_scroll_window,
but which doesn't change after entry to the minibuffer, and which
doesn't change if we recursively enter the minibuffer from a selected
minibuffer window.  My testing shows this works very well.

-- 
Kim F. Storm <address@hidden> http://www.cua.dk




reply via email to

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