# HG changeset patch # User Gerd Moellmann # Date 963345523 0 # Node ID 1eb41ec71ea5576a96958e9d8980912e22567ffa # Parent f6270e5282daedda08725a2691feae10d92ba6f7 (x_update_window_begin): No need to turn off the mouse highlight here. (show_mouse_face): Set the mouse_face_p flag of glyph rows depending on whether they contain glyphs highlighted in mouse-face. diff -r f6270e5282da -r 1eb41ec71ea5 src/xterm.c --- a/src/xterm.c Tue Jul 11 19:57:54 2000 +0000 +++ b/src/xterm.c Tue Jul 11 19:58:43 2000 +0000 @@ -598,6 +598,13 @@ if (FRAME_GARBAGED_P (f)) display_info->mouse_face_window = Qnil; +#if 0 /* Rows in a current matrix containing glyphs in mouse-face have + their mouse_face_p flag set, which means that they are always + unequal to rows in a desired matrix which never have that + flag set. So, rows containing mouse-face glyphs are never + scrolled, and we don't have to switch the mouse highlight off + here to prevent it from being scrolled. */ + /* Can we tell that this update does not affect the window where the mouse highlight is? If so, no need to turn off. Likewise, don't do anything if the frame is garbaged; @@ -615,6 +622,7 @@ if (i < w->desired_matrix->nrows) clear_mouse_face (display_info); } +#endif /* 0 */ } UNBLOCK_INPUT; @@ -7024,8 +7032,11 @@ } if (end_hpos > start_hpos) - x_draw_glyphs (w, start_x, row, TEXT_AREA, - start_hpos, end_hpos, draw, NULL, NULL, 0); + { + row->mouse_face_p = draw == DRAW_MOUSE_FACE; + x_draw_glyphs (w, start_x, row, TEXT_AREA, + start_hpos, end_hpos, draw, NULL, NULL, 0); + } } /* If we turned the cursor off, turn it back on. */