Skip to content

Commit

Permalink
Fix position of the tray icon info tip when the taskbar is at the top…
Browse files Browse the repository at this point in the history
… of the screen (#711)

* Position tooltip below the taskbar when it is at the top of the screen

Fixes github issue #710

Signed-off-by: Selva Nair <[email protected]>

* Update CHANGES.rst

Signed-off-by: Selva Nair <[email protected]>

---------

Signed-off-by: Selva Nair <[email protected]>
  • Loading branch information
selvanair authored Nov 18, 2024
1 parent 1a65364 commit 3ba02de
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
13 changes: 13 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
Version 11.51.0
===============

* Higher resolution eye icons
* Support for concatenating OTP with password
* Optionally always prompt for OTP
* Fix tooltip positioning when the taskbar is at top

Version 11.50.0
===============

* Translation improvements (Italian)

Version 11.49.0
===============

Expand Down
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 3ba02de

Please sign in to comment.