mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 18:15:11 +00:00
[USER32] Switch to only one window (Alt+Tab) (#1718)
Fix app switcher (Alt+Tab)'s behavior when there is only one app window. CORE-16176
This commit is contained in:
parent
28a0aa9ae8
commit
c17a8770a3
1 changed files with 14 additions and 11 deletions
|
@ -481,11 +481,13 @@ BOOL ProcessHotKey(VOID)
|
|||
|
||||
if (windowCount == 1)
|
||||
{
|
||||
selectedWindow = 0;
|
||||
CompleteSwitch(TRUE);
|
||||
return TRUE;
|
||||
MakeWindowActive(windowList[0]);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!CreateSwitcherWindow(User32Instance))
|
||||
return FALSE;
|
||||
|
||||
selectedWindow = 1;
|
||||
|
||||
TRACE("[ATbot] HotKey Received. Opening window.\n");
|
||||
|
@ -610,10 +612,6 @@ LRESULT WINAPI DoAppSwitch( WPARAM wParam, LPARAM lParam )
|
|||
// Already in the loop.
|
||||
if (switchdialog || Esc) return 0;
|
||||
|
||||
hwndActive = GetActiveWindow();
|
||||
// Nothing is active so exit.
|
||||
if (!hwndActive) return 0;
|
||||
|
||||
if (lParam == VK_ESCAPE)
|
||||
{
|
||||
Esc = TRUE;
|
||||
|
@ -636,14 +634,15 @@ LRESULT WINAPI DoAppSwitch( WPARAM wParam, LPARAM lParam )
|
|||
}
|
||||
|
||||
// Capture current active window.
|
||||
SetCapture( hwndActive );
|
||||
hwndActive = GetActiveWindow();
|
||||
if (hwndActive)
|
||||
SetCapture(hwndActive);
|
||||
|
||||
switch (lParam)
|
||||
{
|
||||
case VK_TAB:
|
||||
if( !CreateSwitcherWindow(User32Instance) ) goto Exit;
|
||||
if( !GetDialogFont() ) goto Exit;
|
||||
if( !ProcessHotKey() ) goto Exit;
|
||||
if (!GetDialogFont() || !ProcessHotKey())
|
||||
goto Exit;
|
||||
break;
|
||||
|
||||
case VK_ESCAPE:
|
||||
|
@ -652,6 +651,10 @@ LRESULT WINAPI DoAppSwitch( WPARAM wParam, LPARAM lParam )
|
|||
default:
|
||||
goto Exit;
|
||||
}
|
||||
|
||||
if (!hwndActive)
|
||||
goto Exit;
|
||||
|
||||
// Main message loop:
|
||||
while (1)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue