| OLD | NEW |
| 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/common/shelf/shelf_window_watcher.h" | 5 #include "ash/common/shelf/shelf_window_watcher.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "ash/common/shelf/shelf_constants.h" | 10 #include "ash/common/shelf/shelf_constants.h" |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 item->status = STATUS_ACTIVE; | 31 item->status = STATUS_ACTIVE; |
| 32 else if (window->GetBoolProperty(WmWindowProperty::DRAW_ATTENTION)) | 32 else if (window->GetBoolProperty(WmWindowProperty::DRAW_ATTENTION)) |
| 33 item->status = STATUS_ATTENTION; | 33 item->status = STATUS_ATTENTION; |
| 34 | 34 |
| 35 item->app_id = window->GetStringProperty(WmWindowProperty::APP_ID); | 35 item->app_id = window->GetStringProperty(WmWindowProperty::APP_ID); |
| 36 | 36 |
| 37 // Prefer app icons over window icons, they're typically larger. | 37 // Prefer app icons over window icons, they're typically larger. |
| 38 item->image = window->GetAppIcon(); | 38 item->image = window->GetAppIcon(); |
| 39 if (item->image.isNull()) | 39 if (item->image.isNull()) |
| 40 item->image = window->GetWindowIcon(); | 40 item->image = window->GetWindowIcon(); |
| 41 |
| 42 // Do not show tooltips for visible attached app panel windows. |
| 43 item->shows_tooltip = |
| 44 item->type != TYPE_APP_PANEL || !window->IsVisible() || |
| 45 !window->GetBoolProperty(WmWindowProperty::PANEL_ATTACHED); |
| 41 } | 46 } |
| 42 | 47 |
| 43 } // namespace | 48 } // namespace |
| 44 | 49 |
| 45 ShelfWindowWatcher::ContainerWindowObserver::ContainerWindowObserver( | 50 ShelfWindowWatcher::ContainerWindowObserver::ContainerWindowObserver( |
| 46 ShelfWindowWatcher* window_watcher) | 51 ShelfWindowWatcher* window_watcher) |
| 47 : window_watcher_(window_watcher) {} | 52 : window_watcher_(window_watcher) {} |
| 48 | 53 |
| 49 ShelfWindowWatcher::ContainerWindowObserver::~ContainerWindowObserver() {} | 54 ShelfWindowWatcher::ContainerWindowObserver::~ContainerWindowObserver() {} |
| 50 | 55 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 73 : window_watcher_(window_watcher) {} | 78 : window_watcher_(window_watcher) {} |
| 74 | 79 |
| 75 ShelfWindowWatcher::UserWindowObserver::~UserWindowObserver() {} | 80 ShelfWindowWatcher::UserWindowObserver::~UserWindowObserver() {} |
| 76 | 81 |
| 77 void ShelfWindowWatcher::UserWindowObserver::OnWindowPropertyChanged( | 82 void ShelfWindowWatcher::UserWindowObserver::OnWindowPropertyChanged( |
| 78 WmWindow* window, | 83 WmWindow* window, |
| 79 WmWindowProperty property) { | 84 WmWindowProperty property) { |
| 80 if (property == WmWindowProperty::APP_ICON || | 85 if (property == WmWindowProperty::APP_ICON || |
| 81 property == WmWindowProperty::APP_ID || | 86 property == WmWindowProperty::APP_ID || |
| 82 property == WmWindowProperty::DRAW_ATTENTION || | 87 property == WmWindowProperty::DRAW_ATTENTION || |
| 88 property == WmWindowProperty::PANEL_ATTACHED || |
| 83 property == WmWindowProperty::SHELF_ITEM_TYPE || | 89 property == WmWindowProperty::SHELF_ITEM_TYPE || |
| 84 property == WmWindowProperty::WINDOW_ICON) { | 90 property == WmWindowProperty::WINDOW_ICON) { |
| 85 window_watcher_->OnUserWindowPropertyChanged(window); | 91 window_watcher_->OnUserWindowPropertyChanged(window); |
| 86 } | 92 } |
| 87 } | 93 } |
| 88 | 94 |
| 89 void ShelfWindowWatcher::UserWindowObserver::OnWindowDestroying( | 95 void ShelfWindowWatcher::UserWindowObserver::OnWindowDestroying( |
| 90 WmWindow* window) { | 96 WmWindow* window) { |
| 91 window_watcher_->OnUserWindowDestroying(window); | 97 window_watcher_->OnUserWindowDestroying(window); |
| 92 } | 98 } |
| 93 | 99 |
| 100 void ShelfWindowWatcher::UserWindowObserver::OnWindowVisibilityChanged( |
| 101 WmWindow* window, |
| 102 bool visible) { |
| 103 // The tooltip behavior for panel windows depends on the panel visibility. |
| 104 window_watcher_->OnUserWindowPropertyChanged(window); |
| 105 } |
| 106 |
| 94 //////////////////////////////////////////////////////////////////////////////// | 107 //////////////////////////////////////////////////////////////////////////////// |
| 95 | 108 |
| 96 ShelfWindowWatcher::ShelfWindowWatcher(ShelfModel* model) | 109 ShelfWindowWatcher::ShelfWindowWatcher(ShelfModel* model) |
| 97 : model_(model), | 110 : model_(model), |
| 98 container_window_observer_(this), | 111 container_window_observer_(this), |
| 99 user_window_observer_(this), | 112 user_window_observer_(this), |
| 100 observed_container_windows_(&container_window_observer_), | 113 observed_container_windows_(&container_window_observer_), |
| 101 observed_user_windows_(&user_window_observer_) { | 114 observed_user_windows_(&user_window_observer_) { |
| 102 WmShell::Get()->AddActivationObserver(this); | 115 WmShell::Get()->AddActivationObserver(this); |
| 103 for (WmWindow* root : WmShell::Get()->GetAllRootWindows()) { | 116 for (WmWindow* root : WmShell::Get()->GetAllRootWindows()) { |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 observed_container_windows_.Add(panel_container); | 225 observed_container_windows_.Add(panel_container); |
| 213 } | 226 } |
| 214 | 227 |
| 215 void ShelfWindowWatcher::OnDisplayRemoved(const display::Display& old_display) { | 228 void ShelfWindowWatcher::OnDisplayRemoved(const display::Display& old_display) { |
| 216 } | 229 } |
| 217 | 230 |
| 218 void ShelfWindowWatcher::OnDisplayMetricsChanged(const display::Display&, | 231 void ShelfWindowWatcher::OnDisplayMetricsChanged(const display::Display&, |
| 219 uint32_t) {} | 232 uint32_t) {} |
| 220 | 233 |
| 221 } // namespace ash | 234 } // namespace ash |
| OLD | NEW |