| Index: services/ui/ws/window_server.cc
|
| diff --git a/services/ui/ws/window_server.cc b/services/ui/ws/window_server.cc
|
| index 8fb88337b2db27e8a605262d6a56006edf296c27..15108818cb839b6e1daa8717e7dae6adbd21a6e0 100644
|
| --- a/services/ui/ws/window_server.cc
|
| +++ b/services/ui/ws/window_server.cc
|
| @@ -30,6 +30,13 @@
|
| namespace ui {
|
| namespace ws {
|
|
|
| +struct WindowServer::CurrentMoveLoopState {
|
| + uint32_t change_id;
|
| + ServerWindow* window;
|
| + WindowTree* initiator;
|
| + gfx::Rect revert_bounds;
|
| +};
|
| +
|
| WindowServer::WindowServer(
|
| WindowServerDelegate* delegate,
|
| const scoped_refptr<ui::SurfacesState>& surfaces_state)
|
| @@ -415,6 +422,42 @@ void WindowServer::SetPaintCallback(
|
| window_paint_callback_ = callback;
|
| }
|
|
|
| +void WindowServer::StartMoveLoop(uint32_t change_id,
|
| + ServerWindow* window,
|
| + WindowTree* initiator,
|
| + const gfx::Rect& revert_bounds) {
|
| + current_move_loop_.reset(
|
| + new CurrentMoveLoopState{change_id, window, initiator, revert_bounds});
|
| +}
|
| +
|
| +void WindowServer::EndMoveLoop() {
|
| + current_move_loop_.reset();
|
| +}
|
| +
|
| +uint32_t WindowServer::GetCurrentMoveLoopChangeId() {
|
| + if (current_move_loop_)
|
| + return current_move_loop_->change_id;
|
| + return 0;
|
| +}
|
| +
|
| +ServerWindow* WindowServer::GetCurrentMoveLoopWindow() {
|
| + if (current_move_loop_)
|
| + return current_move_loop_->window;
|
| + return nullptr;
|
| +}
|
| +
|
| +WindowTree* WindowServer::GetCurrentMoveLoopInitiator() {
|
| + if (current_move_loop_)
|
| + return current_move_loop_->initiator;
|
| + return nullptr;
|
| +}
|
| +
|
| +gfx::Rect WindowServer::GetCurrentMoveLoopRevertBounds() {
|
| + if (current_move_loop_)
|
| + return current_move_loop_->revert_bounds;
|
| + return gfx::Rect();
|
| +}
|
| +
|
| bool WindowServer::GetAndClearInFlightWindowManagerChange(
|
| uint32_t window_manager_change_id,
|
| InFlightWindowManagerChange* change) {
|
|
|