changeset 50225:39746533995d

Remove consolidated defines and code. (IT_note_mouse_highlight, dos_rawgetc): Use enum window_part.
author Kim F. Storm <storm@cua.dk>
date Fri, 21 Mar 2003 13:50:39 +0000
parents 68fb4bd4fa31
children 1ba638ccab28
files src/msdos.c
diffstat 1 files changed, 14 insertions(+), 44 deletions(-) [+]
line wrap: on
line diff
--- a/src/msdos.c	Fri Mar 21 13:50:27 2003 +0000
+++ b/src/msdos.c	Fri Mar 21 13:50:39 2003 +0000
@@ -1180,22 +1180,6 @@
 			  Mouse Highlight (and friends..)
  ************************************************************************/
 
-/* If non-nil, dos_rawgetc generates an event to display that string.
-   (The display is done in keyboard.c:read_char, by calling
-   show_help_echo.)  */
-static Lisp_Object help_echo;
-static Lisp_Object previous_help_echo; /* a helper temporary variable */
-
-/* These record the window, the object and the position where the help
-   echo string was generated.  */
-static Lisp_Object help_echo_window;
-static Lisp_Object help_echo_object;
-static int help_echo_pos;
-
-/* Non-zero means automatically select any window when the mouse
-   cursor moves into it.  */
-int mouse_autoselect_window;
-
 /* Last window where we saw the mouse.  Used by mouse-autoselect-window.  */
 static Lisp_Object last_mouse_window;
 
@@ -1465,7 +1449,7 @@
 				     Qhelp_echo, glyph->object);
 	  if (!NILP (help))
 	    {
-	      help_echo = help;
+	      help_echo_string = help;
 	      XSETWINDOW (help_echo_window, w);
 	      help_echo_object = glyph->object;
 	      help_echo_pos = glyph->charpos;
@@ -1482,7 +1466,7 @@
 IT_note_mouse_highlight (struct frame *f, int x, int y)
 {
   struct display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f);
-  int portion = -1;
+  enum window_part part = ON_NOTHING;
   Lisp_Object window;
   struct window *w;
 
@@ -1508,7 +1492,7 @@
     }
 
   /* Which window is that in?  */
-  window = window_from_coordinates (f, x, y, &portion, 0);
+  window = window_from_coordinates (f, x, y, &part, 0);
 
   /* If we were displaying active text in another window, clear that.  */
   if (! EQ (window, dpyinfo->mouse_face_window))
@@ -1523,10 +1507,10 @@
   x -= WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X (w);
   y -= WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y (w);
 
-  if (portion == 1 || portion == 3)
+  if (part == ON_MODE_LINE || part == ON_HEADER_LINE)
     {
       /* Mouse is on the mode or top line.  */
-      IT_note_mode_line_highlight (w, x, portion == 1);
+      IT_note_mode_line_highlight (w, x, part == ON_MODE_LINE);
       return;
     }
   else
@@ -1534,8 +1518,7 @@
 
   /* Are we in a window whose display is up to date?
      And verify the buffer's text has not changed.  */
-  if (/* Within text portion of the window.  */
-      portion == 0
+  if (part == ON_TEXT
       && EQ (w->window_end_valid, w->buffer)
       && XFASTINT (w->last_modified) == BUF_MODIFF (XBUFFER (w->buffer))
       && (XFASTINT (w->last_overlay_modified)
@@ -1731,7 +1714,7 @@
 
 	  if (!NILP (help))
 	    {
-	      help_echo = help;
+	      help_echo_string = help;
 	      help_echo_window = window;
 	      help_echo_object = overlay;
 	      help_echo_pos = pos;
@@ -1749,7 +1732,7 @@
 					 Qhelp_echo, glyph->object);
 	      if (!NILP (help))
 		{
-		  help_echo = help;
+		  help_echo_string = help;
 		  help_echo_window = window;
 		  help_echo_object = glyph->object;
 		  help_echo_pos = glyph->charpos;
@@ -3397,12 +3380,10 @@
 	  /* Generate SELECT_WINDOW_EVENTs when needed.  */
 	  if (mouse_autoselect_window)
 	    {
-	      int mouse_area;
-
 	      mouse_window = window_from_coordinates (SELECTED_FRAME(),
 						      mouse_last_x,
 						      mouse_last_y,
-						      &mouse_area, 0);
+						      0, 0);
 	      /* A window will be selected only when it is not
 		 selected now, and the last mouse movement event was
 		 not in it.  A minibuffer window will be selected iff
@@ -3422,21 +3403,21 @@
 	  else
 	    last_mouse_window = Qnil;
 
-	  previous_help_echo = help_echo;
-	  help_echo = help_echo_object = help_echo_window = Qnil;
+	  previous_help_echo_string = help_echo_string;
+	  help_echo_string = help_echo_object = help_echo_window = Qnil;
 	  help_echo_pos = -1;
 	  IT_note_mouse_highlight (SELECTED_FRAME(),
 				   mouse_last_x, mouse_last_y);
 	  /* If the contents of the global variable help_echo has
 	     changed, generate a HELP_EVENT.  */
-	  if (!NILP (help_echo) || !NILP (previous_help_echo))
+	  if (!NILP (help_echo_string) || !NILP (previous_help_echo_string))
 	    {
 	      event.kind = HELP_EVENT;
 	      event.frame_or_window = selected_frame;
 	      event.arg = help_echo_object;
 	      event.x = WINDOWP (help_echo_window)
 		? help_echo_window : selected_frame;
-	      event.y = help_echo;
+	      event.y = help_echo_string;
 	      event.timestamp = event_timestamp ();
 	      event.code = help_echo_pos;
 	      kbd_buffer_store_event (&event);
@@ -5305,16 +5286,8 @@
 {
   recent_doskeys = Fmake_vector (make_number (NUM_RECENT_DOSKEYS), Qnil);
   staticpro (&recent_doskeys);
+
 #ifndef HAVE_X_WINDOWS
-  help_echo = Qnil;
-  staticpro (&help_echo);
-  help_echo_object = Qnil;
-  staticpro (&help_echo_object);
-  help_echo_window = Qnil;
-  staticpro (&help_echo_window);
-  previous_help_echo = Qnil;
-  staticpro (&previous_help_echo);
-  help_echo_pos = -1;
 
   /* The following two are from xfns.c:  */
   Qbar = intern ("bar");
@@ -5332,9 +5305,6 @@
 This variable is used only by MSDOS terminals.  */);
   Vdos_unsupported_char_glyph = '\177';
 
-  DEFVAR_BOOL ("mouse-autoselect-window", &mouse_autoselect_window,
-    doc: /* *Non-nil means autoselect window with mouse pointer.  */);
-  mouse_autoselect_window = 0;
 #endif
 #ifndef subprocesses
   DEFVAR_BOOL ("delete-exited-processes", &delete_exited_processes,