Skip to content

Commit 881787b

Browse files
committed
Proper start menu alignment in case of vertical taskbar Windows 11
Fixes #1231
1 parent e25b656 commit 881787b

File tree

1 file changed

+5
-19
lines changed

1 file changed

+5
-19
lines changed

Src/StartMenu/StartMenuDLL/MenuContainer.cpp

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7533,31 +7533,17 @@ POINT CMenuContainer::CalculateCorner( void )
75337533
AdjustWindowRect(&margin,GetWindowLong(GWL_STYLE),FALSE);
75347534

75357535
POINT corner;
7536-
if (IsWin11())
7537-
{
7538-
// start button can be in the center on Win11
7539-
// we want to show menu at the position of start button
7540-
if (m_Options&CONTAINER_LEFT)
7541-
corner.x=s_StartRect.left+margin.left;
7542-
else
7543-
corner.x=s_StartRect.right+margin.right;
7544-
}
7536+
if (m_Options&CONTAINER_LEFT)
7537+
corner.x=max(s_MainMenuLimits.left,s_StartRect.left)+margin.left;
75457538
else
7546-
{
7547-
// start button can be only in corner on older systems
7548-
// we can use screen limits to determine menu position
7549-
if (m_Options&CONTAINER_LEFT)
7550-
corner.x=s_MainMenuLimits.left+margin.left;
7551-
else
7552-
corner.x=s_MainMenuLimits.right+margin.right;
7553-
}
7539+
corner.x=min(s_MainMenuLimits.right,s_StartRect.right)+margin.right;
75547540

75557541
if (m_Options&CONTAINER_TOP)
75567542
{
75577543
if (s_bBehindTaskbar)
7558-
corner.y=s_MainMenuLimits.top+margin.top;
7544+
corner.y=max(s_MainMenuLimits.top,s_StartRect.top)+margin.top;
75597545
else
7560-
corner.y=s_MainMenuLimits.top;
7546+
corner.y=max(s_MainMenuLimits.top,s_StartRect.top);
75617547
}
75627548
else
75637549
corner.y=s_MainMenuLimits.bottom+margin.bottom;

0 commit comments

Comments
 (0)