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

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

Issue 1988283002: Implement and test aura::client::CaptureClient in views::NativeWidgetMus for plumbing (Set|Release)… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@native_widget_mus7
Patch Set: Use inheritance for MusCaptureClient Created 4 years, 7 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/native_widget_mus.h ('k') | ui/views/mus/native_widget_mus_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/mus/native_widget_mus.cc
diff --git a/ui/views/mus/native_widget_mus.cc b/ui/views/mus/native_widget_mus.cc
index 46a3ede494ce19c303e9671f82462405f5170f7b..6f289d23746cd6dc2811fbf918480c7e0d079698 100644
--- a/ui/views/mus/native_widget_mus.cc
+++ b/ui/views/mus/native_widget_mus.cc
@@ -438,6 +438,34 @@ class NativeWidgetMus::MusWindowObserver : public mus::WindowObserver {
DISALLOW_COPY_AND_ASSIGN(MusWindowObserver);
};
+class NativeWidgetMus::MusCaptureClient
+ : public aura::client::DefaultCaptureClient {
+ public:
+ MusCaptureClient(aura::Window* root_window, aura::Window* aura_window,
+ mus::Window* mus_window)
+ : aura::client::DefaultCaptureClient(root_window),
+ aura_window_(aura_window), mus_window_(mus_window) {}
+ ~MusCaptureClient() override {}
+
+ // aura::client::DefaultCaptureClient:
+ void SetCapture(aura::Window* window) override {
+ aura::client::DefaultCaptureClient::SetCapture(window);
+ if (aura_window_ == window)
+ mus_window_->SetCapture();
+ }
+ void ReleaseCapture(aura::Window* window) override {
+ aura::client::DefaultCaptureClient::ReleaseCapture(window);
+ if (aura_window_ == window)
+ mus_window_->ReleaseCapture();
+ }
+
+ private:
+ aura::Window* aura_window_;
+ mus::Window* mus_window_;
+
+ DISALLOW_COPY_AND_ASSIGN(MusCaptureClient);
+};
+
////////////////////////////////////////////////////////////////////////////////
// NativeWidgetMus, public:
@@ -645,7 +673,7 @@ void NativeWidgetMus::InitNativeWidget(const Widget::InitParams& params) {
window_tree_host_->window()->SetLayoutManager(
new ContentWindowLayoutManager(window_tree_host_->window(), content_));
capture_client_.reset(
- new aura::client::DefaultCaptureClient(window_tree_host_->window()));
+ new MusCaptureClient(window_tree_host_->window(), content_, window_));
content_->SetType(ui::wm::WINDOW_TYPE_NORMAL);
content_->Init(ui::LAYER_TEXTURED);
« no previous file with comments | « ui/views/mus/native_widget_mus.h ('k') | ui/views/mus/native_widget_mus_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698