aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2016-11-20 19:28:37 +0200
committerEli Zaretskii2016-11-20 19:28:37 +0200
commit56a47981cc921369dd124cc023ca1469225b1fa7 (patch)
tree4fa83c6600e6c85b57a4d2118bfa8c5e0b1137e4 /src
parent22946702b4296c0e42e4baf6221e205b52d05cbf (diff)
downloademacs-56a47981cc921369dd124cc023ca1469225b1fa7.tar.gz
emacs-56a47981cc921369dd124cc023ca1469225b1fa7.zip
Fix redrawing non-selected frame after resize on MS-Windows
* src/xdisp.c (redisplay_internal): If all the frames were successfully updated, reset the "garbaged" flag of each frame, to make sure it doesn't stay set. * src/w32term.c (w32_read_socket): Don't clear the frame if it's "garbaged", since expose_frame won't redraw the foreground then. (Bug#24642)
Diffstat (limited to 'src')
-rw-r--r--src/w32term.c15
-rw-r--r--src/xdisp.c1
2 files changed, 12 insertions, 4 deletions
diff --git a/src/w32term.c b/src/w32term.c
index e8d66c9e5a1..ae0f741f24c 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -4628,11 +4628,18 @@ w32_read_socket (struct terminal *terminal,
4628 } 4628 }
4629 else 4629 else
4630 { 4630 {
4631 HDC hdc = get_frame_dc (f); 4631 /* Erase background again for safety. But don't do
4632 that if the frame's 'garbaged' flag is set, since
4633 in that case expose_frame will do nothing, and if
4634 the various redisplay flags happen to be unset,
4635 we are left with a blank frame. */
4636 if (!FRAME_GARBAGED_P (f))
4637 {
4638 HDC hdc = get_frame_dc (f);
4632 4639
4633 /* Erase background again for safety. */ 4640 w32_clear_rect (f, hdc, &msg.rect);
4634 w32_clear_rect (f, hdc, &msg.rect); 4641 release_frame_dc (f, hdc);
4635 release_frame_dc (f, hdc); 4642 }
4636 expose_frame (f, 4643 expose_frame (f,
4637 msg.rect.left, 4644 msg.rect.left,
4638 msg.rect.top, 4645 msg.rect.top,
diff --git a/src/xdisp.c b/src/xdisp.c
index c045ced000b..1420a4a7e36 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -14116,6 +14116,7 @@ redisplay_internal (void)
14116 if (f->updated_p) 14116 if (f->updated_p)
14117 { 14117 {
14118 f->redisplay = false; 14118 f->redisplay = false;
14119 f->garbaged = false;
14119 mark_window_display_accurate (f->root_window, true); 14120 mark_window_display_accurate (f->root_window, true);
14120 if (FRAME_TERMINAL (f)->frame_up_to_date_hook) 14121 if (FRAME_TERMINAL (f)->frame_up_to_date_hook)
14121 FRAME_TERMINAL (f)->frame_up_to_date_hook (f); 14122 FRAME_TERMINAL (f)->frame_up_to_date_hook (f);