diff options
| author | Eli Zaretskii | 2013-02-04 17:39:55 +0200 |
|---|---|---|
| committer | Eli Zaretskii | 2013-02-04 17:39:55 +0200 |
| commit | 86f7c0fe6000de85d8b282da761e65e18a73b287 (patch) | |
| tree | 348144367f435ae190b2b76a6abce081c1e5c1ed /src/window.h | |
| parent | 6e5c1569e941d385d28466a337ece0322bfa93e7 (diff) | |
| download | emacs-86f7c0fe6000de85d8b282da761e65e18a73b287.tar.gz emacs-86f7c0fe6000de85d8b282da761e65e18a73b287.zip | |
Fix bugs #13623 and 13626 caused by changes in 2013-02-01T07:23:18Z!dmantipov@yandex.ru.
src/xdisp.c (window_buffer_changed): region_showing can be negative,
which still means region is being displayed.
(redisplay_internal): Resurrect code that forced redisplay of the
whole window when showing region and the mark has changed. Record
the new mark position to allow redisplay optimizations.
(display_line): If it->region_beg_charpos is non-zero, set the
window's region_showing member to -1.
src/window.h (struct window) <region_showing>: Declare ptrdiff_t,
not bitfield of 1 bit.
Diffstat (limited to 'src/window.h')
| -rw-r--r-- | src/window.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/window.h b/src/window.h index f28ce1424d0..0f4f242641e 100644 --- a/src/window.h +++ b/src/window.h | |||
| @@ -333,13 +333,15 @@ struct window | |||
| 333 | the frame image that window_end_pos did not get onto the frame. */ | 333 | the frame image that window_end_pos did not get onto the frame. */ |
| 334 | unsigned window_end_valid : 1; | 334 | unsigned window_end_valid : 1; |
| 335 | 335 | ||
| 336 | /* Nonzero if we have highlighted the region (or any part of it). */ | ||
| 337 | unsigned region_showing : 1; | ||
| 338 | |||
| 339 | /* Amount by which lines of this window are scrolled in | 336 | /* Amount by which lines of this window are scrolled in |
| 340 | y-direction (smooth scrolling). */ | 337 | y-direction (smooth scrolling). */ |
| 341 | int vscroll; | 338 | int vscroll; |
| 342 | 339 | ||
| 340 | /* If we have highlighted the region (or any part of it), the mark | ||
| 341 | position or -1 (the latter is used by the iterator for internal | ||
| 342 | purposes); otherwise zero. */ | ||
| 343 | ptrdiff_t region_showing; | ||
| 344 | |||
| 343 | /* Z_BYTE - buffer position of the last glyph in the current matrix of W. | 345 | /* Z_BYTE - buffer position of the last glyph in the current matrix of W. |
| 344 | Should be nonnegative, and only valid if window_end_valid is nonzero. */ | 346 | Should be nonnegative, and only valid if window_end_valid is nonzero. */ |
| 345 | ptrdiff_t window_end_bytepos; | 347 | ptrdiff_t window_end_bytepos; |