[0.4.11][EXPLORER] Fix for Start Button Wrong size when Using Themes (#4121) CORE...
authorJoachim Henze <Joachim.Henze@reactos.org>
Mon, 10 Jan 2022 12:49:15 +0000 (13:49 +0100)
committerJoachim Henze <Joachim.Henze@reactos.org>
Mon, 10 Jan 2022 12:49:15 +0000 (13:49 +0100)
CORE-16742 'Start button background in themes is scaled incorrectly' (especially MS Luna)

The problem once was unhidden by
0.4.7-dev-705-g 85ae8421055f51eac48cb3d8acce47a7cd715982

Fix picked from 0.4.15-dev-3441-g 67ad4e7f60ec52691d0a8b017e3d23b1d889b656

base/shell/explorer/traywnd.cpp

index ebea58e..f9128ff 100644 (file)
@@ -1550,7 +1550,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)
@@ -1616,14 +1616,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)