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

Unified Diff: ui/views/mus/pointer_watcher_event_router.cc

Issue 2626013005: Change CaptureSynchronizer and PointerWatcherEventRouter to support multiple CaptureClients. (Closed)
Patch Set: fix leak in test 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/views/mus/pointer_watcher_event_router.h ('k') | ui/views/widget/desktop_aura/desktop_capture_client.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/mus/pointer_watcher_event_router.cc
diff --git a/ui/views/mus/pointer_watcher_event_router.cc b/ui/views/mus/pointer_watcher_event_router.cc
index 26b4c06683ee813d1c77ba5a7c0c9ffe4c064b3a..3daf94c0c3ac9f78b1fb5efd3c4f803bf31d8b7c 100644
--- a/ui/views/mus/pointer_watcher_event_router.cc
+++ b/ui/views/mus/pointer_watcher_event_router.cc
@@ -27,14 +27,11 @@ PointerWatcherEventRouter::PointerWatcherEventRouter(
aura::WindowTreeClient* window_tree_client)
: window_tree_client_(window_tree_client) {
window_tree_client->AddObserver(this);
- window_tree_client_->GetCaptureClient()->AddObserver(this);
}
PointerWatcherEventRouter::~PointerWatcherEventRouter() {
- if (window_tree_client_) {
+ if (window_tree_client_)
window_tree_client_->RemoveObserver(this);
- window_tree_client_->GetCaptureClient()->RemoveObserver(this);
- }
}
void PointerWatcherEventRouter::AddPointerWatcher(PointerWatcher* watcher,
@@ -132,6 +129,16 @@ void PointerWatcherEventRouter::OnPointerEventObserved(
}
}
+void PointerWatcherEventRouter::AttachToCaptureClient(
+ aura::client::CaptureClient* capture_client) {
+ capture_client->AddObserver(this);
+}
+
+void PointerWatcherEventRouter::DetachFromCaptureClient(
+ aura::client::CaptureClient* capture_client) {
+ capture_client->RemoveObserver(this);
+}
+
PointerWatcherEventRouter::EventTypes
PointerWatcherEventRouter::DetermineEventTypes() {
if (HasPointerWatcher(&move_watchers_))
@@ -161,7 +168,6 @@ void PointerWatcherEventRouter::OnDidDestroyClient(
// We expect that all observers have been removed by this time.
DCHECK_EQ(event_types_, EventTypes::NONE);
DCHECK_EQ(client, window_tree_client_);
- window_tree_client_->GetCaptureClient()->RemoveObserver(this);
window_tree_client_->RemoveObserver(this);
window_tree_client_ = nullptr;
}
« no previous file with comments | « ui/views/mus/pointer_watcher_event_router.h ('k') | ui/views/widget/desktop_aura/desktop_capture_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698