GNU bug report logs -
#8470
ns_dumpglyphs_stretch creates display artifacts
Previous Next
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.
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):
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):
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.