Specifies background after Widget::Init for frameless app_list.
[chromium-blink-merge.git] / ui / aura / client / default_capture_client.cc
blob69632d8a5be1580cd62a98ccedc17e3cf17aa767
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ui/aura/client/default_capture_client.h"
7 #include "ui/aura/window.h"
8 #include "ui/aura/window_event_dispatcher.h"
9 #include "ui/aura/window_tree_host.h"
11 namespace aura {
12 namespace client {
14 DefaultCaptureClient::DefaultCaptureClient(Window* root_window)
15 : root_window_(root_window),
16 capture_window_(NULL) {
17 SetCaptureClient(root_window_, this);
20 DefaultCaptureClient::~DefaultCaptureClient() {
21 SetCaptureClient(root_window_, NULL);
24 void DefaultCaptureClient::SetCapture(Window* window) {
25 if (capture_window_ == window)
26 return;
27 if (window) {
28 ui::GestureRecognizer::Get()->TransferEventsTo(
29 capture_window_, window);
32 Window* old_capture_window = capture_window_;
33 capture_window_ = window;
35 CaptureDelegate* capture_delegate = root_window_->GetHost()->dispatcher();
36 if (capture_window_)
37 capture_delegate->SetNativeCapture();
38 else
39 capture_delegate->ReleaseNativeCapture();
41 capture_delegate->UpdateCapture(old_capture_window, capture_window_);
44 void DefaultCaptureClient::ReleaseCapture(Window* window) {
45 if (capture_window_ != window)
46 return;
47 SetCapture(NULL);
50 Window* DefaultCaptureClient::GetCaptureWindow() {
51 return capture_window_;
54 Window* DefaultCaptureClient::GetGlobalCaptureWindow() {
55 return capture_window_;
58 } // namespace client
59 } // namespace aura