Index: ui/aura/mus/window_tree_client.cc |
diff --git a/ui/aura/mus/window_tree_client.cc b/ui/aura/mus/window_tree_client.cc |
index 1128bcdcb77c600333dfcfbc4861ed7f7d8d1c2c..277535574cdc374843f925efab9645ca93aa4d23 100644 |
--- a/ui/aura/mus/window_tree_client.cc |
+++ b/ui/aura/mus/window_tree_client.cc |
@@ -481,6 +481,13 @@ WindowMus* WindowTreeClient::NewWindowFromWindowData( |
void WindowTreeClient::SetWindowTree(ui::mojom::WindowTreePtr window_tree_ptr) { |
tree_ptr_ = std::move(window_tree_ptr); |
+ |
+ // Enable nested dispatch on both sides of this connect because these objects |
+ // are used in the presence of nested runloops, such as those during drag and |
+ // drop. |
+ binding_.EnableNestedDispatch(true); |
+ tree_ptr_.EnableNestedDispatch(true); |
+ |
WindowTreeConnectionEstablished(tree_ptr_.get()); |
tree_ptr_->GetCursorLocationMemory( |
base::Bind(&WindowTreeClient::OnReceivedCursorLocationMemory, |
@@ -1393,6 +1400,8 @@ void WindowTreeClient::WmSetBounds(uint32_t change_id, |
result = bounds_in_dip == transit_bounds_in_dip; |
window->SetBoundsFromServer(bounds_in_dip); |
} |
+ } else { |
+ DVLOG(1) << "Bad window passed to WmSetBounds()."; |
sky
2017/03/17 00:02:21
Bad -> Unknown (just because it's possible the cli
Elliot Glaysher
2017/03/17 17:43:12
Done.
|
} |
if (window_manager_internal_client_) |
window_manager_internal_client_->WmResponse(change_id, result); |