Subject: bug#20072: Incorrect popup showing

From: Eli Zaretskii <[email-masked]>
Date: Tue, 10 Mar 2015 19:03:41 +0200

> From: Nikolay Puzanov <[email-masked]>
> Date: Tue, 10 Mar 2015 10:48:38 +0000
> 
> I found bug on display a popup window from auto-complete-mode. I attach two
> screenshot and init.el. Bug appear when global-linum-mode is on.

Damn that linum-mode!

> Commit e589765 bring this bug. I changed the line that seemed most appropriate.
> I not understand how it work, but this patch fix it:
> 
> --- a/src/xdisp.c
> +++ b/src/xdisp.c
> @@ -3434,6 +3434,7 @@ handle_stop (struct it *it)
>    it->dpvec = NULL;
>    it->current.dpvec_index = -1;
>    handle_overlay_change_p = !it->ignore_overlay_strings_at_pos_p;
> +  it->ignore_overlay_strings_at_pos_p = false;
>    it->ellipsis_p = 0;
>    
>    /* Use face of preceding text for ellipsis (if invisible) */

Thanks, but I don't think this is the right fix.  It is fundamentally
wrong to unconditionally reset this flag at that spot, because there's
no way of knowing there that we have processed all the overlay
strings.

> Note, this patch do not break fix by e589765
> (http://lists.gnu.org/archive/html/bug-gnu-emacs/2015-02/msg00075.html).

The problem fixed by e589765 is much more fundamental than just what
bug 19307 reported.  When I worked on the fix, I tested a lot more
situations than originally reported, and some of them will be broken
by your suggested change.

So we need to look for another solution.

> Screenshots also uploaded to the external server:
> http://www.embddr.com/emacs-popup-good.png
> http://www.embddr.com/emacs-popup-bad.png

Thanks, I will look into this when I have time.

> Init.el:
> (require 'package)
> (add-to-list 'package-archives '("melpa" .
> "http://melpa.milkbox.net/packages/"))
> (package-initialize)
> 
> (require 'auto-complete-config)
> (auto-complete-mode t)
> (ac-config-default)
> 
> (global-linum-mode t)

Is it enough to do just this instead:

  (require 'auto-complete-config)
  (auto-complete-mode 1)
  (ac-config-default)
  (global-linum-mode 1)

IOW, can I skip the steps that set up package.el, and instead download
auto-complete manually?