| 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 "ui/aura/mus/window_tree_client.h" | 5 #include "ui/aura/mus/window_tree_client.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 476 drag_drop_controller_ = base::MakeUnique<DragDropControllerMus>(this, tree_); | 476 drag_drop_controller_ = base::MakeUnique<DragDropControllerMus>(this, tree_); |
| 477 capture_synchronizer_ = base::MakeUnique<CaptureSynchronizer>(this, tree_); | 477 capture_synchronizer_ = base::MakeUnique<CaptureSynchronizer>(this, tree_); |
| 478 focus_synchronizer_ = base::MakeUnique<FocusSynchronizer>(this, tree_); | 478 focus_synchronizer_ = base::MakeUnique<FocusSynchronizer>(this, tree_); |
| 479 } | 479 } |
| 480 | 480 |
| 481 void WindowTreeClient::OnConnectionLost() { | 481 void WindowTreeClient::OnConnectionLost() { |
| 482 delegate_->OnLostConnection(this); | 482 delegate_->OnLostConnection(this); |
| 483 } | 483 } |
| 484 | 484 |
| 485 bool WindowTreeClient::HandleInternalPropertyChanged(WindowMus* window, | 485 bool WindowTreeClient::HandleInternalPropertyChanged(WindowMus* window, |
| 486 const void* key) { | 486 const void* key, |
| 487 int64_t old_value) { |
| 487 if (key != client::kModalKey) | 488 if (key != client::kModalKey) |
| 488 return false; | 489 return false; |
| 489 | 490 |
| 490 if (window->GetWindow()->GetProperty(client::kModalKey) == | |
| 491 ui::MODAL_TYPE_NONE) { | |
| 492 // TODO: shouldn't early return, but explicitly tell server to turn off | |
| 493 // modality. http://crbug.com/660073. | |
| 494 return true; | |
| 495 } | |
| 496 | |
| 497 const uint32_t change_id = | 491 const uint32_t change_id = |
| 498 ScheduleInFlightChange(base::MakeUnique<InFlightSetModalChange>(window)); | 492 ScheduleInFlightChange(base::MakeUnique<InFlightSetModalTypeChange>( |
| 499 // TODO: this is subtly different that explicitly specifying a type. | 493 window, static_cast<ui::ModalType>(old_value))); |
| 500 // http://crbug.com/660073. | 494 tree_->SetModalType(change_id, window->server_id(), |
| 501 tree_->SetModal(change_id, window->server_id()); | 495 window->GetWindow()->GetProperty(client::kModalKey)); |
| 502 return true; | 496 return true; |
| 503 } | 497 } |
| 504 | 498 |
| 505 void WindowTreeClient::OnEmbedImpl(ui::mojom::WindowTree* window_tree, | 499 void WindowTreeClient::OnEmbedImpl(ui::mojom::WindowTree* window_tree, |
| 506 ClientSpecificId client_id, | 500 ClientSpecificId client_id, |
| 507 ui::mojom::WindowDataPtr root_data, | 501 ui::mojom::WindowDataPtr root_data, |
| 508 int64_t display_id, | 502 int64_t display_id, |
| 509 Id focused_window_id, | 503 Id focused_window_id, |
| 510 bool drawn) { | 504 bool drawn) { |
| 511 // WARNING: this is only called if WindowTreeClient was created as the | 505 // WARNING: this is only called if WindowTreeClient was created as the |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 730 window->GetWindow(), key, &data->transport_name, | 724 window->GetWindow(), key, &data->transport_name, |
| 731 &data->transport_value)) { | 725 &data->transport_value)) { |
| 732 return nullptr; | 726 return nullptr; |
| 733 } | 727 } |
| 734 return std::move(data); | 728 return std::move(data); |
| 735 } | 729 } |
| 736 | 730 |
| 737 void WindowTreeClient::OnWindowMusPropertyChanged( | 731 void WindowTreeClient::OnWindowMusPropertyChanged( |
| 738 WindowMus* window, | 732 WindowMus* window, |
| 739 const void* key, | 733 const void* key, |
| 734 int64_t old_value, |
| 740 std::unique_ptr<ui::PropertyData> data) { | 735 std::unique_ptr<ui::PropertyData> data) { |
| 741 if (HandleInternalPropertyChanged(window, key) || !data) | 736 if (HandleInternalPropertyChanged(window, key, old_value) || !data) |
| 742 return; | 737 return; |
| 743 | 738 |
| 744 WindowPortPropertyDataMus* data_mus = | 739 WindowPortPropertyDataMus* data_mus = |
| 745 static_cast<WindowPortPropertyDataMus*>(data.get()); | 740 static_cast<WindowPortPropertyDataMus*>(data.get()); |
| 746 | 741 |
| 747 std::string transport_name; | 742 std::string transport_name; |
| 748 std::unique_ptr<std::vector<uint8_t>> transport_value; | 743 std::unique_ptr<std::vector<uint8_t>> transport_value; |
| 749 if (!delegate_->GetPropertyConverter()->ConvertPropertyForTransport( | 744 if (!delegate_->GetPropertyConverter()->ConvertPropertyForTransport( |
| 750 window->GetWindow(), key, &transport_name, &transport_value)) { | 745 window->GetWindow(), key, &transport_name, &transport_value)) { |
| 751 return; | 746 return; |
| (...skipping 1072 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1824 return ScheduleInFlightChange(base::MakeUnique<InFlightCaptureChange>( | 1819 return ScheduleInFlightChange(base::MakeUnique<InFlightCaptureChange>( |
| 1825 this, capture_synchronizer_.get(), window)); | 1820 this, capture_synchronizer_.get(), window)); |
| 1826 } | 1821 } |
| 1827 | 1822 |
| 1828 uint32_t WindowTreeClient::CreateChangeIdForFocus(WindowMus* window) { | 1823 uint32_t WindowTreeClient::CreateChangeIdForFocus(WindowMus* window) { |
| 1829 return ScheduleInFlightChange(base::MakeUnique<InFlightFocusChange>( | 1824 return ScheduleInFlightChange(base::MakeUnique<InFlightFocusChange>( |
| 1830 this, focus_synchronizer_.get(), window)); | 1825 this, focus_synchronizer_.get(), window)); |
| 1831 } | 1826 } |
| 1832 | 1827 |
| 1833 } // namespace aura | 1828 } // namespace aura |
| OLD | NEW |