changeset 16491:7094452bc337

(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.
author Richard M. Stallman <rms@gnu.org>
date Thu, 31 Oct 1996 22:05:51 +0000
parents 92289a4265ed
children 2ddccd78c6b0
files src/xterm.c
diffstat 1 files changed, 20 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/xterm.c	Thu Oct 31 20:51:44 1996 +0000
+++ b/src/xterm.c	Thu Oct 31 22:05:51 1996 +0000
@@ -2267,6 +2267,24 @@
   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 @@
 		    {
 		      change_frame_size (f, rows, columns, 0, 1);
 		      SET_FRAME_GARBAGED (f);
+		      cancel_mouse_face (f);
 		    }
 #endif
 
@@ -5099,7 +5118,6 @@
 {
   int pixelwidth, pixelheight;
   int mask;
-  Lisp_Object window;
   struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
 
   BLOCK_INPUT;
@@ -5173,13 +5191,7 @@
      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;
 }