Subject: bug#16909: 24.3; scrolling *Completions* window with tab sometimes chooses a wrong window

From: martin rudalics <[email-masked]>
Date: Wed, 05 Mar 2014 15:03:34 +0100

> If the 'other-window-scroll-buffer' is pointing to a dead buffer
 > 'scroll-other-window'
 > does not fallback to its normal behaviour. You get an 'invalid buffer'
 > message.

Hopefully not any more.  Did you try the latest trunk?

 > So we don't have to kill the *Completions* buffer. We need to set the
 > variable back
 > to nil to resume normal user operations after using auto complete scrolling.

We can now kill the *Completions* buffer as well.  We only have to be
sure what's easier - keeping track of `other-window-scroll-buffer' and
resetting it or killing the buffer.  Somewhere there should be a
`quit-restore-window' call around, responsible for accomplishing part of
that task already.

 > My investigation was to figure out what is going on, not precisely where to
 > fix it and was
 > based on semantic's autocomplete which behaves exactly the same. I just
 > thought
 > that reporting this in base emacs functionality might get a higher chance
 > to get
 > attention. And the mechanism and a cause seems to be exactly the same.
 > I didn't manage to pinpoint where it happens in case of elisp auto complete.
 > Only for semantic displayor one (which needs fixing as well).

Then try fixing that.  At the time of displaying the *Completions*
buffer set `other-window-scroll-buffer' to the *Completions* buffer.  At
the time of removing that window (I hope it gets removed) reset
`other-window-scroll-buffer' to nil or kill the *Completions* buffer.

Writing this should be simple once you know where to apply the changes.
The more important task is to give it some testing.

martin