| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "components/mus/ws/display.h" | 5 #include "components/mus/ws/display.h" |
| 6 | 6 |
| 7 #include "base/debug/debugger.h" | 7 #include "base/debug/debugger.h" |
| 8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
| 9 #include "components/mus/common/types.h" | 9 #include "components/mus/common/types.h" |
| 10 #include "components/mus/ws/connection_manager.h" | 10 #include "components/mus/ws/connection_manager.h" |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 ? nullptr | 206 ? nullptr |
| 207 : window_manager_state_map_.begin()->second.get(); | 207 : window_manager_state_map_.begin()->second.get(); |
| 208 } | 208 } |
| 209 | 209 |
| 210 const WindowManagerState* Display::GetWindowManagerStateForUser( | 210 const WindowManagerState* Display::GetWindowManagerStateForUser( |
| 211 const UserId& user_id) const { | 211 const UserId& user_id) const { |
| 212 auto iter = window_manager_state_map_.find(user_id); | 212 auto iter = window_manager_state_map_.find(user_id); |
| 213 return iter == window_manager_state_map_.end() ? nullptr : iter->second.get(); | 213 return iter == window_manager_state_map_.end() ? nullptr : iter->second.get(); |
| 214 } | 214 } |
| 215 | 215 |
| 216 void Display::SetCapture(ServerWindow* window, bool in_nonclient_area) { | 216 bool Display::SetCapture(ServerWindow* window, bool in_nonclient_area) { |
| 217 ServerWindow* capture_window = event_dispatcher_.capture_window(); | 217 ServerWindow* capture_window = event_dispatcher_.capture_window(); |
| 218 if (capture_window == window) | 218 if (capture_window == window) |
| 219 return true; |
| 220 return event_dispatcher_.SetCaptureWindow(window, in_nonclient_area); |
| 221 } |
| 222 |
| 223 void Display::ReleaseCaptureForModalWindow(ServerWindow* window) { |
| 224 if (!window->is_modal() || !window->IsDrawn()) |
| 219 return; | 225 return; |
| 220 event_dispatcher_.SetCaptureWindow(window, in_nonclient_area); | 226 |
| 227 ServerWindow* capture_window = GetCaptureWindow(); |
| 228 if (window->transient_parent() && |
| 229 !window->transient_parent()->Contains(capture_window)) { |
| 230 return; |
| 231 } |
| 232 |
| 233 SetCapture(nullptr, false); |
| 221 } | 234 } |
| 222 | 235 |
| 223 mojom::Rotation Display::GetRotation() const { | 236 mojom::Rotation Display::GetRotation() const { |
| 224 return platform_display_->GetRotation(); | 237 return platform_display_->GetRotation(); |
| 225 } | 238 } |
| 226 | 239 |
| 227 void Display::SetFocusedWindow(ServerWindow* new_focused_window) { | 240 void Display::SetFocusedWindow(ServerWindow* new_focused_window) { |
| 228 ServerWindow* old_focused_window = focus_controller_->GetFocusedWindow(); | 241 ServerWindow* old_focused_window = focus_controller_->GetFocusedWindow(); |
| 229 if (old_focused_window == new_focused_window) | 242 if (old_focused_window == new_focused_window) |
| 230 return; | 243 return; |
| (...skipping 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 661 DCHECK_EQ(0u, window_manager_state_map_.count(id)); | 674 DCHECK_EQ(0u, window_manager_state_map_.count(id)); |
| 662 } | 675 } |
| 663 | 676 |
| 664 void Display::OnWindowManagerFactorySet(WindowManagerFactoryService* service) { | 677 void Display::OnWindowManagerFactorySet(WindowManagerFactoryService* service) { |
| 665 if (!binding_) | 678 if (!binding_) |
| 666 CreateWindowManagerStateFromService(service); | 679 CreateWindowManagerStateFromService(service); |
| 667 } | 680 } |
| 668 | 681 |
| 669 } // namespace ws | 682 } // namespace ws |
| 670 } // namespace mus | 683 } // namespace mus |
| OLD | NEW |