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

Side by Side Diff: ui/aura/mus/capture_synchronizer.h

Issue 2626013005: Change CaptureSynchronizer and PointerWatcherEventRouter to support multiple CaptureClients. (Closed)
Patch Set: another approach to attach capture client Created 3 years, 11 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 UI_AURA_MUS_CAPTURE_SYNCHRONIZER_H_ 5 #ifndef UI_AURA_MUS_CAPTURE_SYNCHRONIZER_H_
6 #define UI_AURA_MUS_CAPTURE_SYNCHRONIZER_H_ 6 #define UI_AURA_MUS_CAPTURE_SYNCHRONIZER_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include "base/macros.h" 10 #include "base/macros.h"
(...skipping 14 matching lines...) Expand all
25 namespace client { 25 namespace client {
26 class CaptureClient; 26 class CaptureClient;
27 } 27 }
28 28
29 // CaptureSynchronizer is resonsible for keeping capture in sync between aura 29 // CaptureSynchronizer is resonsible for keeping capture in sync between aura
30 // and the mus server. 30 // and the mus server.
31 class CaptureSynchronizer : public WindowObserver, 31 class CaptureSynchronizer : public WindowObserver,
32 public client::CaptureClientObserver { 32 public client::CaptureClientObserver {
33 public: 33 public:
34 CaptureSynchronizer(CaptureSynchronizerDelegate* delegate, 34 CaptureSynchronizer(CaptureSynchronizerDelegate* delegate,
35 ui::mojom::WindowTree* window_tree, 35 ui::mojom::WindowTree* window_tree);
36 client::CaptureClient* capture_client);
37 ~CaptureSynchronizer() override; 36 ~CaptureSynchronizer() override;
38 37
39 WindowMus* capture_window() { return capture_window_; } 38 WindowMus* capture_window() { return capture_window_; }
40 39
41 // Called when the server side wants to change capture to |window|. 40 // Called when the server side wants to change capture to |window|.
42 void SetCaptureFromServer(WindowMus* window); 41 void SetCaptureFromServer(WindowMus* window);
43 42
43 void Attach(client::CaptureClient* capture_client);
sadrul 2017/01/21 03:23:37 Document.
riajiang 2017/01/24 19:36:22 Moved this functionality into WindowTreeClient.
44
44 private: 45 private:
45 // Internal implementation for capture changes. Adds/removes observer as 46 // Internal implementation for capture changes. Adds/removes observer as
46 // necessary and sets |capture_window_| to |window|. 47 // necessary and sets |capture_window_| to |window|.
47 void SetCaptureWindow(WindowMus* window); 48 void SetCaptureWindow(WindowMus* window);
48 49
49 // WindowObserver: 50 // WindowObserver:
50 void OnWindowDestroying(Window* window) override; 51 void OnWindowDestroying(Window* window) override;
51 52
52 // client::CaptureClientObserver: 53 // client::CaptureClientObserver:
53 void OnCaptureChanged(Window* lost_capture, Window* gained_capture) override; 54 void OnCaptureChanged(Window* lost_capture, Window* gained_capture) override;
54 55
55 CaptureSynchronizerDelegate* delegate_; 56 CaptureSynchronizerDelegate* delegate_;
56 ui::mojom::WindowTree* window_tree_; 57 ui::mojom::WindowTree* window_tree_;
57 client::CaptureClient* capture_client_;
58 58
59 // Window that currently has capture. 59 // Window that currently has capture.
60 WindowMus* capture_window_ = nullptr; 60 WindowMus* capture_window_ = nullptr;
61 61
62 // Used when setting capture from the server to avoid setting capture back 62 // Used when setting capture from the server to avoid setting capture back
63 // on the server. If |setting_capture_| is true SetCaptureFromServer() was 63 // on the server. If |setting_capture_| is true SetCaptureFromServer() was
64 // called and |window_setting_capture_to_| is the window capture is being 64 // called and |window_setting_capture_to_| is the window capture is being
65 // set on. 65 // set on.
66 bool setting_capture_ = false; 66 bool setting_capture_ = false;
67 WindowMus* window_setting_capture_to_ = nullptr; 67 WindowMus* window_setting_capture_to_ = nullptr;
68 68
69 DISALLOW_COPY_AND_ASSIGN(CaptureSynchronizer); 69 DISALLOW_COPY_AND_ASSIGN(CaptureSynchronizer);
70 }; 70 };
71 71
72 } // namespace aura 72 } // namespace aura
73 73
74 #endif // UI_AURA_MUS_CAPTURE_SYNCHRONIZER_H_ 74 #endif // UI_AURA_MUS_CAPTURE_SYNCHRONIZER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698