mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-28 19:26:16 +00:00
Allow activating tasks
svn path=/trunk/; revision=41805
This commit is contained in:
@@ -1028,6 +1028,21 @@ TaskSwitchWnd_AddTask(IN OUT PTASK_SWITCH_WND This,
|
||||
return TaskItem != NULL;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
TaskSwitchWnd_ActivateTaskItem(IN OUT PTASK_SWITCH_WND This,
|
||||
IN OUT PTASK_ITEM TaskItem)
|
||||
{
|
||||
if (TaskItem != NULL)
|
||||
{
|
||||
DbgPrint("Activate window 0x%p on button %d\n", TaskItem->hWnd, TaskItem->Index);
|
||||
}
|
||||
|
||||
TaskSwitchWnd_CheckActivateTaskItem(This,
|
||||
TaskItem);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL
|
||||
TaskSwitchWnd_ActivateTask(IN OUT PTASK_SWITCH_WND This,
|
||||
IN HWND hWnd)
|
||||
@@ -1041,20 +1056,14 @@ TaskSwitchWnd_ActivateTask(IN OUT PTASK_SWITCH_WND This,
|
||||
TaskItem = TaskSwitchWnd_FindOtherTaskItem(This,
|
||||
hWnd);
|
||||
}
|
||||
|
||||
if (TaskItem != NULL)
|
||||
{
|
||||
DbgPrint("Activate window 0x%p on button %d\n", hWnd, TaskItem->Index);
|
||||
}
|
||||
else
|
||||
|
||||
if (TaskItem == NULL)
|
||||
{
|
||||
DbgPrint("Activate window 0x%p, could not find task\n", hWnd);
|
||||
}
|
||||
|
||||
TaskSwitchWnd_CheckActivateTaskItem(This,
|
||||
TaskItem);
|
||||
|
||||
return FALSE;
|
||||
return TaskSwitchWnd_ActivateTaskItem(This,
|
||||
TaskItem);
|
||||
}
|
||||
|
||||
static BOOL
|
||||
@@ -1634,6 +1643,75 @@ TaskSwitchWnd_EnableGrouping(IN OUT PTASK_SWITCH_WND This,
|
||||
FALSE);
|
||||
}
|
||||
|
||||
static VOID
|
||||
TaskSwitchWnd_HandleTaskItemClick(IN OUT PTASK_SWITCH_WND This,
|
||||
IN OUT PTASK_ITEM TaskItem)
|
||||
{
|
||||
BOOL bMinimize;
|
||||
|
||||
if (IsWindow(TaskItem->hWnd))
|
||||
{
|
||||
bMinimize = !IsIconic(TaskItem->hWnd) &&
|
||||
TaskItem == This->ActiveTaskItem;
|
||||
|
||||
if (!bMinimize && IsIconic(TaskItem->hWnd))
|
||||
{
|
||||
PostMessage(TaskItem->hWnd,
|
||||
WM_SYSCOMMAND,
|
||||
SC_RESTORE,
|
||||
0);
|
||||
}
|
||||
|
||||
SetForegroundWindow(TaskItem->hWnd);
|
||||
|
||||
if (bMinimize)
|
||||
{
|
||||
PostMessage(TaskItem->hWnd,
|
||||
WM_SYSCOMMAND,
|
||||
SC_MINIMIZE,
|
||||
0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static VOID
|
||||
TaskSwitchWnd_HandleTaskGroupClick(IN OUT PTASK_SWITCH_WND This,
|
||||
IN OUT PTASK_GROUP TaskGroup)
|
||||
{
|
||||
/* TODO: Show task group menu */
|
||||
}
|
||||
|
||||
static BOOL
|
||||
TaskSwitchWnd_HandleButtonClick(IN OUT PTASK_SWITCH_WND This,
|
||||
IN WORD wIndex)
|
||||
{
|
||||
PTASK_ITEM TaskItem;
|
||||
PTASK_GROUP TaskGroup;
|
||||
|
||||
if (This->IsGroupingEnabled)
|
||||
{
|
||||
TaskGroup = FindTaskGroupByIndex(This,
|
||||
(INT)wIndex);
|
||||
if (TaskGroup != NULL && TaskGroup->IsCollapsed)
|
||||
{
|
||||
TaskSwitchWnd_HandleTaskGroupClick(This,
|
||||
TaskGroup);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
TaskItem = FindTaskItemByIndex(This,
|
||||
(INT)wIndex);
|
||||
if (TaskItem != NULL)
|
||||
{
|
||||
TaskSwitchWnd_HandleTaskItemClick(This,
|
||||
TaskItem);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static LRESULT
|
||||
TaskSwichWnd_HandleItemPaint(IN OUT PTASK_SWITCH_WND This,
|
||||
IN OUT NMTBCUSTOMDRAW *nmtbcd)
|
||||
@@ -1860,7 +1938,8 @@ TaskSwitchWndProc(IN HWND hwnd,
|
||||
{
|
||||
if (lParam != 0 && (HWND)lParam == This->hWndToolbar)
|
||||
{
|
||||
DbgPrint("WM_COMMAND %u:%u (%u)\n", (UINT)LOWORD(wParam), (UINT)HIWORD(wParam), (UINT)wParam);
|
||||
TaskSwitchWnd_HandleButtonClick(This,
|
||||
LOWORD(wParam));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user