changeset 51385:a838a46a67a6

Make last change compile on MSVC
author Jason Rumney <jasonr@gnu.org>
date Sun, 01 Jun 2003 21:48:53 +0000
parents de51ce646828
children c750333d879e
files src/keyboard.c
diffstat 1 files changed, 176 insertions(+), 176 deletions(-) [+]
line wrap: on
line diff
--- a/src/keyboard.c	Sun Jun 01 21:40:38 2003 +0000
+++ b/src/keyboard.c	Sun Jun 01 21:48:53 2003 +0000
@@ -5429,183 +5429,183 @@
 	Lisp_Object window;
 	Lisp_Object head;
 	
+	/* Build the position as appropriate for this mouse click.  */
+	enum window_part part;
+	struct frame *f = XFRAME (event->frame_or_window);
+	Lisp_Object posn;
+	Lisp_Object string_info = Qnil;
+	int row, column;
+	int wx, wy;
 	position = Qnil;
- 	/* Build the position as appropriate for this mouse click.  */
- 	enum window_part part;
- 	struct frame *f = XFRAME (event->frame_or_window);
- 	Lisp_Object posn;
- 	Lisp_Object string_info = Qnil;
- 	int row, column;
- 	int wx, wy;
-
- 	/* Ignore wheel events that were made on frame that have been
- 	   deleted.  */
- 	if (! FRAME_LIVE_P (f))
- 	  return Qnil;
- 	
- 	/* EVENT->x and EVENT->y are frame-relative pixel
- 	   coordinates at this place.  Under old redisplay, COLUMN
- 	   and ROW are set to frame relative glyph coordinates
- 	   which are then used to determine whether this click is
- 	   in a menu (non-toolkit version).  */
- 	pixel_to_glyph_coords (f, XINT (event->x), XINT (event->y),
- 			       &column, &row, NULL, 1);
-
- 	/* Set `window' to the window under frame pixel coordinates
- 	   event->x/event->y.  */
- 	window = window_from_coordinates (f, XINT (event->x),
- 					  XINT (event->y),
- 					  &part, &wx, &wy, 0);
-
- 	if (!WINDOWP (window))
- 	  {
- 	    window = event->frame_or_window;
- 	    posn = Qnil;
- 	  }
- 	else
- 	  {
- 	    /* It's a click in window window at frame coordinates
- 	       event->x/ event->y.  */
- 	    struct window *w = XWINDOW (window);
- 	
- 	    /* Set event coordinates to window-relative coordinates
- 	       for constructing the Lisp event below.  */
- 	    XSETINT (event->x, wx);
- 	    XSETINT (event->y, wy);
- 	
- 	    if (part == ON_MODE_LINE || part == ON_HEADER_LINE)
- 	      {
- 		/* Mode line or header line.  Look for a string under
- 		   the mouse that may have a `local-map' property.  */
- 		Lisp_Object string;
- 		int charpos;
- 		
- 		posn = part == ON_MODE_LINE ? Qmode_line : Qheader_line;
- 		string = mode_line_string (w, wx, wy, part, &charpos);
- 		if (STRINGP (string))
- 		  string_info = Fcons (string, make_number (charpos));
- 	      }
- 	    else if (part == ON_VERTICAL_BORDER)
- 	      posn = Qvertical_line;
- 	    else if (part == ON_LEFT_MARGIN || part == ON_RIGHT_MARGIN)
- 	      {
- 		int charpos;
- 		Lisp_Object object = marginal_area_string (w, wx, wy, part,
- 							   &charpos);
- 		posn = (part == ON_LEFT_MARGIN) ? Qleft_margin : Qright_margin;
- 		if (STRINGP (object))
- 		  string_info = Fcons (object, make_number (charpos));
- 	      }
- 	    else
- 	      {
- 		Lisp_Object object;
- 		struct display_pos p;
- 		buffer_posn_from_coords (w, &wx, &wy, &object, &p);
- 		posn = make_number (CHARPOS (p.pos));
- 		if (STRINGP (object))
- 		  string_info
- 		    = Fcons (object,
- 			     make_number (CHARPOS (p.string_pos)));
- 	      }
- 	  }
- 	
- 	position
- 	  = Fcons (window,
- 		   Fcons (posn,
- 			  Fcons (Fcons (event->x, event->y),
- 				 Fcons (make_number (event->timestamp),
- 					(NILP (string_info)
- 					 ? Qnil
- 					 : Fcons (string_info, Qnil))))));
-
- 	/* Set double or triple modifiers to indicate the wheel speed.	*/
- 	{
- 	  /* On window-system frames, use the value of
- 	     double-click-fuzz as is.  On other frames, interpret it
- 	     as a multiple of 1/8 characters.  */
- 	  struct frame *f;
- 	  int fuzz;
- 	  int is_double;
-
- 	  if (WINDOWP (event->frame_or_window))
- 	    f = XFRAME (XWINDOW (event->frame_or_window)->frame);
- 	  else if (FRAMEP (event->frame_or_window))
- 	    f = XFRAME (event->frame_or_window);
- 	  else
- 	    abort ();
-
- 	  if (FRAME_WINDOW_P (f))
- 	    fuzz = double_click_fuzz;
- 	  else
- 	    fuzz = double_click_fuzz / 8;
-
- 	  is_double = (last_mouse_button < 0
- 		       && (abs (XINT (event->x) - last_mouse_x) <= fuzz)
- 		       && (abs (XINT (event->y) - last_mouse_y) <= fuzz)
- 		       && button_down_time != 0
- 		       && (EQ (Vdouble_click_time, Qt)
- 			   || (INTEGERP (Vdouble_click_time)
- 			       && ((int)(event->timestamp - button_down_time)
- 				   < XINT (Vdouble_click_time)))));
- 	  if (is_double)
- 	    {
- 	      double_click_count++;
- 	      event->modifiers |= ((double_click_count > 2)
- 				   ? triple_modifier
- 				   : double_modifier);
- 	    }
- 	  else
- 	    {
- 	      double_click_count = 1;
- 	      event->modifiers |= click_modifier;
- 	    }
- 	
- 	  button_down_time = event->timestamp;
- 	  /* Use a negative value to distinguish wheel from mouse button.  */
- 	  last_mouse_button = -1;
- 	  last_mouse_x = XINT (event->x);
- 	  last_mouse_y = XINT (event->y);
- 	}
- 	
- 	{
- 	  int symbol_num;
- 	
- 	  if (event->modifiers & up_modifier)
- 	    {
- 	      /* Emit a wheel-up event.	 */
- 	      event->modifiers &= ~up_modifier;
- 	      symbol_num = 0;
- 	    }
- 	  else if (event->modifiers & down_modifier)
- 	    {
- 	      /* Emit a wheel-down event.  */
- 	      event->modifiers &= ~down_modifier;
- 	      symbol_num = 1;
- 	    }
- 	  else
- 	    /* Every wheel event should either have the down_modifier or
- 	       the up_modifier set.  */
- 	    abort ();
- 	
- 	  /* Get the symbol we should use for the wheel event.	*/
- 	  head = modify_event_symbol (symbol_num,
- 				      event->modifiers,
- 				      Qmouse_click,
- 				      Qnil,
- 				      lispy_wheel_names,
- 				      &wheel_syms,
- 				      ASIZE (wheel_syms));
- 	}
- 	
- 	if (event->modifiers & (double_modifier | triple_modifier))
- 	  return Fcons (head,
- 			Fcons (position,
- 			       Fcons (make_number (double_click_count),
- 				      Qnil)));
- 	else
- 	  return Fcons (head,
- 			Fcons (position,
- 			       Qnil));
+
+	/* Ignore wheel events that were made on frame that have been
+	   deleted.  */
+	if (! FRAME_LIVE_P (f))
+	  return Qnil;
+
+	/* EVENT->x and EVENT->y are frame-relative pixel
+	   coordinates at this place.  Under old redisplay, COLUMN
+	   and ROW are set to frame relative glyph coordinates
+	   which are then used to determine whether this click is
+	   in a menu (non-toolkit version).  */
+	pixel_to_glyph_coords (f, XINT (event->x), XINT (event->y),
+			       &column, &row, NULL, 1);
+
+	/* Set `window' to the window under frame pixel coordinates
+	   event->x/event->y.  */
+	window = window_from_coordinates (f, XINT (event->x),
+					  XINT (event->y),
+					  &part, &wx, &wy, 0);
+
+	if (!WINDOWP (window))
+	  {
+	    window = event->frame_or_window;
+	    posn = Qnil;
+	  }
+	else
+	  {
+	    /* It's a click in window window at frame coordinates
+	       event->x/ event->y.  */
+	    struct window *w = XWINDOW (window);
+	
+	    /* Set event coordinates to window-relative coordinates
+	       for constructing the Lisp event below.  */
+	    XSETINT (event->x, wx);
+	    XSETINT (event->y, wy);
+	
+	    if (part == ON_MODE_LINE || part == ON_HEADER_LINE)
+	      {
+		/* Mode line or header line.  Look for a string under
+		   the mouse that may have a `local-map' property.  */
+		Lisp_Object string;
+		int charpos;
+
+		posn = part == ON_MODE_LINE ? Qmode_line : Qheader_line;
+		string = mode_line_string (w, wx, wy, part, &charpos);
+		if (STRINGP (string))
+		  string_info = Fcons (string, make_number (charpos));
+	      }
+	    else if (part == ON_VERTICAL_BORDER)
+	      posn = Qvertical_line;
+	    else if (part == ON_LEFT_MARGIN || part == ON_RIGHT_MARGIN)
+	      {
+		int charpos;
+		Lisp_Object object = marginal_area_string (w, wx, wy, part,
+							   &charpos);
+		posn = (part == ON_LEFT_MARGIN) ? Qleft_margin : Qright_margin;
+		if (STRINGP (object))
+		  string_info = Fcons (object, make_number (charpos));
+	      }
+	    else
+	      {
+		Lisp_Object object;
+		struct display_pos p;
+		buffer_posn_from_coords (w, &wx, &wy, &object, &p);
+		posn = make_number (CHARPOS (p.pos));
+		if (STRINGP (object))
+		  string_info
+		    = Fcons (object,
+			     make_number (CHARPOS (p.string_pos)));
+	      }
+	  }
+	
+	position
+	  = Fcons (window,
+		   Fcons (posn,
+			  Fcons (Fcons (event->x, event->y),
+				 Fcons (make_number (event->timestamp),
+					(NILP (string_info)
+					 ? Qnil
+					 : Fcons (string_info, Qnil))))));
+
+	/* Set double or triple modifiers to indicate the wheel speed.	*/
+	{
+	  /* On window-system frames, use the value of
+	     double-click-fuzz as is.  On other frames, interpret it
+	     as a multiple of 1/8 characters.  */
+	  struct frame *f;
+	  int fuzz;
+	  int is_double;
+
+	  if (WINDOWP (event->frame_or_window))
+	    f = XFRAME (XWINDOW (event->frame_or_window)->frame);
+	  else if (FRAMEP (event->frame_or_window))
+	    f = XFRAME (event->frame_or_window);
+	  else
+	    abort ();
+
+	  if (FRAME_WINDOW_P (f))
+	    fuzz = double_click_fuzz;
+	  else
+	    fuzz = double_click_fuzz / 8;
+
+	  is_double = (last_mouse_button < 0
+		       && (abs (XINT (event->x) - last_mouse_x) <= fuzz)
+		       && (abs (XINT (event->y) - last_mouse_y) <= fuzz)
+		       && button_down_time != 0
+		       && (EQ (Vdouble_click_time, Qt)
+			   || (INTEGERP (Vdouble_click_time)
+			       && ((int)(event->timestamp - button_down_time)
+				   < XINT (Vdouble_click_time)))));
+	  if (is_double)
+	    {
+	      double_click_count++;
+	      event->modifiers |= ((double_click_count > 2)
+				   ? triple_modifier
+				   : double_modifier);
+	    }
+	  else
+	    {
+	      double_click_count = 1;
+	      event->modifiers |= click_modifier;
+	    }
+
+	  button_down_time = event->timestamp;
+	  /* Use a negative value to distinguish wheel from mouse button.  */
+	  last_mouse_button = -1;
+	  last_mouse_x = XINT (event->x);
+	  last_mouse_y = XINT (event->y);
+	}
+
+	{
+	  int symbol_num;
+
+	  if (event->modifiers & up_modifier)
+	    {
+	      /* Emit a wheel-up event.	 */
+	      event->modifiers &= ~up_modifier;
+	      symbol_num = 0;
+	    }
+	  else if (event->modifiers & down_modifier)
+	    {
+	      /* Emit a wheel-down event.  */
+	      event->modifiers &= ~down_modifier;
+	      symbol_num = 1;
+	    }
+	  else
+	    /* Every wheel event should either have the down_modifier or
+	       the up_modifier set.  */
+	    abort ();
+
+	  /* Get the symbol we should use for the wheel event.	*/
+	  head = modify_event_symbol (symbol_num,
+				      event->modifiers,
+				      Qmouse_click,
+				      Qnil,
+				      lispy_wheel_names,
+				      &wheel_syms,
+				      ASIZE (wheel_syms));
+	}
+
+	if (event->modifiers & (double_modifier | triple_modifier))
+	  return Fcons (head,
+			Fcons (position,
+			       Fcons (make_number (double_click_count),
+				      Qnil)));
+	else
+	  return Fcons (head,
+			Fcons (position,
+			       Qnil));
       }