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) { |