(x_draw_glyphs): Don't call notice_overwritten_cursor if
authorGerd Moellmann <gerd@gnu.org>
Wed, 28 Nov 2001 17:09:34 +0000 (17:09 +0000)
committerGerd Moellmann <gerd@gnu.org>
Wed, 28 Nov 2001 17:09:34 +0000 (17:09 +0000)
OVERLAPS_P.

src/ChangeLog
src/xterm.c

index bb743bf..a81c8c0 100644 (file)
@@ -1,3 +1,8 @@
+2001-11-28  Gerd Moellmann  <gerd@gnu.org>
+
+       * xterm.c (x_draw_glyphs): Don't call notice_overwritten_cursor if
+       OVERLAPS_P.
+
 2001-11-28  Pavel Jan\e,Bm\e(Bk  <Pavel@Janik.cz>
 
        * xdisp.c (message_dolog): Remove unused variables `gcpro2',
index 7edb012..c6ff4e6 100644 (file)
@@ -5186,7 +5186,12 @@ x_draw_glyphs (w, x, row, area, start, end, hl, overlaps_p)
   for (s = head; s; s = s->next)
     x_draw_glyph_string (s);
 
-  if (area == TEXT_AREA && !row->full_width_p)
+  if (area == TEXT_AREA
+      && !row->full_width_p
+      /* When drawing overlapping rows, only the glyph strings'
+        foreground is drawn, which doesn't erase a cursor
+        completely. */
+      && !overlaps_p)
     {
       int x0 = head ? head->x : x;
       int x1 = tail ? tail->x + tail->background_width : x;
@@ -5194,7 +5199,7 @@ x_draw_glyphs (w, x, row, area, start, end, hl, overlaps_p)
       x0 = FRAME_TO_WINDOW_PIXEL_X (w, x0);
       x1 = FRAME_TO_WINDOW_PIXEL_X (w, x1);
       
-      if (!row->full_width_p && XFASTINT (w->left_margin_width) != 0)
+      if (XFASTINT (w->left_margin_width) != 0)
        {
          int left_area_width = window_box_width (w, LEFT_MARGIN_AREA);
          x0 -= left_area_width;