]> code.delx.au - gnu-emacs/commitdiff
(coordinates_in_window): Don't report on margin area if its width is zero.
authorEli Zaretskii <eliz@gnu.org>
Wed, 17 Apr 2002 10:36:37 +0000 (10:36 +0000)
committerEli Zaretskii <eliz@gnu.org>
Wed, 17 Apr 2002 10:36:37 +0000 (10:36 +0000)
src/ChangeLog
src/window.c

index 3b8778e608f26fbdb641af33fca741038ba7fbcb..cb38544455c094ed844a8fde74d96e92fef1952e 100644 (file)
@@ -1,3 +1,8 @@
+2002-04-17  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * window.c (coordinates_in_window): Don't report on margin area
+       if its width is zero.
+
 2002-04-16  Jason Rumney  <jasonr@gnu.org>
 
        * w32fns.c (Fx_file_dialog): Decode file name before using.
index 21fb9d53e59bbd8f8fc624150ff3b77e7b6202db..e88873528c83f574329c8e2692fb4bfb88579a88 100644 (file)
@@ -534,6 +534,7 @@ coordinates_in_window (w, x, y)
   /* 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 @@ coordinates_in_window (w, x, y)
        }
       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 @@ coordinates_in_window (w, x, y)
        }
       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
            {