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

Side by Side Diff: ash/shelf/shelf_layout_manager.cc

Issue 357063002: Snap widgets to pixel boundary on ash (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: adjust tests Created 6 years, 5 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ash/shelf/shelf_layout_manager.h ('k') | ash/shelf/shelf_widget.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ash/shelf/shelf_layout_manager.h" 5 #include "ash/shelf/shelf_layout_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <cstring> 9 #include <cstring>
10 #include <string> 10 #include <string>
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
180 180
181 // Shelf we're in. NULL if deleted before we're deleted. 181 // Shelf we're in. NULL if deleted before we're deleted.
182 ShelfLayoutManager* shelf_; 182 ShelfLayoutManager* shelf_;
183 183
184 DISALLOW_COPY_AND_ASSIGN(UpdateShelfObserver); 184 DISALLOW_COPY_AND_ASSIGN(UpdateShelfObserver);
185 }; 185 };
186 186
187 // ShelfLayoutManager ---------------------------------------------------------- 187 // ShelfLayoutManager ----------------------------------------------------------
188 188
189 ShelfLayoutManager::ShelfLayoutManager(ShelfWidget* shelf) 189 ShelfLayoutManager::ShelfLayoutManager(ShelfWidget* shelf)
190 : root_window_(shelf->GetNativeView()->GetRootWindow()), 190 : SnapToPixelLayoutManager(shelf->GetNativeView()->parent()),
191 root_window_(shelf->GetNativeView()->GetRootWindow()),
191 updating_bounds_(false), 192 updating_bounds_(false),
192 auto_hide_behavior_(SHELF_AUTO_HIDE_BEHAVIOR_NEVER), 193 auto_hide_behavior_(SHELF_AUTO_HIDE_BEHAVIOR_NEVER),
193 alignment_(SHELF_ALIGNMENT_BOTTOM), 194 alignment_(SHELF_ALIGNMENT_BOTTOM),
194 shelf_(shelf), 195 shelf_(shelf),
195 workspace_controller_(NULL), 196 workspace_controller_(NULL),
196 window_overlaps_shelf_(false), 197 window_overlaps_shelf_(false),
197 mouse_over_shelf_when_auto_hide_timer_started_(false), 198 mouse_over_shelf_when_auto_hide_timer_started_(false),
198 bezel_event_filter_(new ShelfBezelEventFilter(this)), 199 bezel_event_filter_(new ShelfBezelEventFilter(this)),
199 gesture_drag_status_(GESTURE_DRAG_NONE), 200 gesture_drag_status_(GESTURE_DRAG_NONE),
200 gesture_drag_amount_(0.f), 201 gesture_drag_amount_(0.f),
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
508 duration_override_in_ms_ = duration_override_in_ms; 509 duration_override_in_ms_ = duration_override_in_ms;
509 } 510 }
510 511
511 //////////////////////////////////////////////////////////////////////////////// 512 ////////////////////////////////////////////////////////////////////////////////
512 // ShelfLayoutManager, aura::LayoutManager implementation: 513 // ShelfLayoutManager, aura::LayoutManager implementation:
513 514
514 void ShelfLayoutManager::OnWindowResized() { 515 void ShelfLayoutManager::OnWindowResized() {
515 LayoutShelf(); 516 LayoutShelf();
516 } 517 }
517 518
518 void ShelfLayoutManager::OnWindowAddedToLayout(aura::Window* child) {
519 }
520
521 void ShelfLayoutManager::OnWillRemoveWindowFromLayout(aura::Window* child) {
522 }
523
524 void ShelfLayoutManager::OnWindowRemovedFromLayout(aura::Window* child) {
525 }
526
527 void ShelfLayoutManager::OnChildWindowVisibilityChanged(aura::Window* child,
528 bool visible) {
529 }
530
531 void ShelfLayoutManager::SetChildBounds(aura::Window* child, 519 void ShelfLayoutManager::SetChildBounds(aura::Window* child,
532 const gfx::Rect& requested_bounds) { 520 const gfx::Rect& requested_bounds) {
533 SetChildBoundsDirect(child, requested_bounds); 521 SnapToPixelLayoutManager::SetChildBounds(child, requested_bounds);
534 // We may contain other widgets (such as frame maximize bubble) but they don't 522 // We may contain other widgets (such as frame maximize bubble) but they don't
535 // effect the layout in anyway. 523 // effect the layout in anyway.
536 if (!updating_bounds_ && 524 if (!updating_bounds_ &&
537 ((shelf_->GetNativeView() == child) || 525 ((shelf_->GetNativeView() == child) ||
538 (shelf_->status_area_widget()->GetNativeView() == child))) { 526 (shelf_->status_area_widget()->GetNativeView() == child))) {
539 LayoutShelf(); 527 LayoutShelf();
540 } 528 }
541 } 529 }
542 530
543 void ShelfLayoutManager::OnLockStateChanged(bool locked) { 531 void ShelfLayoutManager::OnLockStateChanged(bool locked) {
(...skipping 612 matching lines...) Expand 10 before | Expand all | Expand 10 after
1156 1144
1157 void ShelfLayoutManager::SessionStateChanged( 1145 void ShelfLayoutManager::SessionStateChanged(
1158 SessionStateDelegate::SessionState state) { 1146 SessionStateDelegate::SessionState state) {
1159 TargetBounds target_bounds; 1147 TargetBounds target_bounds;
1160 CalculateTargetBounds(state_, &target_bounds); 1148 CalculateTargetBounds(state_, &target_bounds);
1161 UpdateBoundsAndOpacity(target_bounds, true, NULL); 1149 UpdateBoundsAndOpacity(target_bounds, true, NULL);
1162 UpdateVisibilityState(); 1150 UpdateVisibilityState();
1163 } 1151 }
1164 1152
1165 } // namespace ash 1153 } // namespace ash
OLDNEW
« no previous file with comments | « ash/shelf/shelf_layout_manager.h ('k') | ash/shelf/shelf_widget.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698