Subject: bug#11484: closed (Re: bug#11484: 23.4; Scrolling leaves traces of old text behind)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 21 Oct 2012 19:10:02 +0000

Your bug report

#11484: 23.4; Scrolling leaves traces of old text behind

which was filed against the emacs,ns package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
11484: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11484
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#11484: 23.4; Scrolling leaves traces of old text behind
From: Jan Djärv <[email-masked]>
To: Frank Marcoline <[email-masked]>
Cc: [email-masked]
Date: Sun, 21 Oct 2012 21:07:11 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello.

I have fixed this in the trunk, but I'm not satisfied with the solution, but it will have to do for now.
The problem has to do with LCD-smoothing.  As you can see in the attached picture

one pixel of the A in the lower right corner extends in to the box for T.  As Emacs does not know about these pixels, when we write a Y over the A, the pixel remains.
You can see the same effect when Y is replaced with for example A.  The top right part of the Y has an extra pixel in the next character box, that remains.

The current solution is to turn off LCD-smoothing.  A better solution would be to draw the whole line every time.  Or somehow keep track of adjacent characters that needs to be redrawn.  But that may involve the display engine and is a bigger task.

	Jan D.

16 maj 2012 kl. 00:02 skrev Frank Marcoline <[email-masked]>:

> Bug:  Scrolling can leave behind traces of old text.
> The traces appear to be cyan outlines of the right hand
> side of characters which previously occupied the same location.
> 
> For example, a "Y" will leave behind a small cyan dot from its upper
> right, an "A" will leave behind a small cyan dot from its lower right.
> 
> Steps to reproduce:
> 
> 1)  /Applications/Emacs.app/Contents/MacOS/Emacs -Q
> 2)  C-x C-f helix.pqr [Ret]
> 3)  Rapidly scroll up and down with two-finger drag gesture
> 
> I have attached the file helix.pqr, for which the effect is
> very pronounced, and a screenshot faithfully reproducing
> the effect.  Note the small cyan marks on the left of
> many numbers and letters.
> 
> This version of emacs came from http://emacsformacosx.com/
> 
> In GNU Emacs 23.4.1 (x86_64-apple-darwin, NS apple-appkit-1038.36)
> of 2012-01-29 on bob.porkrind.org
> Windowing system distributor `Apple', version 10.3.1138
> configured using `configure  '--host=x86_64-apple-darwin'
> '--build=i686-apple-darwin' '--with-ns'
> 'build_alias=i686-apple-darwin' 'host_alias=x86_64-apple-darwin'
> 'CC=gcc -mmacosx-version-min=10.5''
> 
> Important settings:
>  value of $LC_ALL: nil
>  value of $LC_COLLATE: nil
>  value of $LC_CTYPE: nil
>  value of $LC_MESSAGES: nil
>  value of $LC_MONETARY: nil
>  value of $LC_NUMERIC: nil
>  value of $LC_TIME: nil
>  value of $LANG: en_US.UTF-8
>  value of $XMODIFIERS: nil
>  locale-coding-system: utf-8-unix
>  default enable-multibyte-characters: t
> 
> Major mode: Fundamental
> 
> Minor modes in effect:
>  tooltip-mode: t
>  mouse-wheel-mode: t
>  menu-bar-mode: t
>  file-name-shadow-mode: t
>  global-font-lock-mode: t
>  font-lock-mode: t
>  blink-cursor-mode: t
>  auto-encryption-mode: t
>  auto-compression-mode: t
>  line-number-mode: t
>  transient-mark-mode: t
> 
> Recent input:
> <wheel-up> <double-wheel-up> <triple-wheel-up> <triple-wheel-up>
> <triple-wheel-up> <triple-wheel-up> <triple-wheel-up>
> <triple-wheel-up> <triple-wheel-up> <triple-wheel-up>
> <triple-wheel-up> <wheel-down> <double-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <wheel-up> <double-wheel-up> <triple-wheel-up> <triple-wheel-up>
> <triple-wheel-up> <triple-wheel-up> <triple-wheel-up>
> <triple-wheel-up> <triple-wheel-up> <triple-wheel-up>
> <triple-wheel-up> <triple-wheel-up> <triple-wheel-up>
> <triple-wheel-up> <triple-wheel-up> <wheel-down> <double-wheel-down>
> <triple-wheel-down> <wheel-up> <double-wheel-up> <triple-wheel-up>
> <wheel-up> <double-wheel-up> <wheel-down> <double-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <wheel-down>
> <double-wheel-down> <wheel-down> <double-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <wheel-up> <double-wheel-up> <triple-wheel-up> <triple-wheel-up>
> <triple-wheel-up> <triple-wheel-up> <triple-wheel-up>
> <triple-wheel-up> <triple-wheel-up> <triple-wheel-up>
> <triple-wheel-up> <wheel-up> <double-wheel-up> <wheel-down>
> <wheel-down> <double-wheel-down> <wheel-up> <wheel-down>
> <wheel-down> <wheel-up> <double-wheel-up> <wheel-up>
> <wheel-up> <double-wheel-up> <triple-wheel-up> <up>
> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
> <up> <down> <down> <down> <down> <down> <down> <down>
> <down> <down> <down> <down> <down> <down> <down> <down>
> <down> <down> <down> <down> <down> <down> <down> <down>
> <down> <down> <down> <down> <down> <down> C-x b <return>
> <wheel-up> <double-wheel-up> <triple-wheel-up> <triple-wheel-up>
> <wheel-down> <double-wheel-down> <triple-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <triple-wheel-down> <wheel-up> <double-wheel-up> <triple-wheel-up>
> <triple-wheel-up> <wheel-down> <double-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <triple-wheel-down> <wheel-up> <double-wheel-up> <wheel-down>
> <double-wheel-down> <triple-wheel-down> <wheel-down>
> <double-wheel-down> <triple-wheel-down> <wheel-up>
> <double-wheel-up> <triple-wheel-up> <triple-wheel-up>
> <wheel-down> <double-wheel-down> <triple-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <wheel-up> <double-wheel-up> <triple-wheel-up> <triple-wheel-up>
> <triple-wheel-up> <wheel-down> <double-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
> <triple-wheel-down> <triple-wheel-down> <wheel-up>
> <double-wheel-up> <triple-wheel-up> <triple-wheel-up>
> <wheel-down> <double-wheel-down> <triple-wheel-down>
> <wheel-up> <double-wheel-up> <triple-wheel-up> <wheel-down>
> <double-wheel-down> <wheel-down> <double-wheel-down>
> M-x b u g <tab> <backspace> <backspace> <backspace>
> <backspace> <backspace> <backspace> <backspace> <backspace>
> <backspace> <backspace> <backspace> <backspace> <backspace>
> <backspace> r e p <tab> o r <tab> <return>
> 
> Recent messages:
> Saving file /Users/fvm/.emacs...
> Wrote /Users/fvm/.emacs
> byte-code: Beginning of buffer [8 times]
> byte-code: End of buffer [13 times]
> byte-code: Beginning of buffer [13 times]
> byte-code: End of buffer [26 times]
> byte-code: Beginning of buffer [14 times]
> byte-code: End of buffer [2 times]
> Making completion list...
> byte-code: End of buffer [4 times]
> 
> Load-path shadows:
> None found.
> 
> Features:
> (shadow sort mail-extr message ecomplete rfc822 mml mml-sec
> password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231
> rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader gnus-util netrc
> time-date mm-util mail-prsvr gmm-utils wid-edit mailheader canlock sha1
> hex-util hashcash mail-utils emacsbug help-mode view vc-hg cc-mode
> cc-fonts cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
> regexp-opt tooltip ediff-hook vc-hooks lisp-float-type mwheel ns-win
> easymenu tool-bar dnd fontset image fringe lisp-mode register page
> menu-bar rfn-eshadow timer select scroll-bar mldrag mouse jit-lock
> font-lock syntax facemenu font-core frame cham georgian utf-8-lang
> misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew
> greek romanian slovak czech european ethiopic indian cyrillic chinese
> case-table epa-hook jka-cmpr-hook help simple abbrev loaddefs button
> minibuffer faces cus-face files text-properties overlay md5 base64
> format env code-pages mule custom widget hashtable-print-readable
> backquote make-network-process ns multi-tty emacs)
> <helix.pqr><Screen Shot 2012-05-15 at 2.54.44 PM.png>

