Index: services/ui/ws/window_tree.cc |
diff --git a/services/ui/ws/window_tree.cc b/services/ui/ws/window_tree.cc |
index 9d030735e490e6a374e44fa33e33b30871929a61..60c2b5228b1f916fc96d2633fd036a4fca4943ba 100644 |
--- a/services/ui/ws/window_tree.cc |
+++ b/services/ui/ws/window_tree.cc |
@@ -21,6 +21,7 @@ |
#include "services/ui/ws/platform_display.h" |
#include "services/ui/ws/server_window.h" |
#include "services/ui/ws/server_window_observer.h" |
+#include "services/ui/ws/server_window_surface_manager.h" |
#include "services/ui/ws/user_display_manager.h" |
#include "services/ui/ws/window_manager_display_root.h" |
#include "services/ui/ws/window_manager_state.h" |
@@ -526,6 +527,20 @@ void WindowTree::ProcessWindowBoundsChanged(const ServerWindow* window, |
client()->OnWindowBoundsChanged(client_window_id.id, old_bounds, new_bounds); |
} |
+void WindowTree::ProcessWindowSurfaceCreated( |
+ const ServerWindow* window, |
+ const gfx::Size& size, |
+ float device_scale_factor, |
+ const cc::SurfaceId& surface_id, |
+ const cc::SurfaceSequence& surface_sequence) { |
+ ClientWindowId client_window_id; |
+ if (!IsWindowKnown(window, &client_window_id)) |
+ return; |
+ client()->OnWindowSurfaceCreated(client_window_id.id, size, |
+ device_scale_factor, surface_id, |
+ surface_sequence); |
+} |
+ |
void WindowTree::ProcessClientAreaChanged( |
const ServerWindow* window, |
const gfx::Insets& new_client_area, |
@@ -1334,11 +1349,22 @@ void WindowTree::AttachSurface(Id transport_window_id, |
window && access_policy_->CanSetWindowSurface(window, type); |
if (!success) { |
DVLOG(1) << "request to AttachSurface failed"; |
+ fprintf(stderr, ">>>FAILED TO ATTACH %p\n", window); |
return; |
} |
window->CreateSurface(type, std::move(surface), std::move(client)); |
} |
+void WindowTree::SatisfySurfaceSequence(Id transport_window_id, |
+ const cc::SurfaceSequence& sequence) { |
+ |
+ ServerWindow* window = |
+ GetWindowByClientId(ClientWindowId(transport_window_id)); |
+ if (!window) |
+ return; |
+ window->GetOrCreateSurfaceManager()->SatisfySurfaceSequence(sequence); |
+} |
+ |
void WindowTree::SetWindowTextInputState(Id transport_window_id, |
mojo::TextInputStatePtr state) { |
ServerWindow* window = |