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/root_window.h"
8 #include "ui/aura/window.h"
13 DefaultCaptureClient::DefaultCaptureClient(Window
* root_window
)
14 : root_window_(root_window
),
15 capture_window_(NULL
) {
16 SetCaptureClient(root_window_
, this);
19 DefaultCaptureClient::~DefaultCaptureClient() {
20 SetCaptureClient(root_window_
, NULL
);
23 void DefaultCaptureClient::SetCapture(Window
* window
) {
24 if (capture_window_
== window
)
27 ui::GestureRecognizer::Get()->TransferEventsTo(
28 capture_window_
, window
);
31 Window
* old_capture_window
= capture_window_
;
32 capture_window_
= window
;
34 CaptureDelegate
* capture_delegate
= root_window_
->GetDispatcher();
36 capture_delegate
->SetNativeCapture();
38 capture_delegate
->ReleaseNativeCapture();
40 capture_delegate
->UpdateCapture(old_capture_window
, capture_window_
);
43 void DefaultCaptureClient::ReleaseCapture(Window
* window
) {
44 if (capture_window_
!= window
)
49 Window
* DefaultCaptureClient::GetCaptureWindow() {
50 return capture_window_
;
53 Window
* DefaultCaptureClient::GetGlobalCaptureWindow() {
54 return capture_window_
;