GNU bug report logs - #8470
ns_dumpglyphs_stretch creates display artifacts

Previous Next

Packages: emacs, ns;

Reported by: Alp Aker <aker <at> pitt.edu>

Date: Mon, 11 Apr 2011 00:45:02 UTC

Severity: normal

Done: Chong Yidong <cyd <at> stupidchicken.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 8470 in the body.
You can then email your comments to 8470 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#8470; Package emacs. (Mon, 11 Apr 2011 00:45:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Alp Aker <aker <at> pitt.edu>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 11 Apr 2011 00:45:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Alp Aker <aker <at> pitt.edu>
To: bug-gnu-emacs <at> gnu.org
Subject: ns_dumpglyphs_stretch creates display artifacts
Date: Sun, 10 Apr 2011 19:32:55 -0400 (EDT)
ns_dumpglyphs_stretch (in nsterm.m) checks to make sure that it doesn't 
overwrite a window's right fringe or scroll bar.  It doesn't perform an 
analogous check for overruns on the left.  This can cause display 
artifacts to appear when a window is horizontally scrolled.  Here is a 
screenshot showing an extreme example of what can happen:

http://www.pitt.edu/~aker/screenshot.png

The problem has been around since at least 23.2.1 and still exists in the 
trunk.

The following patch (against the latest nsterm.m) appears to fix the 
problem:

*** nsterm.m	2011-04-10 19:21:28.000000000 -0400
--- nsterm-rev.m	2011-04-10 19:23:54.000000000 -0400
***************
*** 2981,2986 ****
--- 2981,2995 ----
                                    - (WINDOW_BOX_RIGHT_EDGE_X (s->w)
                                      - WINDOW_RIGHT_FRINGE_WIDTH (s->w)));
                r[i].size.width -= overrun;
+
+               /* truncate to avoid overwriting to left of the window box */
+               int leftoverrun = (WINDOW_BOX_LEFT_EDGE_X (s->w)
+                                  + WINDOW_LEFT_FRINGE_WIDTH (s->w)) - s->x;
+               if (0 < leftoverrun)
+                 {
+                   r[i].origin.x += leftoverrun;
+                   r[i].size.width -= leftoverrun;
+                 }

                /* XXX: Try to work between problem where a stretch glyph on
                   a partially-visible bottom row will clear part of the




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#8470; Package emacs,ns. (Thu, 28 Jul 2011 18:42:02 GMT) Full text and rfc822 format available.

Message #8 received at 8470 <at> debbugs.gnu.org (full text, mbox):

From: Chong Yidong <cyd <at> stupidchicken.com>
To: Alp Aker <aker <at> pitt.edu>
Cc: 8470 <at> debbugs.gnu.org
Subject: Re: bug#8470: ns_dumpglyphs_stretch creates display artifacts
Date: Thu, 28 Jul 2011 14:41:30 -0400
Alp Aker <aker <at> pitt.edu> writes:

> ns_dumpglyphs_stretch (in nsterm.m) checks to make sure that it
> doesn't overwrite a window's right fringe or scroll bar.  It doesn't
> perform an analogous check for overruns on the left.  This can cause
> display artifacts to appear when a window is horizontally scrolled.
> Here is a screenshot showing an extreme example of what can happen:
>
> http://www.pitt.edu/~aker/screenshot.png
>
> The problem has been around since at least 23.2.1 and still exists in
> the trunk.
>
> The following patch (against the latest nsterm.m) appears to fix the
> problem:

Thanks, applied to trunk.




bug closed, send any further explanations to 8470 <at> debbugs.gnu.org and Alp Aker <aker <at> pitt.edu> Request was from Chong Yidong <cyd <at> stupidchicken.com> to control <at> debbugs.gnu.org. (Thu, 28 Jul 2011 18:42:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 26 Aug 2011 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 13 years and 306 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.