summaryrefslogtreecommitdiff
path: root/src/window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/window.c b/src/window.c
index 59463d9a71e..d687c831ef6 100644
--- a/src/window.c
+++ b/src/window.c
@@ -3265,6 +3265,10 @@ set_window_buffer (window, buffer, run_hooks_p, keep_margins_p)
struct window *w = XWINDOW (window);
struct buffer *b = XBUFFER (buffer);
int count = SPECPDL_INDEX ();
+#ifdef HAVE_WINDOW_SYSTEM
+ struct frame *f = XFRAME (w->frame);
+ Display_Info *dpyinfo;
+#endif
w->buffer = buffer;
@@ -3345,6 +3349,15 @@ set_window_buffer (window, buffer, run_hooks_p, keep_margins_p)
call1 (Vrun_hooks, Qwindow_configuration_change_hook);
}
+#ifdef HAVE_WINDOW_SYSTEM
+ BLOCK_INPUT;
+ if (f && FRAME_X_OUTPUT (f)
+ && (dpyinfo = FRAME_X_DISPLAY_INFO (f))
+ && EQ (window, dpyinfo->mouse_face_window))
+ clear_mouse_face (dpyinfo);
+ UNBLOCK_INPUT;
+#endif
+
unbind_to (count, Qnil);
}