}
static VOID
-ActivateLayout(HWND hwnd, ULONG uLayoutNum, HWND hwndTarget OPTIONAL)
+ActivateLayout(HWND hwnd, ULONG uLayoutNum, HWND hwndTarget OPTIONAL, BOOL bNoActivate)
{
HKL hKl;
TCHAR szLayoutNum[CCH_ULONG_DEC + 1], szLCID[CCH_LAYOUT_ID + 1], szLangName[MAX_PATH];
GetLocaleInfo(LangID, LOCALE_SLANGUAGE, szLangName, ARRAYSIZE(szLangName));
UpdateTrayIcon(hwnd, szLCID, szLangName);
- if (hwndTarget)
+ if (hwndTarget && !bNoActivate)
SetForegroundWindow(hwndTarget);
hKl = LoadKeyboardLayout(szLCID, KLF_ACTIVATE);
AddTrayIcon(hwnd);
- ActivateLayout(hwnd, ulCurrentLayoutNum, NULL);
+ ActivateLayout(hwnd, ulCurrentLayoutNum, NULL, FALSE);
s_uTaskbarRestart = RegisterWindowMessage(TEXT("TaskbarCreated"));
break;
}
ulCurrentLayoutNum = uNum;
}
- ActivateLayout(hwnd, GetNextLayout(), hwndTarget);
+ ActivateLayout(hwnd, GetNextLayout(), hwndTarget, TRUE);
/* FIXME: CONWND is multithreaded but KLF_SETFORPROCESS and
DefWindowProc.WM_INPUTLANGCHANGEREQUEST won't work yet */
if (bCONWND)
{
- ActivateLayout(hwnd, ulCurrentLayoutNum, hwndTargetSave);
+ ActivateLayout(hwnd, ulCurrentLayoutNum, hwndTargetSave, TRUE);
}
break;
}
{
g_hwndLastActive = NULL;
}
- ActivateLayout(hwnd, LOWORD(wParam), g_hwndLastActive);
+ ActivateLayout(hwnd, LOWORD(wParam), g_hwndLastActive, FALSE);
}
break;
}