From f3f6315be64f97a1e7fc4c4daf54bc6031a0cd2c Mon Sep 17 00:00:00 2001 From: Jason Rumney Date: Mon, 11 Feb 2002 22:09:00 +0000 Subject: [PATCH] (show_mouse_face): Fix bug setting a row's mouse_face_p flag unconditionally. (x_scroll_run): Revert to BitBlt. --- src/ChangeLog | 6 ++++++ src/w32term.c | 17 ++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 3451d2c6a63..ddd85bd52a3 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2002-02-11 Jason Rumney + + * w32term.c (show_mouse_face): Fix bug setting a row's + mouse_face_p flag unconditionally. + (x_scroll_run): Revert to BitBlt. + 2002-02-09 Jason Rumney * w32fns.c (enum_font_cb2): Don't let charsets unknown to Windows diff --git a/src/w32term.c b/src/w32term.c index 25e8ac52a89..4f6d793b829 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -5524,6 +5524,13 @@ x_scroll_run (w, run) updated_window = w; x_clear_cursor (w); +#if 0 + /* The following fixes a bug where Emacs is partially obscured by + another Window. It works perfectly in the CVS head, but leaves + a false cursor behind under certain conditions in 21.2. It's not + obvious why, but the blinking cursor seems to pause for an extra + second after scrolling in 21.2, and it is when the cursor is moved + within that brief period that it gets left behind. */ { RECT from; RECT to; @@ -5548,6 +5555,13 @@ x_scroll_run (w, run) if (!EqualRgn (combined, expect_dirty)) SET_FRAME_GARBAGED (f); } +#else + { + HDC hdc = get_frame_dc (f); + BitBlt (hdc, x, to_y, width, height, hdc, x, from_y, SRCCOPY); + release_frame_dc (f, hdc); + } +#endif UNBLOCK_INPUT; } @@ -7391,7 +7405,8 @@ show_mouse_face (dpyinfo, draw) x_draw_glyphs (w, start_x, row, TEXT_AREA, start_hpos, end_hpos, draw, 0); - row->mouse_face_p = draw == DRAW_MOUSE_FACE || DRAW_IMAGE_RAISED; + row->mouse_face_p + = draw == DRAW_MOUSE_FACE || draw == DRAW_IMAGE_RAISED; } } -- 2.39.2