OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/system/web_notification/ash_popup_alignment_delegate.h" | 5 #include "ash/system/web_notification/ash_popup_alignment_delegate.h" |
6 | 6 |
7 #include "ash/display/display_controller.h" | 7 #include "ash/display/display_controller.h" |
8 #include "ash/shelf/shelf_constants.h" | 8 #include "ash/shelf/shelf_constants.h" |
9 #include "ash/shelf/shelf_layout_manager.h" | 9 #include "ash/shelf/shelf_layout_manager.h" |
10 #include "ash/shelf/shelf_types.h" | 10 #include "ash/shelf/shelf_types.h" |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 screen_->RemoveObserver(this); | 44 screen_->RemoveObserver(this); |
45 Shell::GetInstance()->RemoveShellObserver(this); | 45 Shell::GetInstance()->RemoveShellObserver(this); |
46 if (shelf_) | 46 if (shelf_) |
47 shelf_->RemoveObserver(this); | 47 shelf_->RemoveObserver(this); |
48 } | 48 } |
49 | 49 |
50 void AshPopupAlignmentDelegate::StartObserving(gfx::Screen* screen, | 50 void AshPopupAlignmentDelegate::StartObserving(gfx::Screen* screen, |
51 const gfx::Display& display) { | 51 const gfx::Display& display) { |
52 screen_ = screen; | 52 screen_ = screen; |
53 display_id_ = display.id(); | 53 display_id_ = display.id(); |
| 54 root_window_ = ash::Shell::GetInstance()->display_controller()-> |
| 55 GetRootWindowForDisplayId(display_id_); |
54 UpdateShelf(); | 56 UpdateShelf(); |
55 screen->AddObserver(this); | 57 screen->AddObserver(this); |
56 Shell::GetInstance()->AddShellObserver(this); | 58 Shell::GetInstance()->AddShellObserver(this); |
57 if (system_tray_height_ > 0) | 59 if (system_tray_height_ > 0) |
58 OnAutoHideStateChanged(shelf_->auto_hide_state()); | 60 OnAutoHideStateChanged(shelf_->auto_hide_state()); |
59 } | 61 } |
60 | 62 |
61 void AshPopupAlignmentDelegate::SetSystemTrayHeight(int height) { | 63 void AshPopupAlignmentDelegate::SetSystemTrayHeight(int height) { |
62 system_tray_height_ = height; | 64 system_tray_height_ = height; |
63 | 65 |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 } | 119 } |
118 | 120 |
119 ShelfAlignment AshPopupAlignmentDelegate::GetAlignment() const { | 121 ShelfAlignment AshPopupAlignmentDelegate::GetAlignment() const { |
120 return shelf_ ? shelf_->GetAlignment() : SHELF_ALIGNMENT_BOTTOM; | 122 return shelf_ ? shelf_->GetAlignment() : SHELF_ALIGNMENT_BOTTOM; |
121 } | 123 } |
122 | 124 |
123 void AshPopupAlignmentDelegate::UpdateShelf() { | 125 void AshPopupAlignmentDelegate::UpdateShelf() { |
124 if (shelf_) | 126 if (shelf_) |
125 return; | 127 return; |
126 | 128 |
127 aura::Window* root_window = ash::Shell::GetInstance()->display_controller()-> | 129 shelf_ = ShelfLayoutManager::ForShelf(root_window_); |
128 GetRootWindowForDisplayId(display_id_); | |
129 shelf_ = ShelfLayoutManager::ForShelf(root_window); | |
130 if (shelf_) | 130 if (shelf_) |
131 shelf_->AddObserver(this); | 131 shelf_->AddObserver(this); |
132 } | 132 } |
133 | 133 |
134 void AshPopupAlignmentDelegate::OnDisplayWorkAreaInsetsChanged() { | 134 void AshPopupAlignmentDelegate::OnDisplayWorkAreaInsetsChanged() { |
135 UpdateShelf(); | 135 UpdateShelf(); |
136 | 136 |
137 work_area_ = Shell::GetScreen()->GetDisplayNearestWindow( | 137 work_area_ = Shell::GetScreen()->GetDisplayNearestWindow( |
138 shelf_->shelf_widget()->GetNativeView()).work_area(); | 138 shelf_->shelf_widget()->GetNativeView()).work_area(); |
139 } | 139 } |
(...skipping 27 matching lines...) Expand all Loading... |
167 } | 167 } |
168 | 168 |
169 void AshPopupAlignmentDelegate::OnDisplayMetricsChanged( | 169 void AshPopupAlignmentDelegate::OnDisplayMetricsChanged( |
170 const gfx::Display& display, | 170 const gfx::Display& display, |
171 uint32_t metrics) { | 171 uint32_t metrics) { |
172 if (display.id() == display_id_ && shelf_) | 172 if (display.id() == display_id_ && shelf_) |
173 OnAutoHideStateChanged(shelf_->auto_hide_state()); | 173 OnAutoHideStateChanged(shelf_->auto_hide_state()); |
174 } | 174 } |
175 | 175 |
176 } // namespace ash | 176 } // namespace ash |
OLD | NEW |