diff src/window.c @ 90384:c156f6a9e7b5

Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-56 Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 204-225) - Update from CVS - Sync from erc--emacs--0 - Merge from gnus--rel--5.10 - Improve tq.el. - Update from CVS: src/puresize.h (PURESIZE_RATIO): Reduce to 10/6. * gnus--rel--5.10 (patch 81-85) - Update from CVS - Merge from emacs--devo--0
author Miles Bader <miles@gnu.org>
date Mon, 17 Apr 2006 08:41:12 +0000
parents e6bf73e43cf4 abc53f51fd3e
children 72dea2ff0142
line wrap: on
line diff
--- a/src/window.c	Sun Apr 09 01:43:22 2006 +0000
+++ b/src/window.c	Mon Apr 17 08:41:12 2006 +0000
@@ -661,12 +661,20 @@
 	  || WINDOW_RIGHTMOST_P (w))
 	{
 	  if (!WINDOW_LEFTMOST_P (w) && abs (*x - x0) < grabbable_width)
-	    return ON_VERTICAL_BORDER;
+	    {
+	      *x = max (0, *x - x0);
+	      *y -= top_y;
+	      return ON_VERTICAL_BORDER;
+	    }
 	}
       else
 	{
 	  if (abs (*x - x1) < grabbable_width)
-	    return ON_VERTICAL_BORDER;
+	    {
+	      *x = min (x1, *x) - x0;
+	      *y -= top_y;
+	      return ON_VERTICAL_BORDER;
+	    }
 	}
 
       if (*x < x0 || *x >= x1)
@@ -708,7 +716,11 @@
 	  && !WINDOW_HAS_VERTICAL_SCROLL_BAR (w)
 	  && !WINDOW_RIGHTMOST_P (w)
 	  && (abs (*x - right_x) < grabbable_width))
-	return ON_VERTICAL_BORDER;
+	{
+	  *x = min (right_x, *x) - left_x;
+	  *y -= top_y;
+	  return ON_VERTICAL_BORDER;
+	}
     }
   else
     {
@@ -720,6 +732,8 @@
 	{
 	  /* On the border on the right side of the window?  Assume that
 	     this area begins at RIGHT_X minus a canonical char width.  */
+	  *x = min (right_x, *x) - left_x;
+	  *y -= top_y;
 	  return ON_VERTICAL_BORDER;
 	}
     }