Chromium Code Reviews| 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 "components/mus/ws/connection_manager.h" | 5 #include "components/mus/ws/connection_manager.h" | 
| 6 | 6 | 
| 7 #include "base/logging.h" | 7 #include "base/logging.h" | 
| 8 #include "base/stl_util.h" | 8 #include "base/stl_util.h" | 
| 9 #include "components/mus/ws/client_connection.h" | 9 #include "components/mus/ws/client_connection.h" | 
| 10 #include "components/mus/ws/connection_manager_delegate.h" | 10 #include "components/mus/ws/connection_manager_delegate.h" | 
| (...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 668 (!window->visible() && window->parent()->IsDrawn()))) { | 668 (!window->visible() && window->parent()->IsDrawn()))) { | 
| 669 SchedulePaint(window->parent(), window->bounds()); | 669 SchedulePaint(window->parent(), window->bounds()); | 
| 670 } | 670 } | 
| 671 | 671 | 
| 672 for (auto& pair : connection_map_) { | 672 for (auto& pair : connection_map_) { | 
| 673 pair.second->service()->ProcessWillChangeWindowVisibility( | 673 pair.second->service()->ProcessWillChangeWindowVisibility( | 
| 674 window, IsOperationSource(pair.first)); | 674 window, IsOperationSource(pair.first)); | 
| 675 } | 675 } | 
| 676 } | 676 } | 
| 677 | 677 | 
| 678 void ConnectionManager::OnWindowVisibilityChanged(ServerWindow* window) { | |
| 
 
sky
2016/03/04 17:00:42
What if the window is made modal when it's already
 
mohsen
2016/03/05 01:21:53
Both cases added.
 
 | |
| 679 if (!window->is_modal() || !window->IsDrawn()) | |
| 680 return; | |
| 681 | |
| 682 WindowTreeHostImpl* host = GetWindowTreeHostByWindow(window); | |
| 683 ServerWindow* capture_window = host->GetCaptureWindow(); | |
| 684 if (window->transient_parent() && | |
| 685 !window->transient_parent()->Contains(capture_window)) { | |
| 686 return; | |
| 687 } | |
| 688 | |
| 689 host->SetCapture(nullptr, false); | |
| 690 } | |
| 691 | |
| 678 void ConnectionManager::OnWindowPredefinedCursorChanged(ServerWindow* window, | 692 void ConnectionManager::OnWindowPredefinedCursorChanged(ServerWindow* window, | 
| 679 int32_t cursor_id) { | 693 int32_t cursor_id) { | 
| 680 if (in_destructor_) | 694 if (in_destructor_) | 
| 681 return; | 695 return; | 
| 682 | 696 | 
| 683 ProcessWillChangeWindowPredefinedCursor(window, cursor_id); | 697 ProcessWillChangeWindowPredefinedCursor(window, cursor_id); | 
| 684 } | 698 } | 
| 685 | 699 | 
| 686 void ConnectionManager::OnWindowSharedPropertyChanged( | 700 void ConnectionManager::OnWindowSharedPropertyChanged( | 
| 687 ServerWindow* window, | 701 ServerWindow* window, | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 727 if (!got_valid_frame_decorations_) { | 741 if (!got_valid_frame_decorations_) { | 
| 728 display_manager_observers_.AddInterfacePtr(std::move(observer)); | 742 display_manager_observers_.AddInterfacePtr(std::move(observer)); | 
| 729 return; | 743 return; | 
| 730 } | 744 } | 
| 731 CallOnDisplays(observer.get()); | 745 CallOnDisplays(observer.get()); | 
| 732 display_manager_observers_.AddInterfacePtr(std::move(observer)); | 746 display_manager_observers_.AddInterfacePtr(std::move(observer)); | 
| 733 } | 747 } | 
| 734 | 748 | 
| 735 } // namespace ws | 749 } // namespace ws | 
| 736 } // namespace mus | 750 } // namespace mus | 
| OLD | NEW |