Home | History | Annotate | Download | only in wm
      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.
      4 
      5 #include "ash/wm/system_modal_container_event_filter.h"
      6 
      7 #include "ash/wm/system_modal_container_event_filter_delegate.h"
      8 #include "ui/aura/window.h"
      9 #include "ui/events/event.h"
     10 
     11 namespace ash {
     12 
     13 SystemModalContainerEventFilter::SystemModalContainerEventFilter(
     14     SystemModalContainerEventFilterDelegate* delegate)
     15     : delegate_(delegate) {
     16 }
     17 
     18 SystemModalContainerEventFilter::~SystemModalContainerEventFilter() {
     19 }
     20 
     21 void SystemModalContainerEventFilter::OnKeyEvent(ui::KeyEvent* event) {
     22   aura::Window* target = static_cast<aura::Window*>(event->target());
     23   if (!delegate_->CanWindowReceiveEvents(target))
     24     event->StopPropagation();
     25 }
     26 
     27 void SystemModalContainerEventFilter::OnMouseEvent(
     28     ui::MouseEvent* event) {
     29   aura::Window* target = static_cast<aura::Window*>(event->target());
     30   if (!delegate_->CanWindowReceiveEvents(target))
     31     event->StopPropagation();
     32 }
     33 
     34 }  // namespace ash
     35