Subject: 23.4; Scrolling leaves traces of old text behind
From: Frank Marcoline <[email-masked]>
To: [email-masked]
Date: Tue, 15 May 2012 15:02:01 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Bug:  Scrolling can leave behind traces of old text.
The traces appear to be cyan outlines of the right hand
side of characters which previously occupied the same location.

For example, a "Y" will leave behind a small cyan dot from its upper
right, an "A" will leave behind a small cyan dot from its lower right.

Steps to reproduce:

1)  /Applications/Emacs.app/Contents/MacOS/Emacs -Q
2)  C-x C-f helix.pqr [Ret]
3)  Rapidly scroll up and down with two-finger drag gesture

I have attached the file helix.pqr, for which the effect is
very pronounced, and a screenshot faithfully reproducing
the effect.  Note the small cyan marks on the left of
many numbers and letters.

This version of emacs came from http://emacsformacosx.com/

In GNU Emacs 23.4.1 (x86_64-apple-darwin, NS apple-appkit-1038.36)
 of 2012-01-29 on bob.porkrind.org
Windowing system distributor `Apple', version 10.3.1138
configured using `configure  '--host=x86_64-apple-darwin'
'--build=i686-apple-darwin' '--with-ns'
'build_alias=i686-apple-darwin' 'host_alias=x86_64-apple-darwin'
'CC=gcc -mmacosx-version-min=10.5''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Fundamental

