bug-gnu-emacs
[Top][All Lists]
Advanced

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

bug#24500: 25.1.50; Can't other-window from minibuffer if Ediff control


From: martin rudalics
Subject: bug#24500: 25.1.50; Can't other-window from minibuffer if Ediff control panel frame present
Date: Sat, 01 Oct 2016 15:08:56 +0200

>> With "activated window at the window-manager level" you mean the window
>> that has input focus and has its title bar painted differently from
>> other windows but is not necessarily the topmost window in the Z-order?
>> That window is here the one showing frame 1 after you switched to it via
>> C-x o.
>
> It's the one showing frame 2, as I said.

So we seem to have another problem.  Just to make sure, I use a mingw32
build of Emacs 25 on Windos XP with the following patch

--- a/src/frame.c
+++ b/src/frame.c
@@ -1157,7 +1157,10 @@ do_switch_frame (Lisp_Object frame, int track, int 
for_deletion, Lisp_Object nor
       if (FRAMEP (xfocus))
        {
          focus = FRAME_FOCUS_FRAME (XFRAME (xfocus));
-         if (FRAMEP (focus) && XFRAME (focus) == SELECTED_FRAME ())
+         if ((FRAMEP (focus) && XFRAME (focus) == SELECTED_FRAME ())
+             || (NILP (focus)
+                 && EQ (FRAME_MINIBUF_WINDOW (XFRAME (frame)),
+                        sf->selected_window)))
            Fredirect_frame_focus (xfocus, frame);
        }
     }

Now with emacs -Q I put the following form

(make-frame '((minibuffer . nil)))

in *scratch* and evaluate it via C-x C-e.  This gets me a new frame, say
F2 which is selected and has input focus.  To avoid confusion I make the
sole window in F2 show *Messages*.

Now I do C-x 5 o which gets me back to the initial frame, say F1.  F1 is
selected and has input focus.  Now I do M-x.  F1 is still selected and
has input focus.  Now I do C-x 5 o.  F2 gets selected and has input
focus.  Can we agree until here?

Now I do C-x o.  This selects F1 and gives it input focus with the
*scratch* window selected.  Typed text appears in *scratch*.  If F1 and
F2 overlap, F2 obscures F1.  I suppose you observe something different
here.  Now I do C-x o again.  This selects the minibuffer window on F1.
Typed text now appears in the echo area.

> Here, after typing M-x in *scratch* in the recipe:
> * if I type C-x o the activated window does not change;

You mean C-x o does not take you to F2 in my parlance.  Here F2 gets
selected and input focus.

> * if I type C-x 5 o the activated window does change.
>
> Is that the visible difference you mean?

It's not in your original scenario but apparently our installations
differ here.  Are you sure you applied the same change as I did?

>> But what's wrong with that?  After all you _did_ use C-x o to select
>> that window.
>
> It's not wrong until you type Alt-Tab.

Alt-tabbing was not part of your scenarios so far.  Please give a
step-by-step recipe indicating the first time it fails.

>> Do you mean that on frame 1 you cannot use Alt-Tab to switch to frame 2?
>
> Possibly.
>
> Typing Alt-Tab several times switches the window-manager's activation
> between frame 1 and frame 2 (and other windows that may be present
> if you hold Alt and type Tab more than once). I can switch activation between
> the two Emacs windows and any other windows as much as I like, as
> evidenced by the title-bar painting style.
>
> But no amount of typing Alt-Tab changes which Emacs window contains
> the solid flashing cursor where text is inserted when I type characters.

Here Alt-Tab always switches between all Emacs frames.  Otherwise we
would have had problems on any multi-frame layed-out Emacs.  And
certainly we would have had problems in an unpatched Emacs when invoking
M-x from the minibuffer-less frame.  Can you try if C-x o fails for that
as well?

> Firstly, no, I'm in frame 2.

So you mean that frame 2 has input focus and is selected and clicking on
frame 1 does not select frame 1 and give it input focus?  Something must
be broken on your side.

> Secondly, I'm saying that any amount of switching between windows,
> either using Alt-Tab, or by clicking on title bars, makes no difference
> to the window where text is inserted.

Can anyone observe that?  I just tried on Windows 7 and see the same
behavior as on XP.

>> Here at any moment I can use Alt-Tab or the mouse to select any of the
>> three windows involved in your scenario and continue typing text there.
>> If this doesn't work on your system please tell me precisely where it
>> fails.
>
> I have tried to do that.

I'm left without clues.

martin





reply via email to

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