/* Allocate a new task group */
TaskGroup = HeapAlloc(hProcessHeap,
- 0,
+ HEAP_ZERO_MEMORY,
sizeof(*TaskGroup));
if (TaskGroup != NULL)
{
- ZeroMemory(TaskGroup,
- sizeof(*TaskGroup));
-
TaskGroup->dwTaskCount = 1;
TaskGroup->dwProcessId = dwProcessId;
TaskGroup->Index = -1;
sizeof(TBBUTTON),
0);
- This->TaskIcons = ImageList_Create(16, 16, ILC_COLOR32, 0, 1000);
+ This->TaskIcons = ImageList_Create(16, 16, ILC_COLOR32 | ILC_MASK, 0, 1000);
SendMessage(This->hWndToolbar, TB_SETIMAGELIST, 0, (LPARAM)This->TaskIcons);
/* Calculate the default button size. Don't save this in This->ButtonSize.cx so that
break;
case HSHELL_TASKMAN:
+ PostMessage(ITrayWindow_GetHWND(This->Tray), TWM_OPENSTARTMENU,0, 0);
+ break;
+
case HSHELL_LANGUAGE:
case HSHELL_SYSMENU:
case HSHELL_ENDTASK:
{
LPCREATESTRUCT CreateStruct = (LPCREATESTRUCT)lParam;
This = HeapAlloc(hProcessHeap,
- 0,
+ HEAP_ZERO_MEMORY,
sizeof(*This));
if (This == NULL)
return FALSE;
- ZeroMemory(This,
- sizeof(*This));
This->hWnd = hwnd;
This->hWndNotify = CreateStruct->hwndParent;
This->Tray = (ITrayWindow*)CreateStruct->lpCreateParams;
break;
#endif
+ case WM_KLUDGEMINRECT:
+ {
+ PTASK_ITEM TaskItem = TaskSwitchWnd_FindTaskItem(This, (HWND)wParam);
+ if (TaskItem)
+ {
+ RECT* prcMinRect = (RECT*)lParam;
+ RECT rcItem, rcToolbar;
+ SendMessageW(This->hWndToolbar,TB_GETITEMRECT, TaskItem->Index, (LPARAM)&rcItem);
+ GetWindowRect(This->hWndToolbar, &rcToolbar);
+
+ OffsetRect(&rcItem, rcToolbar.left, rcToolbar.top);
+
+ *prcMinRect = rcItem;
+ return TRUE;
+ }
+ return FALSE;
+ }
+
default:
/* HandleDefaultMessage: */
if (uMsg == This->ShellHookMsg && This->ShellHookMsg != 0)