From f849a8775ee9de1d5a1f2f50ca89d67f4a3813fe Mon Sep 17 00:00:00 2001 From: nipos Date: Wed, 1 Apr 2026 19:45:28 +0200 Subject: [PATCH] WebPositive: Restore previous window only if archive has at least one tab Fixes #19994 Change-Id: I91ea0b11f2c820599e45f962b2271ea7dbf8cca0 Reviewed-on: https://review.haiku-os.org/c/haiku/+/10646 Tested-by: Commit checker robot Reviewed-by: Adrien Destugues --- src/apps/webpositive/BrowserApp.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/apps/webpositive/BrowserApp.cpp b/src/apps/webpositive/BrowserApp.cpp index cd838b2608..f6a0f14561 100644 --- a/src/apps/webpositive/BrowserApp.cpp +++ b/src/apps/webpositive/BrowserApp.cpp @@ -271,19 +271,20 @@ BrowserApp::ReadyToRun() uint32 workspaces = B_CURRENT_WORKSPACE; archivedWindow.FindUInt32("window workspaces", 0, &workspaces); BString url; - archivedWindow.FindString("tab", 0, &url); - BrowserWindow* window = new(std::nothrow) BrowserWindow(frame, fSettings, url, - fContext, INTERFACE_ELEMENT_ALL, NULL, workspaces); + if (archivedWindow.FindString("tab", 0, &url) == B_OK) { + BrowserWindow* window = new(std::nothrow) BrowserWindow(frame, fSettings, url, + fContext, INTERFACE_ELEMENT_ALL, NULL, workspaces); - if (window != NULL) { - window->Show(); - pagesCreated++; - - for (int j = 1; archivedWindow.FindString("tab", j, &url) - == B_OK; j++) { - printf("Create %d:%d\n", i, j); - _CreateNewTab(window, url, false); + if (window != NULL) { + window->Show(); pagesCreated++; + + for (int j = 1; archivedWindow.FindString("tab", j, &url) + == B_OK; j++) { + printf("Create %d:%d\n", i, j); + _CreateNewTab(window, url, false); + pagesCreated++; + } } } }