[EXPLORER] Fix for Start Button Wrong size when Using Themes (#4121) CORE-16742
authorDoug Lyons <douglyons@douglyons.com>
Tue, 30 Nov 2021 21:48:46 +0000 (15:48 -0600)
committerGitHub <noreply@github.com>
Tue, 30 Nov 2021 21:48:46 +0000 (22:48 +0100)
The problem once was unhidden by
0.4.7-dev-705-g 85ae8421055f51eac48cb3d8acce47a7cd715982

base/shell/explorer/traywnd.cpp

index e14e805..2b69e48 100644 (file)
@@ -1562,7 +1562,7 @@ ChangePos:
         else
         {
             WndSize.cx = StartBtnSize.cx;
-            WndSize.cy = StartBtnSize.cy - EdgeSize.cx;
+            WndSize.cy = StartBtnSize.cy - EdgeSize.cy;
         }
 
         if (WndSize.cx < g_TaskbarSettings.sr.Size.cx)
@@ -1628,14 +1628,13 @@ ChangePos:
         if (StartSize.cx > rcClient.right)
             StartSize.cx = rcClient.right;
 
-        if (!m_Theme)
+        HWND hwndTaskToolbar = ::GetWindow(m_TaskSwitch, GW_CHILD);
+        if (hwndTaskToolbar)
         {
-            HWND hwndTaskToolbar = ::GetWindow(m_TaskSwitch, GW_CHILD);
-            if (hwndTaskToolbar)
-            {
-                DWORD size = SendMessageW(hwndTaskToolbar, TB_GETBUTTONSIZE, 0, 0);
-                StartSize.cy = HIWORD(size);
-            }
+            DWORD size = SendMessageW(hwndTaskToolbar, TB_GETBUTTONSIZE, 0, 0);
+
+            /* Themed button covers Edge area as well */
+            StartSize.cy = HIWORD(size) + (m_Theme ? GetSystemMetrics(SM_CYEDGE) : 0);
         }
 
         if (m_StartButton.m_hWnd != NULL)