Subject: bug#27647: 26.0.50; Line numbers implemented natively disappear momentarily when frame out of focus

From: Romanos Skiadas <[email-masked]>
Date: Wed, 11 Oct 2017 21:32:06 +0100

On 05/10/17 14:10, Eli Zaretskii wrote:
>> From: Kaushal Modi <[email-masked]>
>> Date: Thu, 05 Oct 2017 12:40:35 +0000
>> Cc: [email-masked], [email-masked]
>>
>> As you know from my other thread, I am unable to use gdb. As I don't know enough C to hack it myself, can
>> you provide pointers to where I can put print statements or something like that in the C code directly to help
>> with this debug?
> I couldn't think of anything useful.  Which is not surprising, as I
> have no idea what could be involved in this.
>
>> @Eli: This problem is consistent, though not consistent enough to yet create a recipe. But it does happen at
>> least once a day. I am still sticking on to native line numbers and not giving up. Can this be please made a
>> blocker for 26.1?
> I don't think it's an Emacs bug.  It's most probably something related
> to some hook or timer that you set up in your customizations.  That's
> the only way a frame without a focus could get redrawn.  So please
> look through all of your customizations to find the one that is
> responsible.
Evil is very probably doing something funky like this. I started seeing 
line-numbers disappearing completely again, not partially as I mentioned 
at some point in the thread, with flycheck-pos-tip disabled. Turns out 
it was some interaction between flyspell's overlays & evil. A recipe to 
reliably reproduce this with evil is:

echo "foo" > /tmp/test.txt

(cd /tmp && git clone https://github.com/emacs-evil/evil)

Add this to a file, eg /tmp/test-init.el:

    (add-hook 'text-mode-hook (lambda () (display-line-numbers-mode)))
    (add-to-list 'load-path "/tmp/evil")
    (require 'evil)
    (evil-mode 1)

  emacs -Q -l /tmp/test-init.el /tmp/test.txt

Put this in the test.txt buffer an eval it:
(let ((overlay (make-overlay 1 6 nil t nil))) ;; flyspell does this on 
misspelled words
   (overlay-put overlay 'help-echo "a"))

Make sure you are in normal more (press ESC)
Move the mouse above the f at the start of the buffer and hover until 
the "a" shows up.
Click and drag along toward to end of the line. The line numbers 
consistently go away with this recipe for me.

I'll start dissecting evil to see what causes this.

Best,
Romanos