Chromium Code Reviews| Index: components/mus/ws/window_server.cc |
| diff --git a/components/mus/ws/window_server.cc b/components/mus/ws/window_server.cc |
| index 77ef0e2595cf0366fadea9606cd8399f148a1b54..eada6193bbbe9de8644251c1cfd2fe4957ad684c 100644 |
| --- a/components/mus/ws/window_server.cc |
| +++ b/components/mus/ws/window_server.cc |
| @@ -30,6 +30,13 @@ |
| namespace mus { |
| namespace ws { |
| +struct WindowServer::CurrentMoveLoopState { |
| + uint32_t change_id; |
| + ServerWindow* window; |
| + WindowTree* initiator; |
| + gfx::Rect revert_bounds; |
| +}; |
| + |
| WindowServer::WindowServer( |
| WindowServerDelegate* delegate, |
| const scoped_refptr<mus::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_) |
|
dcheng
2016/07/06 09:27:53
I'm not 100% sure about this, but it feels like th
|
| + 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) { |