# HG changeset patch # User Kim F. Storm # Date 1054773388 0 # Node ID 3ee34a66739ec2d680b93d07dbc93f23881e25c9 # Parent 056514de0e0cd616c1c00cb0ae766d40855f1422 (coordinates_in_window): Convert X and Y to window relative coordinates inside mode-line and header-line parts. Convert X and Y to margin area relative coordinates inside left and right display margin parts. diff -r 056514de0e0c -r 3ee34a66739e src/window.c --- a/src/window.c Thu Jun 05 00:36:09 2003 +0000 +++ b/src/window.c Thu Jun 05 00:36:28 2003 +0000 @@ -654,6 +654,10 @@ return ON_VERTICAL_BORDER; } + /* Convert X and Y to window relative coordinates. + Mode line starts at left edge of window. */ + *x -= x0; + *y -= top_y; return part; } @@ -703,7 +707,13 @@ && (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) ? (*x >= left_x + WINDOW_LEFT_FRINGE_WIDTH (w)) : (*x < left_x + lmargin_width))) - return ON_LEFT_MARGIN; + { + *x -= x0; + if (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)) + *x -= WINDOW_LEFT_FRINGE_WIDTH (w); + *y -= top_y; + return ON_LEFT_MARGIN; + } /* Convert X and Y to window-relative pixel coordinates. */ *x -= left_x; @@ -717,7 +727,13 @@ && (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w) ? (*x < right_x - WINDOW_RIGHT_FRINGE_WIDTH (w)) : (*x >= right_x - rmargin_width))) - return ON_RIGHT_MARGIN; + { + *x -= right_x; + if (!WINDOW_HAS_FRINGES_OUTSIDE_MARGINS (w)) + *x -= WINDOW_RIGHT_FRINGE_WIDTH (w); + *y -= top_y; + return ON_RIGHT_MARGIN; + } /* Convert X and Y to window-relative pixel coordinates. */ *x -= left_x + WINDOW_LEFT_FRINGE_WIDTH (w);