return List;
}
+static BOOL
+IntWndIsDefaultIme(_In_ PWND Window)
+{
+ PTHREADINFO pti = Window->head.pti;
+
+ return (IS_IMM_MODE() && !(pti->TIF_flags & TIF_INCLEANUP) &&
+ Window == pti->spwndDefaultIme);
+}
+
HWND* FASTCALL
IntWinListOwnedPopups(PWND Window)
{
for (Child = Desktop->spwndChild; Child; Child = Child->spwndNext)
{
- if (Child->spwndOwner == Window)
+ if (Child->spwndOwner == Window && !IntWndIsDefaultIme(Child))
++NumOwned;
}
Index = 0;
for (Child = Desktop->spwndChild; Child; Child = Child->spwndNext)
{
- if (Child->spwndOwner == Window)
+ if (Child->spwndOwner == Window && !IntWndIsDefaultIme(Child))
List[Index++] = Child->head.h;
}
List[Index] = NULL;
HWND* List;
HWND* phWnd;
PWND pWnd;
- PTHREADINFO pti = Window->head.pti;
USER_REFERENCE_ENTRY Ref;
List = IntWinListOwnedPopups(Window);
ASSERT(pWnd->spwndOwner == Window);
ASSERT(pWnd != Window);
- if (IS_IMM_MODE() && !(pti->TIF_flags & TIF_INCLEANUP) &&
- pWnd == pti->spwndDefaultIme)
- {
- continue;
- }
-
WndSetOwner(pWnd, NULL);
if (IntWndBelongsToThread(pWnd, PsGetCurrentThreadWin32Thread()))
{
{
if (!(pWnd = ValidateHwndNoErr( win_array[count] )))
continue;
- if (pWnd->spwndOwner != OwnerWnd)
- continue;
+ ASSERT(pWnd->spwndOwner == OwnerWnd);
if (fShow)
{