changeset 43373:44e2e2c9154f

(disable_mouse_highlight): Removed variable. (note_mouse_highlight): Disable highlight if Vmouse_highlight is nil. (show_mouse_face): Don't show highlight if mouse_face_hidden is set. (w32_read_socket): Turn mouse_face_hidden off after mouse movement, and on after keyboard input. (w32_initialize_display_info): Initialize mouse_face_hidden.
author Kim F. Storm <storm@cua.dk>
date Sat, 16 Feb 2002 23:59:22 +0000
parents e1a8a3f02251
children 0bee8a661e55
files src/w32term.c
diffstat 1 files changed, 22 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/w32term.c	Sat Feb 16 23:58:23 2002 +0000
+++ b/src/w32term.c	Sat Feb 16 23:59:22 2002 +0000
@@ -6314,11 +6314,6 @@
     }
 }
 
-/* This is used for debugging, to turn off note_mouse_highlight.  */
-
-int disable_mouse_highlight;
-
-
 
 /************************************************************************
 			      Mouse Face
@@ -6535,7 +6530,7 @@
   if (popup_activated ())
     return;
 
-  if (disable_mouse_highlight
+  if (NILP (Vmouse_highlight)
       || !f->glyphs_initialized_p)
     return;
 
@@ -7444,6 +7439,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)
@@ -8642,6 +8639,12 @@
 	  
 	  if (f && !f->iconified)
 	    {
+	      if (!dpyinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight))
+		{
+		  dpyinfo->mouse_face_hidden = 1;
+		  clear_mouse_face (dpyinfo);
+		}
+
 	      if (temp_index == sizeof temp_buffer / sizeof (short))
 		temp_index = 0;
 	      temp_buffer[temp_index++] = msg.msg.wParam;
@@ -8663,6 +8666,12 @@
 	  
 	  if (f && !f->iconified)
 	    {
+	      if (!dpyinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight))
+		{
+		  dpyinfo->mouse_face_hidden = 1;
+		  clear_mouse_face (dpyinfo);
+		}
+
 	      if (temp_index == sizeof temp_buffer / sizeof (short))
 		temp_index = 0;
 	      temp_buffer[temp_index++] = msg.msg.wParam;
@@ -8689,6 +8698,12 @@
 	  else
 	    f = x_window_to_frame (dpyinfo, msg.msg.hwnd);
 	  
+	  if (dpyinfo->mouse_face_hidden)
+	    {
+	      dpyinfo->mouse_face_hidden = 0;
+	      clear_mouse_face (dpyinfo);
+	    }
+
 	  if (f)
 	    note_mouse_movement (f, &msg.msg);
 	  else
@@ -10852,6 +10867,7 @@
   dpyinfo->mouse_face_face_id = DEFAULT_FACE_ID;
   dpyinfo->mouse_face_window = Qnil;
   dpyinfo->mouse_face_overlay = Qnil;
+  dpyinfo->mouse_face_hidden = 0;
   /* TODO: dpyinfo->gray */
 
 }