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:
parent
c439687b4d
commit
e687d06efa
1 changed files with 20 additions and 8 deletions
28
src/xterm.c
28
src/xterm.c
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue