diff src/window.c @ 44649:1bb925387b48

(coordinates_in_window): Don't report on margin area if its width is zero.
author Eli Zaretskii <eliz@gnu.org>
date Wed, 17 Apr 2002 10:36:08 +0000
parents ee637a721e86
children 8c52c2bf3b3f
line wrap: on
line diff
--- a/src/window.c	Wed Apr 17 09:54:47 2002 +0000
+++ b/src/window.c	Wed Apr 17 10:36:08 2002 +0000
@@ -534,6 +534,7 @@
   /* The width of the area where the vertical line can be dragged.
      (Between mode lines for instance.  */
   int grabbable_width = ux;
+  int lmargin_width = 0, rmargin_width = 0;
 
   if (*x < x0 || *x >= x1)
     return ON_NOTHING;
@@ -628,9 +629,14 @@
 	}
       else
 	{
-	  if (*x <= window_box_right (w, LEFT_MARGIN_AREA))
+	  lmargin_width = window_box_width (w, LEFT_MARGIN_AREA);
+	  rmargin_width = window_box_width (w, RIGHT_MARGIN_AREA);
+	  /* You can never be on a margin area if its width is zero.  */
+	  if (lmargin_width
+	      && *x <= window_box_right (w, LEFT_MARGIN_AREA))
 	    part = ON_LEFT_MARGIN;
-	  else if (*x >= window_box_left (w, RIGHT_MARGIN_AREA))
+	  else if (rmargin_width
+		   && *x >= window_box_left (w, RIGHT_MARGIN_AREA))
 	    part = ON_RIGHT_MARGIN;
 	  else
 	    {
@@ -665,9 +671,15 @@
 	}
       else
 	{
-	  if (*x <= window_box_right (w, LEFT_MARGIN_AREA))
+	  lmargin_width = window_box_width (w, LEFT_MARGIN_AREA);
+	  rmargin_width = window_box_width (w, RIGHT_MARGIN_AREA);
+	  /* You can never be on a margin area if its width is zero.
+	     This is especially important for character terminals.  */
+	  if (lmargin_width
+	      && *x <= window_box_right (w, LEFT_MARGIN_AREA))
 	    part = ON_LEFT_MARGIN;
-	  else if (*x >= window_box_left (w, RIGHT_MARGIN_AREA))
+	  else if (rmargin_width
+		   && *x >= window_box_left (w, RIGHT_MARGIN_AREA))
 	    part = ON_RIGHT_MARGIN;
 	  else
 	    {