OLD | NEW |
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/wm/panel_layout_manager.h" | 5 #include "ash/wm/panel_layout_manager.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <map> | 8 #include <map> |
9 | 9 |
10 #include "ash/launcher/launcher.h" | 10 #include "ash/launcher/launcher.h" |
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
243 //////////////////////////////////////////////////////////////////////////////// | 243 //////////////////////////////////////////////////////////////////////////////// |
244 // PanelLayoutManager private implementation: | 244 // PanelLayoutManager private implementation: |
245 void PanelLayoutManager::Relayout() { | 245 void PanelLayoutManager::Relayout() { |
246 if (!launcher_ || !launcher_->widget()) | 246 if (!launcher_ || !launcher_->widget()) |
247 return; | 247 return; |
248 | 248 |
249 if (in_layout_) | 249 if (in_layout_) |
250 return; | 250 return; |
251 AutoReset<bool> auto_reset_in_layout(&in_layout_, true); | 251 AutoReset<bool> auto_reset_in_layout(&in_layout_, true); |
252 | 252 |
253 int launcher_top = launcher_->widget()->GetWindowScreenBounds().y(); | 253 int launcher_top = launcher_->widget()->GetWindowBoundsInScreen().y(); |
254 aura::Window* active_panel = NULL; | 254 aura::Window* active_panel = NULL; |
255 for (PanelList::iterator iter = panel_windows_.begin(); | 255 for (PanelList::iterator iter = panel_windows_.begin(); |
256 iter != panel_windows_.end(); ++iter) { | 256 iter != panel_windows_.end(); ++iter) { |
257 aura::Window* panel = *iter; | 257 aura::Window* panel = *iter; |
258 if (!panel->IsVisible() || panel == dragged_panel_) | 258 if (!panel->IsVisible() || panel == dragged_panel_) |
259 continue; | 259 continue; |
260 | 260 |
261 gfx::Rect icon_bounds = | 261 gfx::Rect icon_bounds = |
262 launcher_->GetScreenBoundsOfItemIconForWindow(panel); | 262 launcher_->GetScreenBoundsOfItemIconForWindow(panel); |
263 | 263 |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
346 } | 346 } |
347 MessageLoop::current()->PostTask( | 347 MessageLoop::current()->PostTask( |
348 FROM_HERE, | 348 FROM_HERE, |
349 base::Bind(&PanelLayoutManager::ShowCalloutHelper, | 349 base::Bind(&PanelLayoutManager::ShowCalloutHelper, |
350 weak_factory_.GetWeakPtr(), | 350 weak_factory_.GetWeakPtr(), |
351 active_panel)); | 351 active_panel)); |
352 } | 352 } |
353 | 353 |
354 void PanelLayoutManager::ShowCalloutHelper(aura::Window* active_panel) { | 354 void PanelLayoutManager::ShowCalloutHelper(aura::Window* active_panel) { |
355 DCHECK(active_panel); | 355 DCHECK(active_panel); |
356 gfx::Rect bounds = active_panel->GetRootWindowBounds(); | 356 gfx::Rect bounds = active_panel->GetBoundsInRootWindow(); |
357 gfx::Rect callout_bounds = callout_widget_->GetWindowScreenBounds(); | 357 gfx::Rect callout_bounds = callout_widget_->GetWindowBoundsInScreen(); |
358 callout_bounds.set_x( | 358 callout_bounds.set_x( |
359 bounds.x() + (bounds.width() - callout_bounds.width()) / 2); | 359 bounds.x() + (bounds.width() - callout_bounds.width()) / 2); |
360 callout_bounds.set_y(bounds.bottom()); | 360 callout_bounds.set_y(bounds.bottom()); |
361 SetChildBoundsDirect(callout_widget_->GetNativeWindow(), callout_bounds); | 361 SetChildBoundsDirect(callout_widget_->GetNativeWindow(), callout_bounds); |
362 panel_container_->StackChildAtTop(callout_widget_->GetNativeWindow()); | 362 panel_container_->StackChildAtTop(callout_widget_->GetNativeWindow()); |
363 callout_widget_->Show(); | 363 callout_widget_->Show(); |
364 } | 364 } |
365 | 365 |
366 } // namespace internal | 366 } // namespace internal |
367 } // namespace ash | 367 } // namespace ash |
OLD | NEW |