Commit a6b1c7cc authored by Eli Zaretskii's avatar Eli Zaretskii

Fix bug #7464 with mouse highlight after "C-x 1".

 src/window.c (Fdelete_other_windows_internal): Invalidate the row
 and column information about mouse highlight, so that redisplay
 restores it after reallocating the glyph matrices.
parent 697ba24b
2012-03-31 Eli Zaretskii <eliz@gnu.org>
* window.c (Fdelete_other_windows_internal): Invalidate the row
and column information about mouse highlight, so that redisplay
restores it after reallocating the glyph matrices. (Bug#7464)
* xdisp.c (set_cursor_from_row): If `cursor' property on a display
string comes from a `display' text property, use the buffer
position of that property as if we actually saw that position in
......
......@@ -2565,6 +2565,7 @@ window-start value is reasonable when this function is called. */)
Lisp_Object sibling, pwindow, swindow IF_LINT (= Qnil), delta;
EMACS_INT startpos IF_LINT (= 0);
int top IF_LINT (= 0), new_top, resize_failed;
Mouse_HLInfo *hlinfo;
w = decode_any_window (window);
XSETWINDOW (window, w);
......@@ -2645,6 +2646,20 @@ window-start value is reasonable when this function is called. */)
}
BLOCK_INPUT;
hlinfo = MOUSE_HL_INFO (f);
/* We are going to free the glyph matrices of WINDOW, and with that
we might lose any information about glyph rows that have some of
their glyphs highlighted in mouse face. (These rows are marked
with a non-zero mouse_face_p flag.) If WINDOW indeed has some
glyphs highlighted in mouse face, signal to frame's up-to-date
hook that mouse highlight was overwritten, so that it will
arrange for redisplaying the highlight. */
if (EQ (hlinfo->mouse_face_window, window))
{
hlinfo->mouse_face_beg_row = hlinfo->mouse_face_beg_col = -1;
hlinfo->mouse_face_end_row = hlinfo->mouse_face_end_col = -1;
hlinfo->mouse_face_window = Qnil;
}
free_window_matrices (r);
windows_or_buffers_changed++;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment