changeset 43369:493438ba5e2c

(disable_mouse_highlight): Removed variable. (note_mouse_highlight): Don't highlight if Vmouse_highlight is nil. (show_mouse_face): Don't show highlight if mouse_face_hidden is set. (XTread_socket): Turn mouse_face_hidden off after mouse movement, and on after keyboard input. (x_term_init): Initialize mouse_face_hidden.
author Kim F. Storm <storm@cua.dk>
date Sat, 16 Feb 2002 23:55:57 +0000
parents 578ba74970b1
children 9a4630ba3eae
files src/xterm.c
diffstat 1 files changed, 16 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/xterm.c	Sat Feb 16 23:54:42 2002 +0000
+++ b/src/xterm.c	Sat Feb 16 23:55:57 2002 +0000
@@ -6686,11 +6686,6 @@
     }
 }
 
-/* This is used for debugging, to turn off note_mouse_highlight.  */
-
-int disable_mouse_highlight;
-
-
 
 /************************************************************************
 			      Mouse Face
@@ -6908,7 +6903,7 @@
     return;
 #endif
 
-  if (disable_mouse_highlight
+  if (NILP (Vmouse_highlight)
       || !f->glyphs_initialized_p)
     return;
 
@@ -7814,6 +7809,8 @@
   if (/* If window is in the process of being destroyed, don't bother
 	 to do anything.  */
       w->current_matrix != NULL
+      /* Don't update mouse highlight if hidden */
+      && (draw != DRAW_MOUSE_FACE || !dpyinfo->mouse_face_hidden)
       /* Recognize when we are called to operate on rows that don't exist
 	 anymore.  This can happen when a window is split.  */
       && dpyinfo->mouse_face_end_row < w->current_matrix->nrows)
@@ -10454,6 +10451,12 @@
 	    case KeyPress:
 	      f = x_any_window_to_frame (dpyinfo, event.xkey.window);
 
+	      if (!dpyinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight))
+		{
+		  dpyinfo->mouse_face_hidden = 1;
+		  clear_mouse_face (dpyinfo);
+		}
+
 #if defined USE_MOTIF && defined USE_TOOLKIT_SCROLL_BARS
 	      if (f == 0)
 		{
@@ -10866,6 +10869,12 @@
 		else
 		  f = x_window_to_frame (dpyinfo, event.xmotion.window);
 
+		if (dpyinfo->mouse_face_hidden)
+		  {
+		    dpyinfo->mouse_face_hidden = 0;
+		    clear_mouse_face (dpyinfo);
+		  }
+
 		if (f)
 		  note_mouse_movement (f, &event.xmotion);
 		else
@@ -14680,6 +14689,7 @@
   dpyinfo->mouse_face_overlay = Qnil;
   dpyinfo->mouse_face_mouse_x = dpyinfo->mouse_face_mouse_y = 0;
   dpyinfo->mouse_face_defer = 0;
+  dpyinfo->mouse_face_hidden = 0;
   dpyinfo->x_focus_frame = 0;
   dpyinfo->x_focus_event_frame = 0;
   dpyinfo->x_highlight_frame = 0;