# HG changeset patch # User Kim F. Storm # Date 1013903962 0 # Node ID 44e2e2c9154f880e622b56101c4761111c1d4e5f # Parent e1a8a3f022512fa828f135b32ba012e2dd526148 (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. diff -r e1a8a3f02251 -r 44e2e2c9154f src/w32term.c --- 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 */ }