hrev50405 adds 1 changeset to branch 'master'
old head: ac30c586486721fcd1c553958ecd668c3e62f09e
new head: 8ba07614a4663500aad191d50917c56409be1e18
overview:
http://cgit.haiku-os.org/haiku/log/?qt=range&q=8ba07614a466+%5Eac30c5864867
----------------------------------------------------------------------------
8ba07614a466: WebPositive: dont restore session if a ref is received
Signed-off-by: Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
Fixes #12850
[ Paradoxon <two4god@xxxxxxxxx> ]
----------------------------------------------------------------------------
Revision: hrev50405
Commit: 8ba07614a4663500aad191d50917c56409be1e18
URL: http://cgit.haiku-os.org/haiku/commit/?id=8ba07614a466
Author: Paradoxon <two4god@xxxxxxxxx>
Date: Sat Jul 9 14:07:26 2016 UTC
Committer: Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
Commit-Date: Sun Jul 10 20:53:10 2016 UTC
Ticket: https://dev.haiku-os.org/ticket/12850
----------------------------------------------------------------------------
1 file changed, 21 insertions(+), 18 deletions(-)
src/apps/webpositive/BrowserApp.cpp | 39 ++++++++++++++++++---------------
----------------------------------------------------------------------------
diff --git a/src/apps/webpositive/BrowserApp.cpp
b/src/apps/webpositive/BrowserApp.cpp
index ef865af..0b4df79 100644
--- a/src/apps/webpositive/BrowserApp.cpp
+++ b/src/apps/webpositive/BrowserApp.cpp
@@ -231,29 +231,32 @@ BrowserApp::ReadyToRun()
fLaunchRefsMessage = NULL;
}
- BMessage archivedWindow;
- for (int i = 0; fSession->FindMessage("window", i, &archivedWindow) ==
B_OK;
- i++) {
-
- BRect frame = archivedWindow.FindRect("window frame");
- BString url;
- archivedWindow.FindString("tab", 0, &url);
- BrowserWindow* window = new(std::nothrow) BrowserWindow(frame,
- fSettings, url, fContext);
-
- 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 no refs led to a new open page, restore previous session.
+ if (pagesCreated == 0) {
+ BMessage archivedWindow;
+ for (int i = 0; fSession->FindMessage("window", i,
&archivedWindow) == B_OK;
+ i++) {
+ BRect frame = archivedWindow.FindRect("window frame");
+ BString url;
+ archivedWindow.FindString("tab", 0, &url);
+ BrowserWindow* window = new(std::nothrow)
BrowserWindow(frame,
+ fSettings, url, fContext);
+
+ 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++;
+ }
}
}
}
+ // If previous session did not contain any window, create a new empty
one.
if (pagesCreated == 0)
_CreateNewWindow("", fullscreen);