Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Unified Diff: chrome/browser/ui/cocoa/browser_window_controller_private.mm

Issue 7621061: Restoring a session should restore window minimization state (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressing Mark's comments. Created 9 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/browser_window_controller_private.mm
diff --git a/chrome/browser/ui/cocoa/browser_window_controller_private.mm b/chrome/browser/ui/cocoa/browser_window_controller_private.mm
index bd3512d5a0b3ea1c876a2b6b302bcfb6e2ba1413..3a4b410bd25d04ecdff8aa6ebcf7d7596f9a8f27 100644
--- a/chrome/browser/ui/cocoa/browser_window_controller_private.mm
+++ b/chrome/browser/ui/cocoa/browser_window_controller_private.mm
@@ -35,6 +35,7 @@
#include "content/browser/renderer_host/render_widget_host_view.h"
#include "content/browser/tab_contents/tab_contents.h"
#include "content/browser/tab_contents/tab_contents_view.h"
+#include "ui/base/ui_base_types.h"
// Forward-declare symbols that are part of the 10.6 SDK.
#if !defined(MAC_OS_X_VERSION_10_6) || \
@@ -111,18 +112,9 @@ const CGFloat kLocBarBottomInset = 1;
}
- (void)saveWindowPositionIfNeeded {
- if (browser_ != BrowserList::GetLastActive())
+ if (!browser_->ShouldSaveWindowPlacement())
return;
- if (!browser_->profile()->GetPrefs() ||
- !browser_->ShouldSaveWindowPlacement()) {
- return;
- }
-
- [self saveWindowPositionToPrefs:browser_->profile()->GetPrefs()];
-}
-
-- (void)saveWindowPositionToPrefs:(PrefService*)prefs {
// If we're in fullscreen mode, save the position of the regular window
// instead.
NSWindow* window = [self isFullscreen] ? savedRegularWindow_ : [self window];
@@ -144,14 +136,20 @@ const CGFloat kLocBarBottomInset = 1;
gfx::Rect bounds(NSRectToCGRect([window frame]));
bounds.set_y(monitorFrame.size.height - bounds.y() - bounds.height());
- // We also need to save the current work area, in flipped coordinates.
+ // Browser::SaveWindowPlacement saves information for session restore.
+ ui::WindowShowState show_state = [window isMiniaturized] ?
+ ui::SHOW_STATE_MINIMIZED : ui::SHOW_STATE_NORMAL;
+ browser_->SaveWindowPlacement(bounds, show_state);
+
+ // Only save main window information to preferences.
+ PrefService* prefs = browser_->profile()->GetPrefs();
+ if (!prefs || browser_ != BrowserList::GetLastActive())
+ return;
+
+ // Save the current work area, in flipped coordinates.
gfx::Rect workArea(NSRectToCGRect([windowScreen visibleFrame]));
workArea.set_y(monitorFrame.size.height - workArea.y() - workArea.height());
- // Browser::SaveWindowPlacement is used for session restore.
- if (browser_->ShouldSaveWindowPlacement())
- browser_->SaveWindowPlacement(bounds, /*maximized=*/ false);
-
DictionaryPrefUpdate update(prefs, browser_->GetWindowPlacementKey().c_str());
DictionaryValue* windowPreferences = update.Get();
windowPreferences->SetInteger("left", bounds.x());

Powered by Google App Engine
This is Rietveld 408576698