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

Unified Diff: layout_manager.cc

Issue 2867041: This fixes a problem with fav icon opacity, and initial panning position. (Closed) Base URL: ssh://git@chromiumos-git//window_manager.git
Patch Set: Created 10 years, 6 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
« no previous file with comments | « no previous file | snapshot_window.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: layout_manager.cc
diff --git a/layout_manager.cc b/layout_manager.cc
index 0a0b2c85b76af28e498fd0fdbfec7bbb1410e1ac..b6796aa9dde45fbc97d157eead8b187083843655 100644
--- a/layout_manager.cc
+++ b/layout_manager.cc
@@ -82,7 +82,7 @@ LayoutManager::LayoutManager(WindowManager* wm, PanelManager* panel_manager)
current_toplevel_(NULL),
current_snapshot_(NULL),
fullscreen_toplevel_(NULL),
- overview_panning_offset_(0),
+ overview_panning_offset_(INT_MAX),
overview_background_offset_(0),
overview_width_of_snapshots_(0),
overview_background_event_coalescer_(
@@ -849,9 +849,11 @@ void LayoutManager::LayoutWindows(bool animate) {
}
void LayoutManager::SetMode(Mode mode) {
- // Just treat the active-cancelled state as regular active mode; we're
- // really just using it to pass an extra bit of information into this
- // method so we can notify Chrome that overview mode was cancelled.
+ // Just treat the active-cancelled state as regular active mode;
+ // we're really just using it to pass an extra bit of information
+ // into this method so we can notify Chrome that overview mode was
+ // cancelled. Cancelling actually happens on the Chrome side, since
+ // it knows what tabs used to be selected.
bool was_cancelled = false;
if (mode == MODE_ACTIVE_CANCELLED) {
was_cancelled = true;
@@ -869,9 +871,6 @@ void LayoutManager::SetMode(Mode mode) {
switch (mode_) {
case MODE_ACTIVE:
- // Cancelling actually happens on the Chrome side, since it
- // knows what tabs used to be selected. It knows to cancel
- // because it's a different layout mode.
if (current_toplevel_)
current_toplevel_->TakeFocus(wm_->GetCurrentTimeFromServer());
for (ToplevelWindows::iterator it = toplevels_.begin();
@@ -893,6 +892,7 @@ void LayoutManager::SetMode(Mode mode) {
break;
case MODE_OVERVIEW: {
UpdateCurrentSnapshot();
+
if (current_toplevel_ &&
current_toplevel_->IsWindowOrTransientFocused()) {
// We need to give the input focus away here; otherwise the
@@ -1259,6 +1259,11 @@ void LayoutManager::CalculatePositionsForOverviewMode(bool enforce_bounds) {
if (max_x < min_x)
std::swap(max_x, min_x);
+ // If we haven't set the panning offset before, center the current
+ // snapshot.
+ if (overview_panning_offset_ == INT_MAX)
+ CenterCurrentSnapshot(-1, -1);
+
// There's two modes here: one where the snapshots are too wide
// to fit, and one where they aren't. Just so happens that we
// want to do similar things in both cases.
« no previous file with comments | « no previous file | snapshot_window.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698