| Index: ash/wm/overlay_event_filter.cc
|
| diff --git a/ash/wm/partial_screenshot_event_filter.cc b/ash/wm/overlay_event_filter.cc
|
| similarity index 51%
|
| rename from ash/wm/partial_screenshot_event_filter.cc
|
| rename to ash/wm/overlay_event_filter.cc
|
| index f70ae05b8bc26d146adb1a215b5005047bba820a..f575fe455dab19c4a9b1a74847a5fcda352778d1 100644
|
| --- a/ash/wm/partial_screenshot_event_filter.cc
|
| +++ b/ash/wm/overlay_event_filter.cc
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "ash/wm/partial_screenshot_event_filter.h"
|
| +#include "ash/wm/overlay_event_filter.h"
|
|
|
| #include "ash/wm/partial_screenshot_view.h"
|
| #include "ui/aura/window.h"
|
| @@ -12,80 +12,85 @@
|
| namespace ash {
|
| namespace internal {
|
|
|
| -PartialScreenshotEventFilter::PartialScreenshotEventFilter()
|
| - : view_(NULL) {
|
| +OverlayEventFilter::OverlayEventFilter()
|
| + : delegate_(NULL) {
|
| }
|
|
|
| -PartialScreenshotEventFilter::~PartialScreenshotEventFilter() {
|
| - view_ = NULL;
|
| +OverlayEventFilter::~OverlayEventFilter() {
|
| + delegate_ = NULL;
|
| }
|
|
|
| -bool PartialScreenshotEventFilter::PreHandleKeyEvent(
|
| +bool OverlayEventFilter::PreHandleKeyEvent(
|
| aura::Window* target, aura::KeyEvent* event) {
|
| - if (!view_)
|
| + if (!delegate_)
|
| return false;
|
|
|
| // Do not consume a translated key event which is generated by an IME (e.g.,
|
| // ui::VKEY_PROCESSKEY) since the key event is generated in response to a key
|
| - // press or release before showing the screenshot view. This is important not
|
| - // to confuse key event handling JavaScript code in a page.
|
| + // press or release before showing the ovelay. This is important not to
|
| + // confuse key event handling JavaScript code in a page.
|
| if (event->type() == ui::ET_TRANSLATED_KEY_PRESS ||
|
| event->type() == ui::ET_TRANSLATED_KEY_RELEASE) {
|
| return false;
|
| }
|
|
|
| - if (event->key_code() == ui::VKEY_ESCAPE)
|
| + if (delegate_ && delegate_->IsCancelingKeyEvent(event))
|
| Cancel();
|
|
|
| + // Handle key events only when they are sent to a child of the delegate's
|
| + // window.
|
| + if (delegate_ && delegate_->GetWindow()->Contains(target))
|
| + target->delegate()->OnKeyEvent(event);
|
| +
|
| // Always handled: other windows shouldn't receive input while we're
|
| - // taking a screenshot.
|
| + // displaying an overlay.
|
| return true;
|
| }
|
|
|
| -bool PartialScreenshotEventFilter::PreHandleMouseEvent(
|
| +bool OverlayEventFilter::PreHandleMouseEvent(
|
| aura::Window* target, aura::MouseEvent* event) {
|
| - if (view_) {
|
| - DCHECK_EQ(target, view_->GetWidget()->GetNativeWindow());
|
| + if (delegate_) {
|
| + DCHECK_EQ(target, delegate_->GetWindow());
|
| target->delegate()->OnMouseEvent(event);
|
| return true;
|
| }
|
| return false; // Not handled.
|
| }
|
|
|
| -ui::TouchStatus PartialScreenshotEventFilter::PreHandleTouchEvent(
|
| +ui::TouchStatus OverlayEventFilter::PreHandleTouchEvent(
|
| aura::Window* target, aura::TouchEvent* event) {
|
| return ui::TOUCH_STATUS_UNKNOWN; // Not handled.
|
| }
|
|
|
| -ui::GestureStatus PartialScreenshotEventFilter::PreHandleGestureEvent(
|
| +ui::GestureStatus OverlayEventFilter::PreHandleGestureEvent(
|
| aura::Window* target, aura::GestureEvent* event) {
|
| return ui::GESTURE_STATUS_UNKNOWN; // Not handled.
|
| }
|
|
|
| -void PartialScreenshotEventFilter::OnLoginStateChanged(
|
| +void OverlayEventFilter::OnLoginStateChanged(
|
| user::LoginStatus status) {
|
| Cancel();
|
| }
|
|
|
| -void PartialScreenshotEventFilter::OnAppTerminating() {
|
| +void OverlayEventFilter::OnAppTerminating() {
|
| Cancel();
|
| }
|
|
|
| -void PartialScreenshotEventFilter::OnLockStateChanged(bool locked) {
|
| +void OverlayEventFilter::OnLockStateChanged(bool locked) {
|
| Cancel();
|
| }
|
|
|
| -void PartialScreenshotEventFilter::Activate(PartialScreenshotView* view) {
|
| - view_ = view;
|
| +void OverlayEventFilter::Activate(Delegate* delegate) {
|
| + delegate_ = delegate;
|
| }
|
|
|
| -void PartialScreenshotEventFilter::Deactivate() {
|
| - view_ = NULL;
|
| +void OverlayEventFilter::Deactivate() {
|
| + delegate_ = NULL;
|
| }
|
|
|
| -void PartialScreenshotEventFilter::Cancel() {
|
| - if (view_)
|
| - view_->Cancel();
|
| +void OverlayEventFilter::Cancel() {
|
| + if (delegate_)
|
| + delegate_->Cancel();
|
| }
|
| } // namespace internal
|
| } // namespace ash
|
|
|