diff options
| author | Jason Rumney | 2000-12-05 22:42:49 +0000 |
|---|---|---|
| committer | Jason Rumney | 2000-12-05 22:42:49 +0000 |
| commit | 2df852941160fbe9a7ac103668b673b75c7bec42 (patch) | |
| tree | 3f1da81eb0c65ac6401b1173d8a8d45bdd0f40ee /src | |
| parent | ff3c70560404ebe804c3e0a0a6721acdbca8202f (diff) | |
| download | emacs-2df852941160fbe9a7ac103668b673b75c7bec42.tar.gz emacs-2df852941160fbe9a7ac103668b673b75c7bec42.zip | |
(expose_area): Complete last change.
Diffstat (limited to 'src')
| -rw-r--r-- | src/w32term.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/w32term.c b/src/w32term.c index 1dbe506371a..6116f9ac8d8 100644 --- a/src/w32term.c +++ b/src/w32term.c | |||
| @@ -5501,11 +5501,10 @@ expose_area (w, row, r, area) | |||
| 5501 | RECT *r; | 5501 | RECT *r; |
| 5502 | enum glyph_row_area area; | 5502 | enum glyph_row_area area; |
| 5503 | { | 5503 | { |
| 5504 | int x; | ||
| 5505 | struct glyph *first = row->glyphs[area]; | 5504 | struct glyph *first = row->glyphs[area]; |
| 5506 | struct glyph *end = row->glyphs[area] + row->used[area]; | 5505 | struct glyph *end = row->glyphs[area] + row->used[area]; |
| 5507 | struct glyph *last; | 5506 | struct glyph *last; |
| 5508 | int first_x; | 5507 | int first_x, start_x, x; |
| 5509 | 5508 | ||
| 5510 | /* Set x to the window-relative start position for drawing glyphs of | 5509 | /* Set x to the window-relative start position for drawing glyphs of |
| 5511 | AREA. The first glyph of the text area can be partially visible. | 5510 | AREA. The first glyph of the text area can be partially visible. |
| @@ -5526,6 +5525,18 @@ expose_area (w, row, r, area) | |||
| 5526 | NULL, NULL, 0); | 5525 | NULL, NULL, 0); |
| 5527 | else | 5526 | else |
| 5528 | { | 5527 | { |
| 5528 | /* Set START_X to the window-relative start position for drawing glyphs of | ||
| 5529 | AREA. The first glyph of the text area can be partially visible. | ||
| 5530 | The first glyphs of other areas cannot. */ | ||
| 5531 | if (area == LEFT_MARGIN_AREA) | ||
| 5532 | start_x = 0; | ||
| 5533 | else if (area == TEXT_AREA) | ||
| 5534 | start_x = row->x + window_box_width (w, LEFT_MARGIN_AREA); | ||
| 5535 | else | ||
| 5536 | start_x = (window_box_width (w, LEFT_MARGIN_AREA) | ||
| 5537 | + window_box_width (w, TEXT_AREA)); | ||
| 5538 | x = start_x; | ||
| 5539 | |||
| 5529 | /* Find the first glyph that must be redrawn. */ | 5540 | /* Find the first glyph that must be redrawn. */ |
| 5530 | while (first < end | 5541 | while (first < end |
| 5531 | && x + first->pixel_width < r->left) | 5542 | && x + first->pixel_width < r->left) |
| @@ -5543,7 +5554,7 @@ expose_area (w, row, r, area) | |||
| 5543 | x += last->pixel_width; | 5554 | x += last->pixel_width; |
| 5544 | ++last; | 5555 | ++last; |
| 5545 | } | 5556 | } |
| 5546 | 5557 | ||
| 5547 | /* Repaint. */ | 5558 | /* Repaint. */ |
| 5548 | if (last > first) | 5559 | if (last > first) |
| 5549 | x_draw_glyphs (w, first_x - start_x, row, area, | 5560 | x_draw_glyphs (w, first_x - start_x, row, area, |