]> git.eshelyaron.com Git - emacs.git/commitdiff
(expose_area): Complete last change.
authorJason Rumney <jasonr@gnu.org>
Tue, 5 Dec 2000 22:42:49 +0000 (22:42 +0000)
committerJason Rumney <jasonr@gnu.org>
Tue, 5 Dec 2000 22:42:49 +0000 (22:42 +0000)
src/w32term.c

index 1dbe506371ae24651be311fef5ca8333011989e0..6116f9ac8d8674f9f3bf3d5f7fbf1d0f940ccbf1 100644 (file)
@@ -5501,11 +5501,10 @@ expose_area (w, row, r, area)
      RECT *r;
      enum glyph_row_area area;
 {
-  int x;
   struct glyph *first = row->glyphs[area];
   struct glyph *end = row->glyphs[area] + row->used[area];
   struct glyph *last;
-  int first_x;
+  int first_x, start_x, x;
 
   /* Set x to the window-relative start position for drawing glyphs of
      AREA.  The first glyph of the text area can be partially visible.
@@ -5526,6 +5525,18 @@ expose_area (w, row, r, area)
                   NULL, NULL, 0);
   else
     {
+      /* Set START_X to the window-relative start position for drawing glyphs of
+        AREA.  The first glyph of the text area can be partially visible.
+        The first glyphs of other areas cannot.  */
+      if (area == LEFT_MARGIN_AREA)
+       start_x = 0;
+      else if (area == TEXT_AREA)
+       start_x = row->x + window_box_width (w, LEFT_MARGIN_AREA);
+      else
+       start_x = (window_box_width (w, LEFT_MARGIN_AREA)
+                  + window_box_width (w, TEXT_AREA));
+      x = start_x;
+
       /* Find the first glyph that must be redrawn.  */
       while (first < end
              && x + first->pixel_width < r->left)
@@ -5543,7 +5554,7 @@ expose_area (w, row, r, area)
           x += last->pixel_width;
           ++last;
         }
-      
+
       /* Repaint.  */
       if (last > first)
         x_draw_glyphs (w, first_x - start_x, row, area,