Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(917)

Side by Side Diff: services/ui/ws/window_server.h

Issue 2060513002: Tab dragging as implemented as a mus API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: dcheng nits Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « services/ui/ws/window_manager_client_unittest.cc ('k') | services/ui/ws/window_server.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef SERVICES_UI_WS_WINDOW_SERVER_H_ 5 #ifndef SERVICES_UI_WS_WINDOW_SERVER_H_
6 #define SERVICES_UI_WS_WINDOW_SERVER_H_ 6 #define SERVICES_UI_WS_WINDOW_SERVER_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 // Sends an |event| to all WindowTrees belonging to |user_id| that might be 189 // Sends an |event| to all WindowTrees belonging to |user_id| that might be
190 // observing events. Skips |ignore_tree| if it is non-null. 190 // observing events. Skips |ignore_tree| if it is non-null.
191 void SendToEventObservers(const ui::Event& event, 191 void SendToEventObservers(const ui::Event& event,
192 const UserId& user_id, 192 const UserId& user_id,
193 WindowTree* ignore_tree); 193 WindowTree* ignore_tree);
194 194
195 // Sets a callback to be called whenever a ServerWindow is scheduled for 195 // Sets a callback to be called whenever a ServerWindow is scheduled for
196 // a [re]paint. This should only be called in a test configuration. 196 // a [re]paint. This should only be called in a test configuration.
197 void SetPaintCallback(const base::Callback<void(ServerWindow*)>& callback); 197 void SetPaintCallback(const base::Callback<void(ServerWindow*)>& callback);
198 198
199 void StartMoveLoop(uint32_t change_id,
200 ServerWindow* window,
201 WindowTree* initiator,
202 const gfx::Rect& revert_bounds);
203 void EndMoveLoop();
204 uint32_t GetCurrentMoveLoopChangeId();
205 ServerWindow* GetCurrentMoveLoopWindow();
206 WindowTree* GetCurrentMoveLoopInitiator();
207 gfx::Rect GetCurrentMoveLoopRevertBounds();
208 bool in_move_loop() const { return !!current_move_loop_; }
209
199 private: 210 private:
211 struct CurrentMoveLoopState;
200 friend class Operation; 212 friend class Operation;
201 213
202 using WindowTreeMap = 214 using WindowTreeMap =
203 std::map<ClientSpecificId, std::unique_ptr<WindowTree>>; 215 std::map<ClientSpecificId, std::unique_ptr<WindowTree>>;
204 using UserActivityMonitorMap = 216 using UserActivityMonitorMap =
205 std::map<UserId, std::unique_ptr<UserActivityMonitor>>; 217 std::map<UserId, std::unique_ptr<UserActivityMonitor>>;
206 218
207 struct InFlightWindowManagerChange { 219 struct InFlightWindowManagerChange {
208 // Identifies the client that initiated the change. 220 // Identifies the client that initiated the change.
209 ClientSpecificId client_id; 221 ClientSpecificId client_id;
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 WindowServerDelegate* delegate_; 316 WindowServerDelegate* delegate_;
305 317
306 // State for rendering into a Surface. 318 // State for rendering into a Surface.
307 scoped_refptr<ui::SurfacesState> surfaces_state_; 319 scoped_refptr<ui::SurfacesState> surfaces_state_;
308 320
309 // ID to use for next WindowTree. 321 // ID to use for next WindowTree.
310 ClientSpecificId next_client_id_; 322 ClientSpecificId next_client_id_;
311 323
312 std::unique_ptr<DisplayManager> display_manager_; 324 std::unique_ptr<DisplayManager> display_manager_;
313 325
326 std::unique_ptr<CurrentMoveLoopState> current_move_loop_;
327
314 // Set of WindowTrees. 328 // Set of WindowTrees.
315 WindowTreeMap tree_map_; 329 WindowTreeMap tree_map_;
316 330
317 // If non-null then we're processing a client operation. The Operation is 331 // If non-null then we're processing a client operation. The Operation is
318 // not owned by us (it's created on the stack by WindowTree). 332 // not owned by us (it's created on the stack by WindowTree).
319 Operation* current_operation_; 333 Operation* current_operation_;
320 334
321 bool in_destructor_; 335 bool in_destructor_;
322 336
323 // Maps from window manager change id to the client that initiated the 337 // Maps from window manager change id to the client that initiated the
324 // request. 338 // request.
325 InFlightWindowManagerChangeMap in_flight_wm_change_map_; 339 InFlightWindowManagerChangeMap in_flight_wm_change_map_;
326 340
327 // Next id supplied to the window manager. 341 // Next id supplied to the window manager.
328 uint32_t next_wm_change_id_; 342 uint32_t next_wm_change_id_;
329 343
330 base::Callback<void(ServerWindow*)> window_paint_callback_; 344 base::Callback<void(ServerWindow*)> window_paint_callback_;
331 345
332 UserActivityMonitorMap activity_monitor_map_; 346 UserActivityMonitorMap activity_monitor_map_;
333 347
334 WindowManagerWindowTreeFactorySet window_manager_window_tree_factory_set_; 348 WindowManagerWindowTreeFactorySet window_manager_window_tree_factory_set_;
335 349
336 DISALLOW_COPY_AND_ASSIGN(WindowServer); 350 DISALLOW_COPY_AND_ASSIGN(WindowServer);
337 }; 351 };
338 352
339 } // namespace ws 353 } // namespace ws
340 } // namespace ui 354 } // namespace ui
341 355
342 #endif // SERVICES_UI_WS_WINDOW_SERVER_H_ 356 #endif // SERVICES_UI_WS_WINDOW_SERVER_H_
OLDNEW
« no previous file with comments | « services/ui/ws/window_manager_client_unittest.cc ('k') | services/ui/ws/window_server.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698