Subject: bug#33864: Acknowledgement (27.0.50; Display corruption with "small" font size when something is in the fringe)

From: Dale Sedivec <[email-masked]>
Date: Thu, 27 Dec 2018 09:45:57 -0600

On Thu, Dec 27, 2018 at 5:59 AM Alan Third <[email-masked]> wrote:
> On Wed, Dec 26, 2018 at 10:34:32PM -0600, Dale Sedivec wrote:
> > I did a "git bisect" on master and I think I traced this to:
> >
> > commit b58e8b82ededfb314e385d97df1efed2ce84f4db
> > Merge: febdedfa8d 094fcf62d2
> > Author: Glenn Morris <[email-masked]>
> > Date:   Wed Nov 28 07:51:11 2018 -0800
> >
> >     Merge from origin/emacs-26
> >
> >     094fcf6 Fix more drawing bugs in NS port (bug#32932)
>
> Ironically I’d expect that commit to fix any issue like this, not
> cause it. The previous code would cause the entire line to be redrawn
> if there was a fringe bitmap, but the new code should cause just the
> bitmap itself to be redrawn.
>
> Although I suppose it might not be the fringe bitmap code that’s
> causing this.
>
> > Strange that I haven't been seeing this in the emacs-26 branch, I will
> > try and build that again tomorrow to make sure I'm using an Emacs 26
> > build with the above commit.
>
> I can’t replicate the issue on either master or emacs-26.

You would probably know better than I would, but the only possible
relevant differences I can think of are:

* I'm using a smaller font size
* I'm using a Retina (i.e. scaled) display
* I'm using macOS 10.13.6

I tried emacs-26 (9578c2aa2) this morning and I was able to recreate
this problem, though it presents a bit differently than it did on
master: on emacs-26 branch, most any line with a fringe bitmap would
have some portion of the line (I *think* always a prefix of the line)
turning grey-on-grey, as in my original screen shot, but the
grey-on-grey would not change as I scrolled or moved around on the
line.  The corruption was immediately visible when scrolling to the
next error, and it didn't change.

> Can you replicate this on any line that has a ‘large’ fringe bitmap,
> or is it only certain ones?

On emacs-26, I reproduced this on *most* lines with fringe bitmaps
while moving around flymake.el with flymake-mode turned on.  I found
one line that didn't exhibit this problem while on the emacs-26
branch, which was a line with a flymake warning that was something
starting like "  (if ..." as one of the first statements inside a
defun.  (Sorry but I didn't note the line number, and I've rebuilt on
master since then.)

On master, every line with a fringe bitmap seems to exhibit this problem.

I am attaching the Elisp script I used to reproduce this problem while
bisecting, loaded like:

      nextstep/Emacs.app/Contents/MacOS/Emacs -Q --load repro.el

On a bad build, I would see this corruption as soon as I moved the
cursor left/right after running the above script.

Also, here is how I ran configure:

./configure --with-ns \
            --with-modules --with-rsvg --with-imagemagick \
            --with-xml2 --with-gnutls --without-x

Please let me know if I can provide any more information.

Dale