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

Side by Side Diff: ash/wm/overview/window_selector_window.cc

Issue 331643004: Update the window labels if they change in overview mode. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed Sky's comments Created 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 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 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/wm/overview/window_selector_window.h" 5 #include "ash/wm/overview/window_selector_window.h"
6 6
7 #include "ash/screen_util.h" 7 #include "ash/screen_util.h"
8 #include "ash/shell.h" 8 #include "ash/shell.h"
9 #include "ash/shell_window_ids.h" 9 #include "ash/shell_window_ids.h"
10 #include "ash/wm/overview/scoped_transform_overview_window.h" 10 #include "ash/wm/overview/scoped_transform_overview_window.h"
11 #include "grit/ash_resources.h" 11 #include "grit/ash_resources.h"
12 #include "ui/aura/window.h" 12 #include "ui/aura/window.h"
13 #include "ui/base/resource/resource_bundle.h" 13 #include "ui/base/resource/resource_bundle.h"
14 #include "ui/compositor/scoped_layer_animation_settings.h" 14 #include "ui/compositor/scoped_layer_animation_settings.h"
15 #include "ui/gfx/rect.h" 15 #include "ui/gfx/rect.h"
16 #include "ui/gfx/transform.h" 16 #include "ui/gfx/transform.h"
17 #include "ui/views/controls/button/image_button.h" 17 #include "ui/views/controls/button/image_button.h"
18 #include "ui/views/widget/widget.h" 18 #include "ui/views/widget/widget.h"
19 19
20 namespace ash { 20 namespace ash {
21 21
22 WindowSelectorWindow::WindowSelectorWindow(aura::Window* window) 22 WindowSelectorWindow::WindowSelectorWindow(aura::Window* window)
23 : transform_window_(window) { 23 : transform_window_(window) {
24 window->AddObserver(this);
24 } 25 }
25 26
26 WindowSelectorWindow::~WindowSelectorWindow() { 27 WindowSelectorWindow::~WindowSelectorWindow() {
28 if (transform_window_.window())
29 transform_window_.window()->RemoveObserver(this);
27 } 30 }
28 31
29 aura::Window* WindowSelectorWindow::GetRootWindow() { 32 aura::Window* WindowSelectorWindow::GetRootWindow() {
30 return transform_window_.window()->GetRootWindow(); 33 return transform_window_.window()->GetRootWindow();
31 } 34 }
32 35
33 bool WindowSelectorWindow::HasSelectableWindow(const aura::Window* window) { 36 bool WindowSelectorWindow::HasSelectableWindow(const aura::Window* window) {
34 return transform_window_.window() == window; 37 return transform_window_.window() == window;
35 } 38 }
36 39
37 bool WindowSelectorWindow::Contains(const aura::Window* target) { 40 bool WindowSelectorWindow::Contains(const aura::Window* target) {
38 return transform_window_.Contains(target); 41 return transform_window_.Contains(target);
39 } 42 }
40 43
41 void WindowSelectorWindow::RestoreWindowOnExit(aura::Window* window) { 44 void WindowSelectorWindow::RestoreWindowOnExit(aura::Window* window) {
42 transform_window_.RestoreWindowOnExit(); 45 transform_window_.RestoreWindowOnExit();
43 } 46 }
44 47
45 aura::Window* WindowSelectorWindow::SelectionWindow() { 48 aura::Window* WindowSelectorWindow::SelectionWindow() {
46 return transform_window_.window(); 49 return transform_window_.window();
47 } 50 }
48 51
49 void WindowSelectorWindow::RemoveWindow(const aura::Window* window) { 52 void WindowSelectorWindow::RemoveWindow(const aura::Window* window) {
50 DCHECK_EQ(transform_window_.window(), window); 53 DCHECK_EQ(transform_window_.window(), window);
54 transform_window_.window()->RemoveObserver(this);
51 transform_window_.OnWindowDestroyed(); 55 transform_window_.OnWindowDestroyed();
52 WindowSelectorItem::RemoveWindow(window); 56 WindowSelectorItem::RemoveWindow(window);
53 } 57 }
54 58
55 bool WindowSelectorWindow::empty() const { 59 bool WindowSelectorWindow::empty() const {
56 return transform_window_.window() == NULL; 60 return transform_window_.window() == NULL;
57 } 61 }
58 62
59 void WindowSelectorWindow::PrepareForOverview() { 63 void WindowSelectorWindow::PrepareForOverview() {
60 transform_window_.PrepareForOverview(); 64 transform_window_.PrepareForOverview();
61 } 65 }
62 66
63 void WindowSelectorWindow::SetItemBounds(aura::Window* root_window, 67 void WindowSelectorWindow::SetItemBounds(aura::Window* root_window,
64 const gfx::Rect& target_bounds, 68 const gfx::Rect& target_bounds,
65 bool animate) { 69 bool animate) {
66 gfx::Rect src_rect = transform_window_.GetBoundsInScreen(); 70 gfx::Rect src_rect = transform_window_.GetBoundsInScreen();
67 set_bounds(ScopedTransformOverviewWindow:: 71 set_bounds(ScopedTransformOverviewWindow::
68 ShrinkRectToFitPreservingAspectRatio(src_rect, target_bounds)); 72 ShrinkRectToFitPreservingAspectRatio(src_rect, target_bounds));
69 transform_window_.SetTransform(root_window, 73 transform_window_.SetTransform(root_window,
70 ScopedTransformOverviewWindow::GetTransformForRect(src_rect, bounds()), 74 ScopedTransformOverviewWindow::GetTransformForRect(src_rect, bounds()),
71 animate); 75 animate);
72 } 76 }
73 77
74 } // namespace ash 78 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698