emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] trunk r115614: Fix bug #16192 with highlight of display ma


From: Eli Zaretskii
Subject: [Emacs-diffs] trunk r115614: Fix bug #16192 with highlight of display margins when region is active
Date: Thu, 19 Dec 2013 19:07:24 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 115614
revision-id: address@hidden
parent: address@hidden
fixes bug: http://debbugs.gnu.org/16192
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Thu 2013-12-19 21:06:53 +0200
message:
  Fix bug #16192 with highlight of display margins when region is active
  
   src/xdisp.c (extend_face_to_end_of_line): Use default face, not the
   current text face, for extending the face of the display margins.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/xdisp.c                    xdisp.c-20091113204419-o5vbwnq5f7feedwu-240
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2013-12-19 17:51:18 +0000
+++ b/src/ChangeLog     2013-12-19 19:06:53 +0000
@@ -1,5 +1,9 @@
 2013-12-19  Eli Zaretskii  <address@hidden>
 
+       * xdisp.c (extend_face_to_end_of_line): Use default face, not the
+       current text face, for extending the face of the display margins.
+       (Bug#16192)
+
        * casefiddle.c (Fupcase_word, Fdowncase_word, Fcapitalize_word):
        Doc fix.  (Bug#16190)
 

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2013-12-16 19:29:04 +0000
+++ b/src/xdisp.c       2013-12-19 19:06:53 +0000
@@ -18876,14 +18876,16 @@
              && it->glyph_row->used[LEFT_MARGIN_AREA] == 0)
            {
              it->glyph_row->glyphs[LEFT_MARGIN_AREA][0] = space_glyph;
-             it->glyph_row->glyphs[LEFT_MARGIN_AREA][0].face_id = face->id;
+             it->glyph_row->glyphs[LEFT_MARGIN_AREA][0].face_id =
+               default_face->id;
              it->glyph_row->used[LEFT_MARGIN_AREA] = 1;
            }
          if (WINDOW_RIGHT_MARGIN_WIDTH (it->w) > 0
              && it->glyph_row->used[RIGHT_MARGIN_AREA] == 0)
            {
              it->glyph_row->glyphs[RIGHT_MARGIN_AREA][0] = space_glyph;
-             it->glyph_row->glyphs[RIGHT_MARGIN_AREA][0].face_id = face->id;
+             it->glyph_row->glyphs[RIGHT_MARGIN_AREA][0].face_id =
+               default_face->id;
              it->glyph_row->used[RIGHT_MARGIN_AREA] = 1;
            }
        }
@@ -18952,15 +18954,8 @@
       it->object = make_number (0);
       it->c = it->char_to_display = ' ';
       it->len = 1;
-      /* The last row's blank glyphs should get the default face, to
-        avoid painting the rest of the window with the region face,
-        if the region ends at ZV.  */
-      if (it->glyph_row->ends_at_zv_p)
-       it->face_id = default_face->id;
-      else
-       it->face_id = face->id;
 
-      face = FACE_FROM_ID (f, it->face_id);
+      face = FACE_FROM_ID (f, default_face->id);
       if (WINDOW_LEFT_MARGIN_WIDTH (it->w) > 0
          && (it->glyph_row->used[LEFT_MARGIN_AREA]
              < WINDOW_LEFT_MARGIN_WIDTH (it->w))
@@ -18974,6 +18969,7 @@
            it->current_x += g->pixel_width;
 
          it->area = LEFT_MARGIN_AREA;
+         it->face_id = default_face->id;
          while (it->glyph_row->used[LEFT_MARGIN_AREA]
                 < WINDOW_LEFT_MARGIN_WIDTH (it->w))
            {
@@ -18987,11 +18983,20 @@
          it->area = TEXT_AREA;
        }
 
+      /* The last row's blank glyphs should get the default face, to
+        avoid painting the rest of the window with the region face,
+        if the region ends at ZV.  */
+      if (it->glyph_row->ends_at_zv_p)
+       it->face_id = default_face->id;
+      else
+       it->face_id = face->id;
+      face = FACE_FROM_ID (f, it->face_id);
       PRODUCE_GLYPHS (it);
 
       while (it->current_x <= it->last_visible_x)
        PRODUCE_GLYPHS (it);
 
+      face = FACE_FROM_ID (f, default_face->id);
       if (WINDOW_RIGHT_MARGIN_WIDTH (it->w) > 0
          && (it->glyph_row->used[RIGHT_MARGIN_AREA]
              < WINDOW_RIGHT_MARGIN_WIDTH (it->w))
@@ -19005,6 +19010,7 @@
            it->current_x += g->pixel_width;
 
          it->area = RIGHT_MARGIN_AREA;
+         it->face_id = default_face->id;
          while (it->glyph_row->used[RIGHT_MARGIN_AREA]
                 < WINDOW_RIGHT_MARGIN_WIDTH (it->w))
            {


reply via email to

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