From f8c62b703717c25946587818342f60d07941f608 Mon Sep 17 00:00:00 2001 From: Nick Roberts Date: Mon, 17 Apr 2006 00:24:50 +0000 Subject: [PATCH] (coordinates_in_window): On the vertical border, calculate the row number measured from the top of the window, not the top of the frame. --- src/window.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/window.c b/src/window.c index a44a08f3553..648ac5b939c 100644 --- a/src/window.c +++ b/src/window.c @@ -661,12 +661,20 @@ coordinates_in_window (w, x, y) || 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 @@ coordinates_in_window (w, x, y) && !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 @@ coordinates_in_window (w, x, y) { /* 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; } } -- 2.39.2