Skip to content

Commit

Permalink
Position tooltip below the taskbar when it is at the top of the screen
Browse files Browse the repository at this point in the history
Fixes github issue OpenVPN#710

Signed-off-by: Selva Nair <[email protected]>
  • Loading branch information
selvanair committed Nov 17, 2024
1 parent 1a65364 commit 209725d
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions tray.c
Original file line number Diff line number Diff line change
Expand Up @@ -374,6 +374,8 @@ PositionTrayToolTip(LONG x, LONG y)
{
RECT r;
LONG cxmax = GetSystemMetrics(SM_CXSCREEN);
LONG cymax = GetSystemMetrics(SM_CYSCREEN);
APPBARDATA abd = {.cbSize = sizeof(APPBARDATA) };
GetWindowRect(traytip, &r);
LONG w = r.right - r.left;
LONG h = r.bottom - r.top;
Expand All @@ -383,6 +385,14 @@ PositionTrayToolTip(LONG x, LONG y)
*/
r.left = (x < w/2) ? 0 : ((x + w/2 < cxmax) ? x - w/2 : cxmax - w);
r.top = (y > h + 10) ? y - (h + 10) : y + 10;

/* If taskbar is at top, move the top of the window to the bottom of the taskbar */
if (SHAppBarMessage(ABM_GETTASKBARPOS, &abd)
&& (abd.rc.bottom < cymax/2))
{
r.top = abd.rc.bottom;
}

SendMessageW(traytip, TTM_TRACKPOSITION, 0, MAKELONG(r.left, r.top));
SetWindowPos(traytip, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE);
}
Expand Down

0 comments on commit 209725d

Please sign in to comment.