1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-19 12:30:47 -07:00

(cancel_mouse_face): New function. Code copied from

x_set_window_size, fixing a bug.
(x_set_window_size): Use cancel_mouse_face.
(XTread_socket): When frame size has changed, call cancel_mouse_face.
This commit is contained in:
Richard M. Stallman 1996-10-31 22:05:51 +00:00
parent c439687b4d
commit e687d06efa

View file

@ -2267,6 +2267,24 @@ clear_mouse_face (dpyinfo)
dpyinfo->mouse_face_end_row = dpyinfo->mouse_face_end_col = -1;
dpyinfo->mouse_face_window = Qnil;
}
/* Just discard the mouse face information for frame F, if any.
This is used when the size of F is changed. */
cancel_mouse_face (f)
FRAME_PTR f;
{
Lisp_Object window;
struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
window = dpyinfo->mouse_face_window;
if (! NILP (window) && XFRAME (XWINDOW (window)->frame) == f)
{
dpyinfo->mouse_face_beg_row = dpyinfo->mouse_face_beg_col = -1;
dpyinfo->mouse_face_end_row = dpyinfo->mouse_face_end_col = -1;
dpyinfo->mouse_face_window = Qnil;
}
}
static struct scroll_bar *x_window_to_scroll_bar ();
static void x_scroll_bar_report_motion ();
@ -3998,6 +4016,7 @@ XTread_socket (sd, bufp, numchars, expected)
{
change_frame_size (f, rows, columns, 0, 1);
SET_FRAME_GARBAGED (f);
cancel_mouse_face (f);
}
#endif
@ -5099,7 +5118,6 @@ x_set_window_size (f, change_gravity, cols, rows)
{
int pixelwidth, pixelheight;
int mask;
Lisp_Object window;
struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
BLOCK_INPUT;
@ -5173,13 +5191,7 @@ x_set_window_size (f, change_gravity, cols, rows)
since it might be in a place that's outside the new frame size.
Actually checking whether it is outside is a pain in the neck,
so don't try--just let the highlighting be done afresh with new size. */
window = dpyinfo->mouse_face_window;
if (! NILP (window) && XFRAME (window) == f)
{
dpyinfo->mouse_face_beg_row = dpyinfo->mouse_face_beg_col = -1;
dpyinfo->mouse_face_end_row = dpyinfo->mouse_face_end_col = -1;
dpyinfo->mouse_face_window = Qnil;
}
cancel_mouse_face (f);
UNBLOCK_INPUT;
}