Minor modes in effect:
  tooltip-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<wheel-up> <double-wheel-up> <triple-wheel-up> <triple-wheel-up>
<triple-wheel-up> <triple-wheel-up> <triple-wheel-up>
<triple-wheel-up> <triple-wheel-up> <triple-wheel-up>
<triple-wheel-up> <wheel-down> <double-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<wheel-up> <double-wheel-up> <triple-wheel-up> <triple-wheel-up>
<triple-wheel-up> <triple-wheel-up> <triple-wheel-up>
<triple-wheel-up> <triple-wheel-up> <triple-wheel-up>
<triple-wheel-up> <triple-wheel-up> <triple-wheel-up>
<triple-wheel-up> <triple-wheel-up> <wheel-down> <double-wheel-down>
<triple-wheel-down> <wheel-up> <double-wheel-up> <triple-wheel-up>
<wheel-up> <double-wheel-up> <wheel-down> <double-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<triple-wheel-down> <triple-wheel-down> <wheel-down>
<double-wheel-down> <wheel-down> <double-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<wheel-up> <double-wheel-up> <triple-wheel-up> <triple-wheel-up>
<triple-wheel-up> <triple-wheel-up> <triple-wheel-up>
<triple-wheel-up> <triple-wheel-up> <triple-wheel-up>
<triple-wheel-up> <wheel-up> <double-wheel-up> <wheel-down>
<wheel-down> <double-wheel-down> <wheel-up> <wheel-down>
<wheel-down> <wheel-up> <double-wheel-up> <wheel-up>
<wheel-up> <double-wheel-up> <triple-wheel-up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <up> <up> <up> <up> <up> <up> <up> <up> <up> <up>
<up> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> <down> <down>
<down> <down> <down> <down> <down> <down> C-x b <return>
<wheel-up> <double-wheel-up> <triple-wheel-up> <triple-wheel-up>
<wheel-down> <double-wheel-down> <triple-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<triple-wheel-down> <wheel-up> <double-wheel-up> <triple-wheel-up>
<triple-wheel-up> <wheel-down> <double-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<triple-wheel-down> <wheel-up> <double-wheel-up> <wheel-down>
<double-wheel-down> <triple-wheel-down> <wheel-down>
<double-wheel-down> <triple-wheel-down> <wheel-up>
<double-wheel-up> <triple-wheel-up> <triple-wheel-up>
<wheel-down> <double-wheel-down> <triple-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<wheel-up> <double-wheel-up> <triple-wheel-up> <triple-wheel-up>
<triple-wheel-up> <wheel-down> <double-wheel-down>
<triple-wheel-down> <triple-wheel-down> <triple-wheel-down>
<triple-wheel-down> <triple-wheel-down> <wheel-up>
<double-wheel-up> <triple-wheel-up> <triple-wheel-up>
<wheel-down> <double-wheel-down> <triple-wheel-down>
<wheel-up> <double-wheel-up> <triple-wheel-up> <wheel-down>
<double-wheel-down> <wheel-down> <double-wheel-down>
M-x b u g <tab> <backspace> <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
<backspace> <backspace> <backspace> <backspace> <backspace>
<backspace> r e p <tab> o r <tab> <return>

Recent messages:
Saving file /Users/fvm/.emacs...
Wrote /Users/fvm/.emacs
byte-code: Beginning of buffer [8 times]
byte-code: End of buffer [13 times]
byte-code: Beginning of buffer [13 times]
byte-code: End of buffer [26 times]
byte-code: Beginning of buffer [14 times]
byte-code: End of buffer [2 times]
Making completion list...
byte-code: End of buffer [4 times]

Load-path shadows:
None found.

Features:
(shadow sort mail-extr message ecomplete rfc822 mml mml-sec
password-cache mm-decode mm-bodies mm-encode mailcap mail-parse rfc2231
rfc2047 rfc2045 qp ietf-drums mailabbrev nnheader gnus-util netrc
time-date mm-util mail-prsvr gmm-utils wid-edit mailheader canlock sha1
hex-util hashcash mail-utils emacsbug help-mode view vc-hg cc-mode
cc-fonts cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
regexp-opt tooltip ediff-hook vc-hooks lisp-float-type mwheel ns-win
easymenu tool-bar dnd fontset image fringe lisp-mode register page
menu-bar rfn-eshadow timer select scroll-bar mldrag mouse jit-lock
font-lock syntax facemenu font-core frame cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew
greek romanian slovak czech european ethiopic indian cyrillic chinese
case-table epa-hook jka-cmpr-hook help simple abbrev loaddefs button
minibuffer faces cus-face files text-properties overlay md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process ns multi-tty emacs)