user32: Also show dialogs right after a WM_TIMER message.
This commit is contained in:
parent
ac08b038f0
commit
6ee4a87ad6
|
@ -815,6 +815,12 @@ INT DIALOG_DoDialogBox( HWND hwnd, HWND owner )
|
||||||
DispatchMessageW( &msg );
|
DispatchMessageW( &msg );
|
||||||
}
|
}
|
||||||
if (dlgInfo->flags & DF_END) break;
|
if (dlgInfo->flags & DF_END) break;
|
||||||
|
|
||||||
|
if (bFirstEmpty && msg.message == WM_TIMER)
|
||||||
|
{
|
||||||
|
ShowWindow( hwnd, SW_SHOWNORMAL );
|
||||||
|
bFirstEmpty = FALSE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (dlgInfo->flags & DF_OWNERENABLED) DIALOG_EnableOwner( owner );
|
if (dlgInfo->flags & DF_OWNERENABLED) DIALOG_EnableOwner( owner );
|
||||||
|
|
|
@ -1157,6 +1157,55 @@ static void test_SaveRestoreFocus(void)
|
||||||
DestroyWindow(hDlg);
|
DestroyWindow(hDlg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static INT_PTR CALLBACK timer_message_dlg_proc(HWND wnd, UINT msg, WPARAM wparam, LPARAM lparam)
|
||||||
|
{
|
||||||
|
static int count;
|
||||||
|
BOOL visible;
|
||||||
|
|
||||||
|
switch (msg)
|
||||||
|
{
|
||||||
|
case WM_INITDIALOG:
|
||||||
|
visible = GetWindowLong(wnd, GWL_STYLE) & WS_VISIBLE;
|
||||||
|
ok(!visible, "Dialog should not be visible.\n");
|
||||||
|
SetTimer(wnd, 1, 100, NULL);
|
||||||
|
Sleep(200);
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
case WM_COMMAND:
|
||||||
|
if (LOWORD(wparam) != IDCANCEL) return FALSE;
|
||||||
|
EndDialog(wnd, LOWORD(wparam));
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
case WM_TIMER:
|
||||||
|
if (wparam != 1) return FALSE;
|
||||||
|
visible = GetWindowLong(wnd, GWL_STYLE) & WS_VISIBLE;
|
||||||
|
if (!count++)
|
||||||
|
{
|
||||||
|
ok(!visible, "Dialog should not be visible.\n");
|
||||||
|
PostMessage(wnd, WM_USER, 0, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ok(visible, "Dialog should be visible.\n");
|
||||||
|
PostMessage(wnd, WM_COMMAND, IDCANCEL, 0);
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
case WM_USER:
|
||||||
|
visible = GetWindowLong(wnd, GWL_STYLE) & WS_VISIBLE;
|
||||||
|
ok(visible, "Dialog should be visible.\n");
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void test_timer_message(void)
|
||||||
|
{
|
||||||
|
DialogBoxA(g_hinst, "RADIO_TEST_DIALOG", NULL, timer_message_dlg_proc);
|
||||||
|
}
|
||||||
|
|
||||||
START_TEST(dialog)
|
START_TEST(dialog)
|
||||||
{
|
{
|
||||||
g_hinst = GetModuleHandleA (0);
|
g_hinst = GetModuleHandleA (0);
|
||||||
|
@ -1172,4 +1221,5 @@ START_TEST(dialog)
|
||||||
test_DisabledDialogTest();
|
test_DisabledDialogTest();
|
||||||
test_MessageBoxFontTest();
|
test_MessageBoxFontTest();
|
||||||
test_SaveRestoreFocus();
|
test_SaveRestoreFocus();
|
||||||
|
test_timer_message();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue