Fix custom button position on auto-hiding taskbar

Fixes #2067.
This commit is contained in:
ge0rdi
2025-01-04 16:10:52 +01:00
parent 552fbd8296
commit faf79de4d5

View File

@@ -1216,6 +1216,19 @@ void EnableHotkeys( THotkeys enable )
}
}
bool IsTouchTaskbar(void)
{
if (!IsWin11())
return false;
CRegKey regKey;
if (regKey.Open(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer") != ERROR_SUCCESS)
return false;
DWORD val;
return regKey.QueryDWORDValue(L"TabletPostureTaskbar", val) == ERROR_SUCCESS && val;
}
static void UpdateStartButtonPosition(const TaskbarInfo* taskBar, const WINDOWPOS* pPos)
{
if (IsStartButtonSmallIcons(taskBar->taskbarId) != IsTaskbarSmallIcons())
@@ -1223,11 +1236,14 @@ static void UpdateStartButtonPosition(const TaskbarInfo* taskBar, const WINDOWPO
RECT rcTask;
GetWindowRect(taskBar->taskBar, &rcTask);
if (IsTouchTaskbar())
{
if (RECT rc; GetWindowRgnBox(taskBar->taskBar, &rc) != ERROR)
{
MapWindowPoints(taskBar->taskBar, NULL, (POINT*)&rc, 2);
rcTask = rc;
}
}
MONITORINFO info;
UINT uEdge = GetTaskbarPosition(taskBar->taskBar, &info, NULL, NULL);
DWORD buttonFlags = SWP_NOACTIVATE | SWP_NOOWNERZORDER | SWP_NOSIZE;