* (compute_tip_xy): Calculate root_y the same way as root_x,
i.e. dy is offset from top of frame instead of bottom.
This commit is contained in:
14
src/macfns.c
14
src/macfns.c
@@ -3840,13 +3840,15 @@ compute_tip_xy (f, parms, dx, dy, width, height, root_x, root_y)
|
||||
|
||||
if (INTEGERP (top))
|
||||
*root_y = XINT (top);
|
||||
else if (*root_y + XINT (dy) - height < 0)
|
||||
*root_y -= XINT (dy);
|
||||
else
|
||||
{
|
||||
*root_y -= height;
|
||||
else if (*root_y + XINT (dy) + height <= FRAME_MAC_DISPLAY_INFO (f)->height)
|
||||
/* It fits below the pointer */
|
||||
*root_y += XINT (dy);
|
||||
}
|
||||
else if (height + XINT (dy) <= *root_y)
|
||||
/* It fits above the pointer. */
|
||||
*root_y -= height + XINT (dy);
|
||||
else
|
||||
/* Put it on the top. */
|
||||
*root_y = 0;
|
||||
|
||||
if (INTEGERP (left))
|
||||
*root_x = XINT (left);
|
||||
|
||||
17
src/w32fns.c
17
src/w32fns.c
@@ -7411,16 +7411,15 @@ compute_tip_xy (f, parms, dx, dy, width, height, root_x, root_y)
|
||||
|
||||
if (INTEGERP (top))
|
||||
*root_y = XINT (top);
|
||||
else if (*root_y + XINT (dy) - height < 0)
|
||||
*root_y -= XINT (dy);
|
||||
/* If there's not enough place below the pointer, put tip above it. */
|
||||
else if (*root_y + XINT (dy) >= FRAME_W32_DISPLAY_INFO (f)->height)
|
||||
*root_y -= XINT (dy);
|
||||
else
|
||||
{
|
||||
*root_y -= height;
|
||||
else if (*root_y + XINT (dy) + height <= FRAME_W32_DISPLAY_INFO (f)->height)
|
||||
/* It fits below the pointer */
|
||||
*root_y += XINT (dy);
|
||||
}
|
||||
else if (height + XINT (dy) <= *root_y)
|
||||
/* It fits above the pointer. */
|
||||
*root_y -= height + XINT (dy);
|
||||
else
|
||||
/* Put it on the top. */
|
||||
*root_y = 0;
|
||||
|
||||
if (INTEGERP (left))
|
||||
*root_x = XINT (left);
|
||||
|
||||
17
src/xfns.c
17
src/xfns.c
@@ -4940,16 +4940,15 @@ compute_tip_xy (f, parms, dx, dy, width, height, root_x, root_y)
|
||||
|
||||
if (INTEGERP (top))
|
||||
*root_y = XINT (top);
|
||||
else if (*root_y + XINT (dy) - height < 0)
|
||||
*root_y -= XINT (dy);
|
||||
else if (*root_y + XINT (dy) >= FRAME_X_DISPLAY_INFO (f)->height)
|
||||
/* Put tip above the pointer. */
|
||||
*root_y -= XINT (dy);
|
||||
else
|
||||
{
|
||||
*root_y -= height;
|
||||
else if (*root_y + XINT (dy) + height <= FRAME_X_DISPLAY_INFO (f)->height)
|
||||
/* It fits below the pointer */
|
||||
*root_y += XINT (dy);
|
||||
}
|
||||
else if (height + XINT (dy) <= *root_y)
|
||||
/* It fits above the pointer. */
|
||||
*root_y -= height + XINT (dy);
|
||||
else
|
||||
/* Put it on the top. */
|
||||
*root_y = 0;
|
||||
|
||||
if (INTEGERP (left))
|
||||
*root_x = XINT (left);
|
||||
|
||||
Reference in New Issue
Block a user