Home | History | Annotate | Download | only in overview
      1 // Copyright 2013 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "ash/wm/overview/window_selector_item.h"
      6 #include "base/auto_reset.h"
      7 #include "ui/aura/window.h"
      8 
      9 namespace ash {
     10 
     11 WindowSelectorItem::WindowSelectorItem()
     12     : root_window_(NULL),
     13       in_bounds_update_(false) {
     14 }
     15 
     16 WindowSelectorItem::~WindowSelectorItem() {
     17 }
     18 
     19 void WindowSelectorItem::SetBounds(aura::Window* root_window,
     20                                    const gfx::Rect& target_bounds) {
     21   if (in_bounds_update_)
     22     return;
     23   base::AutoReset<bool> auto_reset_in_bounds_update(&in_bounds_update_, true);
     24   root_window_ = root_window;
     25   target_bounds_ = target_bounds;
     26   SetItemBounds(root_window, target_bounds, true);
     27 }
     28 
     29 void WindowSelectorItem::RecomputeWindowTransforms() {
     30   if (in_bounds_update_ || target_bounds_.IsEmpty())
     31     return;
     32   DCHECK(root_window_);
     33   base::AutoReset<bool> auto_reset_in_bounds_update(&in_bounds_update_, true);
     34   SetItemBounds(root_window_, target_bounds_, false);
     35 }
     36 
     37 }  // namespace ash
     38