emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r105347: Fix display artifacts from n


From: Chong Yidong
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r105347: Fix display artifacts from ns_dumpglyphs_stretch (Bug#8470).
Date: Thu, 28 Jul 2011 14:41:21 -0400
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 105347
author: Alp Aker <address@hidden>
committer: Chong Yidong <address@hidden>
branch nick: trunk
timestamp: Thu 2011-07-28 14:41:21 -0400
message:
  Fix display artifacts from ns_dumpglyphs_stretch (Bug#8470).
  
  * src/nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
  or scroll bar.
modified:
  src/ChangeLog
  src/nsterm.m
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2011-07-28 18:30:59 +0000
+++ b/src/ChangeLog     2011-07-28 18:41:21 +0000
@@ -9,6 +9,9 @@
        (EmacsTooltip -init): Remove bezels and add shadows to
        tooltip windows.
 
+       * nsterm.m (ns_dumpglyphs_stretch): Avoid overwriting left fringe
+       or scroll bar (Bug#8470).
+
 2011-07-28  Alp Aker  <address@hidden>
 
        Implement strike-through and overline on NextStep (Bug#8863).

=== modified file 'src/nsterm.m'
--- a/src/nsterm.m      2011-07-28 18:26:29 +0000
+++ b/src/nsterm.m      2011-07-28 18:41:21 +0000
@@ -3110,12 +3110,24 @@
         {
           if (!s->row->full_width_p)
             {
+             int overrun, leftoverrun;
+
               /* truncate to avoid overwriting fringe and/or scrollbar */
-              int overrun = max (0, (s->x + s->background_width)
-                                  - (WINDOW_BOX_RIGHT_EDGE_X (s->w)
-                                    - WINDOW_RIGHT_FRINGE_WIDTH (s->w)));
+             overrun = max (0, (s->x + s->background_width)
+                            - (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 */
+             leftoverrun = (WINDOW_BOX_LEFT_EDGE_X (s->w)
+                            + WINDOW_LEFT_FRINGE_WIDTH (s->w)) - s->x;
+
+             if (leftoverrun > 0)
+               {
+                 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
                  modeline, and another where list-buffers headers and similar


reply via email to

[Prev in Thread] Current Thread [Next in Thread]