- int cx = GetSystemMetrics(SM_CXMINIMIZED);
- int cy = m_ButtonSize.cy = GetSystemMetrics(SM_CYSIZE);
- m_TaskBar.SetButtonSize(cx, cy);
+ /* Update the size of the image list if needed */
+ int cx, cy;
+ ImageList_GetIconSize(m_ImageList, &cx, &cy);
+ if (cx != GetSystemMetrics(SM_CXSMICON) || cy != GetSystemMetrics(SM_CYSMICON))
+ {
+ ImageList_SetIconSize(m_ImageList, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON));
+
+ /* SetIconSize removes all icons so we have to reinsert them */
+ PTASK_ITEM TaskItem = m_TaskItems;
+ PTASK_ITEM LastTaskItem = m_TaskItems + m_TaskItemCount;
+ while (TaskItem != LastTaskItem)
+ {
+ TaskItem->IconIndex = -1;
+ UpdateTaskItemButton(TaskItem);
+
+ TaskItem++;
+ }
+ m_TaskBar.SetImageList(m_ImageList);
+ }