From: Jacob Czekalla jczekalla@codeweavers.com
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54861 --- dlls/comctl32/propsheet.c | 8 ++++++++ dlls/comctl32/tests/propsheet.c | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/dlls/comctl32/propsheet.c b/dlls/comctl32/propsheet.c index b530a1a8094..230c3218510 100644 --- a/dlls/comctl32/propsheet.c +++ b/dlls/comctl32/propsheet.c @@ -3625,6 +3625,14 @@ PROPSHEET_DialogProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) psInfo->ppshheader.pszCaption); }
+ for (int index = 0; index < psInfo->nPages;) + { + DWORD premature = HPSP_get_flags(psInfo->proppage[index].hpage) & PSP_PREMATURE; + if (premature && !PROPSHEET_CreatePage(hwnd, index, psInfo, psInfo->proppage[index].hpage)) + PROPSHEET_RemovePage(hwnd, index, NULL); + else + index++; + }
if (psInfo->useCallback) (*(psInfo->ppshheader.pfnCallback))(hwnd, PSCB_INITIALIZED, 0); diff --git a/dlls/comctl32/tests/propsheet.c b/dlls/comctl32/tests/propsheet.c index 510fe4e9317..fa01d59a661 100644 --- a/dlls/comctl32/tests/propsheet.c +++ b/dlls/comctl32/tests/propsheet.c @@ -1422,7 +1422,7 @@ static void test_init_page_creation(void) for (int p = 0; p < 3; p++) { hwnd_page = (HWND)SendMessageA(hp, PSM_INDEXTOHWND, p, 0); - todo_wine ok(hwnd_page != NULL, "Page %d not created.\n", p); + ok(hwnd_page != NULL, "Page %d not created.\n", p); }
DestroyWindow(hp);