]> git.eshelyaron.com Git - emacs.git/commitdiff
(show_mouse_face): Fix bug setting a row's
authorJason Rumney <jasonr@gnu.org>
Mon, 11 Feb 2002 22:09:00 +0000 (22:09 +0000)
committerJason Rumney <jasonr@gnu.org>
Mon, 11 Feb 2002 22:09:00 +0000 (22:09 +0000)
mouse_face_p flag unconditionally.
(x_scroll_run): Revert to BitBlt.

src/ChangeLog
src/w32term.c

index 3451d2c6a63a5ba98c0c3cdb8924e20c41bad9ce..ddd85bd52a3bd034969f3790fdbb180856cc48d4 100644 (file)
@@ -1,3 +1,9 @@
+2002-02-11  Jason Rumney  <jasonr@gnu.org>
+
+       * 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  <jasonr@gnu.org>
 
        * w32fns.c (enum_font_cb2): Don't let charsets unknown to Windows
index 25e8ac52a897040ee45910dcfe9482c1bfe321cd..4f6d793b82911609cb4b0c7000c2cadb6b8f2d01 100644 (file)
@@ -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;
            }
        }