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

Side by Side Diff: ash/wm/panels/attached_panel_window_targeter.cc

Issue 2041423003: Converts ShellObserver from aura::Window to ash::WmWindow (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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
« no previous file with comments | « ash/wm/panels/attached_panel_window_targeter.h ('k') | ash/wm/screen_dimmer.h » ('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 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/wm/panels/attached_panel_window_targeter.h" 5 #include "ash/wm/panels/attached_panel_window_targeter.h"
6 6
7 #include "ash/aura/wm_shelf_aura.h" 7 #include "ash/aura/wm_shelf_aura.h"
8 #include "ash/aura/wm_window_aura.h"
8 #include "ash/common/wm/panels/panel_layout_manager.h" 9 #include "ash/common/wm/panels/panel_layout_manager.h"
9 #include "ash/shelf/shelf.h" 10 #include "ash/shelf/shelf.h"
10 #include "ash/shell.h" 11 #include "ash/shell.h"
11 12
12 namespace ash { 13 namespace ash {
13 14
14 AttachedPanelWindowTargeter::AttachedPanelWindowTargeter( 15 AttachedPanelWindowTargeter::AttachedPanelWindowTargeter(
15 aura::Window* container, 16 aura::Window* container,
16 const gfx::Insets& default_mouse_extend, 17 const gfx::Insets& default_mouse_extend,
17 const gfx::Insets& default_touch_extend, 18 const gfx::Insets& default_touch_extend,
18 PanelLayoutManager* panel_layout_manager) 19 PanelLayoutManager* panel_layout_manager)
19 : ::wm::EasyResizeWindowTargeter(container, 20 : ::wm::EasyResizeWindowTargeter(container,
20 default_mouse_extend, 21 default_mouse_extend,
21 default_touch_extend), 22 default_touch_extend),
22 panel_container_(container), 23 panel_container_(container),
23 panel_layout_manager_(panel_layout_manager), 24 panel_layout_manager_(panel_layout_manager),
24 default_touch_extend_(default_touch_extend) { 25 default_touch_extend_(default_touch_extend) {
25 Shell::GetInstance()->AddShellObserver(this); 26 Shell::GetInstance()->AddShellObserver(this);
26 } 27 }
27 28
28 AttachedPanelWindowTargeter::~AttachedPanelWindowTargeter() { 29 AttachedPanelWindowTargeter::~AttachedPanelWindowTargeter() {
29 Shell::GetInstance()->RemoveShellObserver(this); 30 Shell::GetInstance()->RemoveShellObserver(this);
30 } 31 }
31 32
32 void AttachedPanelWindowTargeter::OnShelfCreatedForRootWindow( 33 void AttachedPanelWindowTargeter::OnShelfCreatedForRootWindow(
33 aura::Window* root_window) { 34 WmWindow* root_window) {
34 UpdateTouchExtend(root_window); 35 UpdateTouchExtend(WmWindowAura::GetAuraWindow(root_window));
35 } 36 }
36 37
37 void AttachedPanelWindowTargeter::OnShelfAlignmentChanged( 38 void AttachedPanelWindowTargeter::OnShelfAlignmentChanged(
38 aura::Window* root_window) { 39 WmWindow* root_window) {
39 // Don't update the touch insets if the shelf has not yet been created. 40 // Don't update the touch insets if the shelf has not yet been created.
40 if (!panel_layout_manager_->shelf()) 41 if (!panel_layout_manager_->shelf())
41 return; 42 return;
42 43
43 UpdateTouchExtend(root_window); 44 UpdateTouchExtend(WmWindowAura::GetAuraWindow(root_window));
44 } 45 }
45 46
46 void AttachedPanelWindowTargeter::UpdateTouchExtend(aura::Window* root_window) { 47 void AttachedPanelWindowTargeter::UpdateTouchExtend(aura::Window* root_window) {
47 // Only update the touch insets for panels if they are attached to the shelf 48 // Only update the touch insets for panels if they are attached to the shelf
48 // in |root_window|. 49 // in |root_window|.
49 if (panel_container_->GetRootWindow() != root_window) 50 if (panel_container_->GetRootWindow() != root_window)
50 return; 51 return;
51 52
52 DCHECK(panel_layout_manager_->shelf()); 53 DCHECK(panel_layout_manager_->shelf());
53 gfx::Insets touch(default_touch_extend_); 54 gfx::Insets touch(default_touch_extend_);
54 set_touch_extend( 55 set_touch_extend(
55 WmShelfAura::GetShelf(panel_layout_manager_->shelf()) 56 WmShelfAura::GetShelf(panel_layout_manager_->shelf())
56 ->SelectValueForShelfAlignment( 57 ->SelectValueForShelfAlignment(
57 gfx::Insets(touch.top(), touch.left(), 0, touch.right()), 58 gfx::Insets(touch.top(), touch.left(), 0, touch.right()),
58 gfx::Insets(touch.top(), 0, touch.bottom(), touch.right()), 59 gfx::Insets(touch.top(), 0, touch.bottom(), touch.right()),
59 gfx::Insets(touch.top(), touch.left(), touch.bottom(), 0))); 60 gfx::Insets(touch.top(), touch.left(), touch.bottom(), 0)));
60 } 61 }
61 62
62 } // namespace ash 63 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/panels/attached_panel_window_targeter.h ('k') | ash/wm/screen_dimmer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698