diff options
62 files changed, 157 insertions, 156 deletions
diff --git a/ash/accelerators/accelerator_dispatcher.cc b/ash/accelerators/accelerator_dispatcher.cc index ee56cef..41a292f 100644 --- a/ash/accelerators/accelerator_dispatcher.cc +++ b/ash/accelerators/accelerator_dispatcher.cc @@ -74,8 +74,8 @@ bool AcceleratorDispatcher::Dispatch(const base::NativeEvent& event) { ui::EventHandler* event_rewriter = ash::Shell::GetInstance()->event_rewriter_filter(); DCHECK(event_rewriter); - ui::EventResult result = event_rewriter->OnKeyEvent(&key_event); - if (result & ui::ER_CONSUMED) + event_rewriter->OnKeyEvent(&key_event); + if (key_event.stopped_propagation()) return true; ash::AcceleratorController* accelerator_controller = ash::Shell::GetInstance()->accelerator_controller(); diff --git a/ash/accelerators/accelerator_filter.cc b/ash/accelerators/accelerator_filter.cc index 51c4450..892beab 100644 --- a/ash/accelerators/accelerator_filter.cc +++ b/ash/accelerators/accelerator_filter.cc @@ -67,12 +67,12 @@ AcceleratorFilter::~AcceleratorFilter() { //////////////////////////////////////////////////////////////////////////////// // AcceleratorFilter, EventFilter implementation: -ui::EventResult AcceleratorFilter::OnKeyEvent(ui::KeyEvent* event) { +void AcceleratorFilter::OnKeyEvent(ui::KeyEvent* event) { const ui::EventType type = event->type(); if (type != ui::ET_KEY_PRESSED && type != ui::ET_KEY_RELEASED) - return ui::ER_UNHANDLED; + return; if (event->is_char()) - return ui::ER_UNHANDLED; + return; ui::Accelerator accelerator(event->key_code(), event->flags() & kModifierFlagMask); @@ -85,9 +85,9 @@ ui::EventResult AcceleratorFilter::OnKeyEvent(ui::KeyEvent* event) { aura::Window* target = static_cast<aura::Window*>(event->target()); if (!ShouldProcessAcceleratorsNow(accelerator, target)) - return ui::ER_UNHANDLED; - return Shell::GetInstance()->accelerator_controller()->Process(accelerator) ? - ui::ER_CONSUMED : ui::ER_UNHANDLED; + return; + if (Shell::GetInstance()->accelerator_controller()->Process(accelerator)) + event->StopPropagation(); } } // namespace internal diff --git a/ash/accelerators/accelerator_filter.h b/ash/accelerators/accelerator_filter.h index 2f125c4..a43241a 100644 --- a/ash/accelerators/accelerator_filter.h +++ b/ash/accelerators/accelerator_filter.h @@ -21,7 +21,7 @@ class ASH_EXPORT AcceleratorFilter : public ui::EventHandler { virtual ~AcceleratorFilter(); // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; private: DISALLOW_COPY_AND_ASSIGN(AcceleratorFilter); diff --git a/ash/drag_drop/drag_drop_controller.cc b/ash/drag_drop/drag_drop_controller.cc index f3d0343..91aa4a7 100644 --- a/ash/drag_drop/drag_drop_controller.cc +++ b/ash/drag_drop/drag_drop_controller.cc @@ -285,12 +285,11 @@ bool DragDropController::IsDragDropInProgress() { return !!drag_drop_tracker_.get(); } -ui::EventResult DragDropController::OnKeyEvent(ui::KeyEvent* event) { +void DragDropController::OnKeyEvent(ui::KeyEvent* event) { if (IsDragDropInProgress() && event->key_code() == ui::VKEY_ESCAPE) { DragCancel(); - return ui::ER_CONSUMED; + event->StopPropagation(); } - return ui::ER_UNHANDLED; } ui::EventResult DragDropController::OnMouseEvent(ui::MouseEvent* event) { diff --git a/ash/drag_drop/drag_drop_controller.h b/ash/drag_drop/drag_drop_controller.h index bef79a0..49dfb65ed 100644 --- a/ash/drag_drop/drag_drop_controller.h +++ b/ash/drag_drop/drag_drop_controller.h @@ -65,7 +65,7 @@ class ASH_EXPORT DragDropController virtual bool IsDragDropInProgress() OVERRIDE; // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE; diff --git a/ash/launcher/launcher_tooltip_manager_unittest.cc b/ash/launcher/launcher_tooltip_manager_unittest.cc index e1464da..0fcbe28 100644 --- a/ash/launcher/launcher_tooltip_manager_unittest.cc +++ b/ash/launcher/launcher_tooltip_manager_unittest.cc @@ -156,8 +156,8 @@ TEST_F(LauncherTooltipManagerTest, ShouldHideForEvents) { // Should not hide for key events. ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE, false); SetEventTarget(root_window, &key_event); - EXPECT_EQ(ui::ER_UNHANDLED, - event_handler->OnKeyEvent(&key_event)); + event_handler->OnKeyEvent(&key_event); + EXPECT_FALSE(key_event.handled()); EXPECT_TRUE(TooltipIsVisible()); // Should hide for touch events. diff --git a/ash/tooltips/tooltip_controller.cc b/ash/tooltips/tooltip_controller.cc index 21dcab5..ef80f9b 100644 --- a/ash/tooltips/tooltip_controller.cc +++ b/ash/tooltips/tooltip_controller.cc @@ -249,7 +249,7 @@ void TooltipController::SetTooltipsEnabled(bool enable) { UpdateTooltip(tooltip_window_); } -ui::EventResult TooltipController::OnKeyEvent(ui::KeyEvent* event) { +void TooltipController::OnKeyEvent(ui::KeyEvent* event) { // On key press, we want to hide the tooltip and not show it until change. // This is the same behavior as hiding tooltips on timeout. Hence, we can // simply simulate a timeout. @@ -257,7 +257,6 @@ ui::EventResult TooltipController::OnKeyEvent(ui::KeyEvent* event) { tooltip_shown_timer_.Stop(); TooltipShownTimerFired(); } - return ui::ER_UNHANDLED; } ui::EventResult TooltipController::OnMouseEvent(ui::MouseEvent* event) { diff --git a/ash/tooltips/tooltip_controller.h b/ash/tooltips/tooltip_controller.h index d07f181..6ac7b27 100644 --- a/ash/tooltips/tooltip_controller.h +++ b/ash/tooltips/tooltip_controller.h @@ -44,7 +44,7 @@ class ASH_EXPORT TooltipController : public aura::client::TooltipClient, virtual void SetTooltipsEnabled(bool enable) OVERRIDE; // Overridden from ui::EventHandler. - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; diff --git a/ash/wm/activation_controller.cc b/ash/wm/activation_controller.cc index 5544078..a17109e 100644 --- a/ash/wm/activation_controller.cc +++ b/ash/wm/activation_controller.cc @@ -272,8 +272,7 @@ void ActivationController::OnWindowFocused(aura::Window* gained_focus, //////////////////////////////////////////////////////////////////////////////// // ActivationController, ui::EventHandler implementation: -ui::EventResult ActivationController::OnKeyEvent(ui::KeyEvent* event) { - return ui::ER_UNHANDLED; +void ActivationController::OnKeyEvent(ui::KeyEvent* event) { } ui::EventResult ActivationController::OnMouseEvent(ui::MouseEvent* event) { diff --git a/ash/wm/activation_controller.h b/ash/wm/activation_controller.h index 23fe737..f9b023f 100644 --- a/ash/wm/activation_controller.h +++ b/ash/wm/activation_controller.h @@ -75,7 +75,7 @@ class ASH_EXPORT ActivationController private: // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual void OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; diff --git a/ash/wm/event_rewriter_event_filter.cc b/ash/wm/event_rewriter_event_filter.cc index fc36c0c..81ed7e5 100644 --- a/ash/wm/event_rewriter_event_filter.cc +++ b/ash/wm/event_rewriter_event_filter.cc @@ -20,25 +20,23 @@ void EventRewriterEventFilter::SetEventRewriterDelegate( delegate_.swap(delegate); } -ui::EventResult EventRewriterEventFilter::OnKeyEvent(ui::KeyEvent* event) { +void EventRewriterEventFilter::OnKeyEvent(ui::KeyEvent* event) { if (!delegate_.get()) - return ui::ER_UNHANDLED; + return; // Do not consume a translated key event which is generated by an IME. if (event->type() == ui::ET_TRANSLATED_KEY_PRESS || event->type() == ui::ET_TRANSLATED_KEY_RELEASE) { - return ui::ER_UNHANDLED; + return; } switch (delegate_->RewriteOrFilterKeyEvent(event)) { case EventRewriterDelegate::ACTION_REWRITE_EVENT: - return ui::ER_UNHANDLED; + break; case EventRewriterDelegate::ACTION_DROP_EVENT: - return ui::ER_CONSUMED; + event->StopPropagation(); + break; } - - NOTREACHED(); - return ui::ER_UNHANDLED; } ui::EventResult EventRewriterEventFilter::OnMouseEvent(ui::MouseEvent* event) { diff --git a/ash/wm/event_rewriter_event_filter.h b/ash/wm/event_rewriter_event_filter.h index f839064..6939001 100644 --- a/ash/wm/event_rewriter_event_filter.h +++ b/ash/wm/event_rewriter_event_filter.h @@ -27,7 +27,7 @@ class ASH_EXPORT EventRewriterEventFilter : public ui::EventHandler { private: // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; scoped_ptr<EventRewriterDelegate> delegate_; diff --git a/ash/wm/overlay_event_filter.cc b/ash/wm/overlay_event_filter.cc index 1a333b7..2319d2f 100644 --- a/ash/wm/overlay_event_filter.cc +++ b/ash/wm/overlay_event_filter.cc @@ -21,9 +21,9 @@ OverlayEventFilter::~OverlayEventFilter() { delegate_ = NULL; } -ui::EventResult OverlayEventFilter::OnKeyEvent(ui::KeyEvent* event) { +void OverlayEventFilter::OnKeyEvent(ui::KeyEvent* event) { if (!delegate_) - return ui::ER_UNHANDLED; + return; // 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 @@ -31,7 +31,7 @@ ui::EventResult OverlayEventFilter::OnKeyEvent(ui::KeyEvent* event) { // 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 ui::ER_UNHANDLED; + return; } if (delegate_ && delegate_->IsCancelingKeyEvent(event)) @@ -46,7 +46,7 @@ ui::EventResult OverlayEventFilter::OnKeyEvent(ui::KeyEvent* event) { // Always handled: other windows shouldn't receive input while we're // displaying an overlay. - return ui::ER_CONSUMED; + event->StopPropagation(); } void OverlayEventFilter::OnLoginStateChanged( diff --git a/ash/wm/overlay_event_filter.h b/ash/wm/overlay_event_filter.h index 87c115c..1989e45 100644 --- a/ash/wm/overlay_event_filter.h +++ b/ash/wm/overlay_event_filter.h @@ -52,7 +52,7 @@ class OverlayEventFilter : public ui::EventHandler, void Cancel(); // ui::EventHandler overrides: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; // ShellObserver overrides: virtual void OnLoginStateChanged(user::LoginStatus status) OVERRIDE; diff --git a/ash/wm/system_modal_container_event_filter.cc b/ash/wm/system_modal_container_event_filter.cc index 5103d2d..da9600f 100644 --- a/ash/wm/system_modal_container_event_filter.cc +++ b/ash/wm/system_modal_container_event_filter.cc @@ -19,11 +19,10 @@ SystemModalContainerEventFilter::SystemModalContainerEventFilter( SystemModalContainerEventFilter::~SystemModalContainerEventFilter() { } -ui::EventResult SystemModalContainerEventFilter::OnKeyEvent( - ui::KeyEvent* event) { +void SystemModalContainerEventFilter::OnKeyEvent(ui::KeyEvent* event) { aura::Window* target = static_cast<aura::Window*>(event->target()); - return delegate_->CanWindowReceiveEvents(target) ? ui::ER_UNHANDLED : - ui::ER_CONSUMED; + if (!delegate_->CanWindowReceiveEvents(target)) + event->StopPropagation(); } ui::EventResult SystemModalContainerEventFilter::OnMouseEvent( diff --git a/ash/wm/system_modal_container_event_filter.h b/ash/wm/system_modal_container_event_filter.h index 64653ee..f1ac513 100644 --- a/ash/wm/system_modal_container_event_filter.h +++ b/ash/wm/system_modal_container_event_filter.h @@ -22,7 +22,7 @@ class ASH_EXPORT SystemModalContainerEventFilter : public ui::EventHandler { virtual ~SystemModalContainerEventFilter(); // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; private: diff --git a/ash/wm/toplevel_window_event_handler.cc b/ash/wm/toplevel_window_event_handler.cc index 865fcda..96f26e2 100644 --- a/ash/wm/toplevel_window_event_handler.cc +++ b/ash/wm/toplevel_window_event_handler.cc @@ -123,12 +123,11 @@ ToplevelWindowEventHandler::~ToplevelWindowEventHandler() { *destroyed_ = true; } -ui::EventResult ToplevelWindowEventHandler::OnKeyEvent(ui::KeyEvent* event) { +void ToplevelWindowEventHandler::OnKeyEvent(ui::KeyEvent* event) { if (window_resizer_.get() && event->type() == ui::ET_KEY_PRESSED && event->key_code() == ui::VKEY_ESCAPE) { CompleteDrag(DRAG_REVERT, event->flags()); } - return ui::ER_UNHANDLED; } ui::EventResult ToplevelWindowEventHandler::OnMouseEvent( diff --git a/ash/wm/toplevel_window_event_handler.h b/ash/wm/toplevel_window_event_handler.h index 4277cf4..1340937 100644 --- a/ash/wm/toplevel_window_event_handler.h +++ b/ash/wm/toplevel_window_event_handler.h @@ -38,7 +38,7 @@ class ASH_EXPORT ToplevelWindowEventHandler virtual ~ToplevelWindowEventHandler(); // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE; diff --git a/ash/wm/user_activity_detector.cc b/ash/wm/user_activity_detector.cc index 4338acc..6c55f89 100644 --- a/ash/wm/user_activity_detector.cc +++ b/ash/wm/user_activity_detector.cc @@ -34,9 +34,8 @@ void UserActivityDetector::OnAllOutputsTurnedOff() { ignore_next_mouse_event_ = true; } -ui::EventResult UserActivityDetector::OnKeyEvent(ui::KeyEvent* event) { +void UserActivityDetector::OnKeyEvent(ui::KeyEvent* event) { MaybeNotify(); - return ui::ER_UNHANDLED; } ui::EventResult UserActivityDetector::OnMouseEvent(ui::MouseEvent* event) { diff --git a/ash/wm/user_activity_detector.h b/ash/wm/user_activity_detector.h index 89a2518..9d8ec28 100644 --- a/ash/wm/user_activity_detector.h +++ b/ash/wm/user_activity_detector.h @@ -35,7 +35,7 @@ class ASH_EXPORT UserActivityDetector : public ui::EventHandler { void OnAllOutputsTurnedOff(); // ui::EventHandler implementation. - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual void OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; diff --git a/ash/wm/user_activity_detector_unittest.cc b/ash/wm/user_activity_detector_unittest.cc index 1e3105b..979c9ea 100644 --- a/ash/wm/user_activity_detector_unittest.cc +++ b/ash/wm/user_activity_detector_unittest.cc @@ -92,7 +92,8 @@ TEST_F(UserActivityDetectorTest, Basic) { ui::KeyEvent key_event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE, false); SetEventTarget(window.get(), &key_event); - EXPECT_EQ(ui::ER_UNHANDLED, detector_->OnKeyEvent(&key_event)); + detector_->OnKeyEvent(&key_event); + EXPECT_FALSE(key_event.handled()); EXPECT_EQ(1, observer_->num_invocations()); observer_->reset_stats(); @@ -141,13 +142,15 @@ TEST_F(UserActivityDetectorTest, RateLimitNotifications) { // The observer should be notified about a key event. ui::KeyEvent event(ui::ET_KEY_PRESSED, ui::VKEY_A, ui::EF_NONE, false); SetEventTarget(window.get(), &event); - EXPECT_FALSE(detector_->OnKeyEvent(&event)); + detector_->OnKeyEvent(&event); + EXPECT_FALSE(event.handled()); EXPECT_EQ(1, observer_->num_invocations()); observer_->reset_stats(); // It shouldn't be notified if a second event occurs // in the same instant in time. - EXPECT_FALSE(detector_->OnKeyEvent(&event)); + detector_->OnKeyEvent(&event); + EXPECT_FALSE(event.handled()); EXPECT_EQ(0, observer_->num_invocations()); observer_->reset_stats(); @@ -155,7 +158,8 @@ TEST_F(UserActivityDetectorTest, RateLimitNotifications) { AdvanceTime( base::TimeDelta::FromMilliseconds( UserActivityDetector::kNotifyIntervalMs - 100)); - EXPECT_EQ(ui::ER_UNHANDLED, detector_->OnKeyEvent(&event)); + detector_->OnKeyEvent(&event); + EXPECT_FALSE(event.handled()); EXPECT_EQ(0, observer_->num_invocations()); observer_->reset_stats(); @@ -164,7 +168,8 @@ TEST_F(UserActivityDetectorTest, RateLimitNotifications) { AdvanceTime(base::TimeDelta::FromMilliseconds( UserActivityDetector::kNotifyIntervalMs)); - EXPECT_EQ(ui::ER_UNHANDLED, detector_->OnKeyEvent(&event)); + detector_->OnKeyEvent(&event); + EXPECT_FALSE(event.handled()); EXPECT_EQ(1, observer_->num_invocations()); } diff --git a/ash/wm/window_cycle_controller.cc b/ash/wm/window_cycle_controller.cc index 4158451..2aae2a6 100644 --- a/ash/wm/window_cycle_controller.cc +++ b/ash/wm/window_cycle_controller.cc @@ -34,7 +34,7 @@ class WindowCycleEventFilter : public ui::EventHandler { virtual ~WindowCycleEventFilter(); // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; private: DISALLOW_COPY_AND_ASSIGN(WindowCycleEventFilter); }; @@ -46,14 +46,13 @@ WindowCycleEventFilter::WindowCycleEventFilter() { WindowCycleEventFilter::~WindowCycleEventFilter() { } -ui::EventResult WindowCycleEventFilter::OnKeyEvent(ui::KeyEvent* event) { +void WindowCycleEventFilter::OnKeyEvent(ui::KeyEvent* event) { // Views uses VKEY_MENU for both left and right Alt keys. if (event->key_code() == ui::VKEY_MENU && event->type() == ui::ET_KEY_RELEASED) { Shell::GetInstance()->window_cycle_controller()->AltKeyReleased(); // Warning: |this| will be deleted from here on. } - return ui::ER_UNHANDLED; // Always let the event propagate. } // Adds all the children of |window| to |windows|. diff --git a/ash/wm/window_manager_unittest.cc b/ash/wm/window_manager_unittest.cc index 98568e4..773a4a6 100644 --- a/ash/wm/window_manager_unittest.cc +++ b/ash/wm/window_manager_unittest.cc @@ -54,9 +54,12 @@ class CustomEventHandler : public aura::test::TestEventHandler { } // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE { - ui::EventResult result = aura::test::TestEventHandler::OnKeyEvent(event); - return key_result_ == ui::ER_UNHANDLED ? result : key_result_; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE { + aura::test::TestEventHandler::OnKeyEvent(event); + if (key_result_ & ui::ER_HANDLED) + event->SetHandled(); + if (key_result_ & ui::ER_CONSUMED) + event->StopPropagation(); } virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE { diff --git a/ash/wm/workspace/frame_maximize_button.cc b/ash/wm/workspace/frame_maximize_button.cc index f650cdb..bf25172 100644 --- a/ash/wm/workspace/frame_maximize_button.cc +++ b/ash/wm/workspace/frame_maximize_button.cc @@ -47,7 +47,7 @@ class FrameMaximizeButton::EscapeEventFilter : public ui::EventHandler { virtual ~EscapeEventFilter(); // EventFilter overrides: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; private: FrameMaximizeButton* button_; @@ -65,13 +65,12 @@ FrameMaximizeButton::EscapeEventFilter::~EscapeEventFilter() { Shell::GetInstance()->RemovePreTargetHandler(this); } -ui::EventResult FrameMaximizeButton::EscapeEventFilter::OnKeyEvent( +void FrameMaximizeButton::EscapeEventFilter::OnKeyEvent( ui::KeyEvent* event) { if (event->type() == ui::ET_KEY_PRESSED && event->key_code() == ui::VKEY_ESCAPE) { button_->Cancel(false); } - return ui::ER_UNHANDLED; } // FrameMaximizeButton --------------------------------------------------------- diff --git a/chrome/browser/extensions/api/input/input.cc b/chrome/browser/extensions/api/input/input.cc index e25f580..43c0e30 100644 --- a/chrome/browser/extensions/api/input/input.cc +++ b/chrome/browser/extensions/api/input/input.cc @@ -122,9 +122,12 @@ bool SendKeyboardEventInputFunction::RunImpl() { views::InputMethod* ime = widget->GetInputMethod(); if (ime) { ime->DispatchKeyEvent(event); - } else if (!widget->OnKeyEvent(event)) { - error_ = kKeyEventUnprocessedError; - return false; + } else { + widget->OnKeyEvent(&event); + if (event.handled()) { + error_ = kKeyEventUnprocessedError; + return false; + } } return true; diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc index aa07886..180c243 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.cc +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc @@ -1460,11 +1460,13 @@ scoped_refptr<ui::Texture> RenderWidgetHostViewAura::CopyTexture() { //////////////////////////////////////////////////////////////////////////////// // RenderWidgetHostViewAura, ui::EventHandler implementation: -ui::EventResult RenderWidgetHostViewAura::OnKeyEvent(ui::KeyEvent* event) { +void RenderWidgetHostViewAura::OnKeyEvent(ui::KeyEvent* event) { TRACE_EVENT0("browser", "RenderWidgetHostViewAura::OnKeyEvent"); - if (popup_child_host_view_ && popup_child_host_view_->NeedsInputGrab() && - popup_child_host_view_->OnKeyEvent(event)) - return ui::ER_HANDLED; + if (popup_child_host_view_ && popup_child_host_view_->NeedsInputGrab()) { + popup_child_host_view_->OnKeyEvent(event); + if (event->handled()) + return; + } // We need to handle the Escape key for Pepper Flash. if (is_fullscreen_ && event->key_code() == ui::VKEY_ESCAPE) { @@ -1497,7 +1499,7 @@ ui::EventResult RenderWidgetHostViewAura::OnKeyEvent(ui::KeyEvent* event) { host_->ForwardKeyboardEvent(webkit_event); } } - return ui::ER_HANDLED; + event->SetHandled(); } ui::EventResult RenderWidgetHostViewAura::OnMouseEvent(ui::MouseEvent* event) { diff --git a/content/browser/renderer_host/render_widget_host_view_aura.h b/content/browser/renderer_host/render_widget_host_view_aura.h index 710c5cf..c078ffb 100644 --- a/content/browser/renderer_host/render_widget_host_view_aura.h +++ b/content/browser/renderer_host/render_widget_host_view_aura.h @@ -196,7 +196,7 @@ class RenderWidgetHostViewAura virtual scoped_refptr<ui::Texture> CopyTexture() OVERRIDE; // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual void OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; diff --git a/content/browser/web_contents/web_contents_view_aura.cc b/content/browser/web_contents/web_contents_view_aura.cc index 03e2eb8..c31128b 100644 --- a/content/browser/web_contents/web_contents_view_aura.cc +++ b/content/browser/web_contents/web_contents_view_aura.cc @@ -908,8 +908,7 @@ scoped_refptr<ui::Texture> WebContentsViewAura::CopyTexture() { //////////////////////////////////////////////////////////////////////////////// // WebContentsViewAura, ui::EventHandler implementation: -ui::EventResult WebContentsViewAura::OnKeyEvent(ui::KeyEvent* event) { - return ui::ER_UNHANDLED; +void WebContentsViewAura::OnKeyEvent(ui::KeyEvent* event) { } ui::EventResult WebContentsViewAura::OnMouseEvent(ui::MouseEvent* event) { diff --git a/content/browser/web_contents/web_contents_view_aura.h b/content/browser/web_contents/web_contents_view_aura.h index b2fec96..6b2a1d0 100644 --- a/content/browser/web_contents/web_contents_view_aura.h +++ b/content/browser/web_contents/web_contents_view_aura.h @@ -151,7 +151,7 @@ class CONTENT_EXPORT WebContentsViewAura virtual scoped_refptr<ui::Texture> CopyTexture() OVERRIDE; // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; // Overridden from aura::client::DragDropDelegate: diff --git a/ui/aura/root_window_unittest.cc b/ui/aura/root_window_unittest.cc index e76c787c..9f97cb7 100644 --- a/ui/aura/root_window_unittest.cc +++ b/ui/aura/root_window_unittest.cc @@ -81,9 +81,9 @@ class ConsumeKeyHandler : public test::TestEventHandler { virtual ~ConsumeKeyHandler() {} // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE { + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE { test::TestEventHandler::OnKeyEvent(event); - return ui::ER_CONSUMED; + event->StopPropagation(); } private: @@ -441,9 +441,8 @@ class EventFilterRecorder : public ui::EventHandler { Events& events() { return events_; } // ui::EventHandler overrides: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE { + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE { events_.push_back(event->type()); - return ui::ER_UNHANDLED; } virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE { @@ -640,10 +639,9 @@ class DeletingEventFilter : public ui::EventHandler { private: // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE { + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE { if (delete_during_pre_handle_) delete event->target(); - return ui::ER_UNHANDLED; } virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE { @@ -674,11 +672,10 @@ class DeletingWindowDelegate : public test::TestWindowDelegate { private: // Overridden from WindowDelegate: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE { + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE { if (delete_during_handle_) delete window_; got_event_ = true; - return ui::ER_UNHANDLED; } virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE { diff --git a/ui/aura/test/test_event_handler.cc b/ui/aura/test/test_event_handler.cc index 910b301..8e05579 100644 --- a/ui/aura/test/test_event_handler.cc +++ b/ui/aura/test/test_event_handler.cc @@ -25,9 +25,8 @@ void TestEventHandler::Reset() { num_gesture_events_ = 0; } -ui::EventResult TestEventHandler::OnKeyEvent(ui::KeyEvent* event) { +void TestEventHandler::OnKeyEvent(ui::KeyEvent* event) { num_key_events_++; - return ui::ER_UNHANDLED; } ui::EventResult TestEventHandler::OnMouseEvent(ui::MouseEvent* event) { diff --git a/ui/aura/test/test_event_handler.h b/ui/aura/test/test_event_handler.h index c934136..443232d 100644 --- a/ui/aura/test/test_event_handler.h +++ b/ui/aura/test/test_event_handler.h @@ -28,7 +28,7 @@ class TestEventHandler : public ui::EventHandler { void Reset(); // ui::EventHandler overrides: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual void OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; diff --git a/ui/aura/test/test_window_delegate.cc b/ui/aura/test/test_window_delegate.cc index eb34561..155e343 100644 --- a/ui/aura/test/test_window_delegate.cc +++ b/ui/aura/test/test_window_delegate.cc @@ -102,16 +102,19 @@ ColorTestWindowDelegate::ColorTestWindowDelegate(SkColor color) : color_(color), last_key_code_(ui::VKEY_UNKNOWN) { } + ColorTestWindowDelegate::~ColorTestWindowDelegate() { } -ui::EventResult ColorTestWindowDelegate::OnKeyEvent(ui::KeyEvent* event) { +void ColorTestWindowDelegate::OnKeyEvent(ui::KeyEvent* event) { last_key_code_ = event->key_code(); - return ui::ER_HANDLED; + event->SetHandled(); } + void ColorTestWindowDelegate::OnWindowDestroyed() { delete this; } + void ColorTestWindowDelegate::OnPaint(gfx::Canvas* canvas) { canvas->DrawColor(color_, SkXfermode::kSrc_Mode); } @@ -144,7 +147,7 @@ EventCountDelegate::EventCountDelegate() key_release_count_(0) { } -ui::EventResult EventCountDelegate::OnKeyEvent(ui::KeyEvent* event) { +void EventCountDelegate::OnKeyEvent(ui::KeyEvent* event) { switch (event->type()) { case ui::ET_KEY_PRESSED: key_press_count_++; @@ -154,7 +157,6 @@ ui::EventResult EventCountDelegate::OnKeyEvent(ui::KeyEvent* event) { default: break; } - return ui::ER_UNHANDLED; } ui::EventResult EventCountDelegate::OnMouseEvent(ui::MouseEvent* event) { diff --git a/ui/aura/test/test_window_delegate.h b/ui/aura/test/test_window_delegate.h index 209f98c..1abd955 100644 --- a/ui/aura/test/test_window_delegate.h +++ b/ui/aura/test/test_window_delegate.h @@ -78,7 +78,7 @@ class ColorTestWindowDelegate : public TestWindowDelegate { ui::KeyboardCode last_key_code() const { return last_key_code_; } // Overridden from TestWindowDelegate: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual void OnWindowDestroyed() OVERRIDE; virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; @@ -110,7 +110,7 @@ class EventCountDelegate : public TestWindowDelegate { EventCountDelegate(); // Overridden from TestWindowDelegate: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; // Returns the counts of mouse motion events in the diff --git a/ui/base/events/event_dispatcher_unittest.cc b/ui/base/events/event_dispatcher_unittest.cc index 1cc8ba6..41eed09 100644 --- a/ui/base/events/event_dispatcher_unittest.cc +++ b/ui/base/events/event_dispatcher_unittest.cc @@ -80,9 +80,9 @@ class TestEventHandler : public EventHandler { private: // Overridden from EventHandler: - virtual EventResult OnKeyEvent(KeyEvent* event) OVERRIDE { + virtual void OnKeyEvent(KeyEvent* event) OVERRIDE { ReceivedEvent(event); - return event_result_; + SetStatusOnEvent(event); } virtual EventResult OnMouseEvent(MouseEvent* event) OVERRIDE { diff --git a/ui/base/events/event_handler.cc b/ui/base/events/event_handler.cc index df35e59..85ec7d5 100644 --- a/ui/base/events/event_handler.cc +++ b/ui/base/events/event_handler.cc @@ -23,7 +23,7 @@ EventHandler::~EventHandler() { void EventHandler::OnEvent(Event* event) { ui::EventResult result = ui::ER_UNHANDLED; if (event->IsKeyEvent()) - result = OnKeyEvent(static_cast<KeyEvent*>(event)); + OnKeyEvent(static_cast<KeyEvent*>(event)); else if (event->IsMouseEvent()) result = OnMouseEvent(static_cast<MouseEvent*>(event)); else if (event->IsScrollEvent()) @@ -39,8 +39,7 @@ void EventHandler::OnEvent(Event* event) { event->SetHandled(); } -EventResult EventHandler::OnKeyEvent(KeyEvent* event) { - return ui::ER_UNHANDLED; +void EventHandler::OnKeyEvent(KeyEvent* event) { } EventResult EventHandler::OnMouseEvent(MouseEvent* event) { diff --git a/ui/base/events/event_handler.h b/ui/base/events/event_handler.h index 233b5cb..1084889 100644 --- a/ui/base/events/event_handler.h +++ b/ui/base/events/event_handler.h @@ -36,7 +36,7 @@ class UI_EXPORT EventHandler { // default implementation for un-handled events. virtual void OnEvent(Event* event); - virtual EventResult OnKeyEvent(KeyEvent* event); + virtual void OnKeyEvent(KeyEvent* event); virtual EventResult OnMouseEvent(MouseEvent* event); diff --git a/ui/base/events/event_target.cc b/ui/base/events/event_target.cc index c587877..649c722 100644 --- a/ui/base/events/event_target.cc +++ b/ui/base/events/event_target.cc @@ -52,9 +52,10 @@ void EventTarget::OnEvent(Event* event) { EventHandler::OnEvent(event); } -EventResult EventTarget::OnKeyEvent(KeyEvent* event) { +void EventTarget::OnKeyEvent(KeyEvent* event) { CHECK_EQ(this, event->target()); - return target_handler_ ? target_handler_->OnKeyEvent(event) : ER_UNHANDLED; + if (target_handler_) + target_handler_->OnKeyEvent(event); } EventResult EventTarget::OnMouseEvent(MouseEvent* event) { diff --git a/ui/base/events/event_target.h b/ui/base/events/event_target.h index 1bd5033..c54fa2b 100644 --- a/ui/base/events/event_target.h +++ b/ui/base/events/event_target.h @@ -73,7 +73,7 @@ class UI_EXPORT EventTarget : public EventHandler { // Overridden from EventHandler: virtual void OnEvent(Event* event) OVERRIDE; - virtual EventResult OnKeyEvent(KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(KeyEvent* event) OVERRIDE; virtual EventResult OnMouseEvent(MouseEvent* event) OVERRIDE; virtual void OnScrollEvent(ScrollEvent* event) OVERRIDE; virtual void OnTouchEvent(TouchEvent* event) OVERRIDE; diff --git a/ui/views/corewm/compound_event_filter.cc b/ui/views/corewm/compound_event_filter.cc index 9e857c6..0b77b28 100644 --- a/ui/views/corewm/compound_event_filter.cc +++ b/ui/views/corewm/compound_event_filter.cc @@ -139,15 +139,13 @@ void CompoundEventFilter::UpdateCursor(aura::Window* target, } } -ui::EventResult CompoundEventFilter::FilterKeyEvent(ui::KeyEvent* event) { - int result = ui::ER_UNHANDLED; +void CompoundEventFilter::FilterKeyEvent(ui::KeyEvent* event) { if (handlers_.might_have_observers()) { ObserverListBase<ui::EventHandler>::Iterator it(handlers_); ui::EventHandler* handler; - while (!(result & ui::ER_CONSUMED) && (handler = it.GetNext()) != NULL) - result |= handler->OnKeyEvent(event); + while (!event->stopped_propagation() && (handler = it.GetNext()) != NULL) + handler->OnKeyEvent(event); } - return static_cast<ui::EventResult>(result); } ui::EventResult CompoundEventFilter::FilterMouseEvent(ui::MouseEvent* event) { @@ -192,13 +190,13 @@ void CompoundEventFilter::SetCursorVisibilityOnEvent(aura::Window* target, //////////////////////////////////////////////////////////////////////////////// // CompoundEventFilter, ui::EventHandler implementation: -ui::EventResult CompoundEventFilter::OnKeyEvent(ui::KeyEvent* event) { +void CompoundEventFilter::OnKeyEvent(ui::KeyEvent* event) { if (ShouldHideCursorOnKeyEvent(*event)) { SetCursorVisibilityOnEvent( static_cast<aura::Window*>(event->target()), event, false); } - return FilterKeyEvent(event); + FilterKeyEvent(event); } ui::EventResult CompoundEventFilter::OnMouseEvent(ui::MouseEvent* event) { diff --git a/ui/views/corewm/compound_event_filter.h b/ui/views/corewm/compound_event_filter.h index 223b0b6..685c606 100644 --- a/ui/views/corewm/compound_event_filter.h +++ b/ui/views/corewm/compound_event_filter.h @@ -63,7 +63,7 @@ class VIEWS_EXPORT CompoundEventFilter : public ui::EventHandler { void UpdateCursor(aura::Window* target, ui::MouseEvent* event); // Dispatches event to additional filters. - ui::EventResult FilterKeyEvent(ui::KeyEvent* event); + void FilterKeyEvent(ui::KeyEvent* event); ui::EventResult FilterMouseEvent(ui::MouseEvent* event); void FilterTouchEvent(ui::TouchEvent* event); @@ -78,7 +78,7 @@ class VIEWS_EXPORT CompoundEventFilter : public ui::EventHandler { bool show); // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual void OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; diff --git a/ui/views/corewm/focus_controller.cc b/ui/views/corewm/focus_controller.cc index 4f273af..b5bbd90 100644 --- a/ui/views/corewm/focus_controller.cc +++ b/ui/views/corewm/focus_controller.cc @@ -149,8 +149,7 @@ void FocusController::OnWindowHiddenInRootWindow( //////////////////////////////////////////////////////////////////////////////// // FocusController, ui::EventHandler implementation: -ui::EventResult FocusController::OnKeyEvent(ui::KeyEvent* event) { - return ui::ER_UNHANDLED; +void FocusController::OnKeyEvent(ui::KeyEvent* event) { } ui::EventResult FocusController::OnMouseEvent(ui::MouseEvent* event) { diff --git a/ui/views/corewm/focus_controller.h b/ui/views/corewm/focus_controller.h index a14968a..afd45cd 100644 --- a/ui/views/corewm/focus_controller.h +++ b/ui/views/corewm/focus_controller.h @@ -71,7 +71,7 @@ class VIEWS_EXPORT FocusController : public aura::client::ActivationClient, bool destroyed) OVERRIDE; // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual void OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; diff --git a/ui/views/corewm/input_method_event_filter.cc b/ui/views/corewm/input_method_event_filter.cc index f80d3ca..d7a1d38 100644 --- a/ui/views/corewm/input_method_event_filter.cc +++ b/ui/views/corewm/input_method_event_filter.cc @@ -37,14 +37,13 @@ void InputMethodEventFilter::SetInputMethodPropertyInRootWindow( //////////////////////////////////////////////////////////////////////////////// // InputMethodEventFilter, EventFilter implementation: -ui::EventResult InputMethodEventFilter::OnKeyEvent(ui::KeyEvent* event) { +void InputMethodEventFilter::OnKeyEvent(ui::KeyEvent* event) { const ui::EventType type = event->type(); if (type == ui::ET_TRANSLATED_KEY_PRESS || type == ui::ET_TRANSLATED_KEY_RELEASE) { // The |event| is already handled by this object, change the type of the // event to ui::ET_KEY_* and pass it to the next filter. static_cast<ui::TranslatedKeyEvent*>(event)->ConvertToKeyEvent(); - return ui::ER_UNHANDLED; } else { // If the focused window is changed, all requests to IME will be // discarded so it's safe to update the target_root_window_ here. @@ -55,7 +54,7 @@ ui::EventResult InputMethodEventFilter::OnKeyEvent(ui::KeyEvent* event) { input_method_->DispatchKeyEvent(event->native_event()); else input_method_->DispatchFabricatedKeyEvent(*event); - return ui::ER_CONSUMED; + event->StopPropagation(); } } diff --git a/ui/views/corewm/input_method_event_filter.h b/ui/views/corewm/input_method_event_filter.h index c0d3a94..67633fc 100644 --- a/ui/views/corewm/input_method_event_filter.h +++ b/ui/views/corewm/input_method_event_filter.h @@ -39,7 +39,7 @@ class VIEWS_EXPORT InputMethodEventFilter private: // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; // Overridden from ui::internal::InputMethodDelegate. virtual void DispatchKeyEventPostIME(const base::NativeEvent& event) OVERRIDE; diff --git a/ui/views/corewm/window_modality_controller.cc b/ui/views/corewm/window_modality_controller.cc index dd91a20..c6b2a37 100644 --- a/ui/views/corewm/window_modality_controller.cc +++ b/ui/views/corewm/window_modality_controller.cc @@ -103,9 +103,10 @@ WindowModalityController::~WindowModalityController() { //////////////////////////////////////////////////////////////////////////////// // WindowModalityController, aura::EventFilter implementation: -ui::EventResult WindowModalityController::OnKeyEvent(ui::KeyEvent* event) { +void WindowModalityController::OnKeyEvent(ui::KeyEvent* event) { aura::Window* target = static_cast<aura::Window*>(event->target()); - return GetModalTransient(target) ? ui::ER_CONSUMED : ui::ER_UNHANDLED; + if (GetModalTransient(target)) + event->StopPropagation(); } ui::EventResult WindowModalityController::OnMouseEvent(ui::MouseEvent* event) { diff --git a/ui/views/corewm/window_modality_controller.h b/ui/views/corewm/window_modality_controller.h index d6efc02..29fa047 100644 --- a/ui/views/corewm/window_modality_controller.h +++ b/ui/views/corewm/window_modality_controller.h @@ -38,7 +38,7 @@ class VIEWS_EXPORT WindowModalityController : public ui::EventHandler, virtual ~WindowModalityController(); // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; diff --git a/ui/views/view.cc b/ui/views/view.cc index 2fb4fdf..b40faee 100644 --- a/ui/views/view.cc +++ b/ui/views/view.cc @@ -867,8 +867,7 @@ bool View::OnMouseWheel(const ui::MouseWheelEvent& event) { return false; } -ui::EventResult View::OnKeyEvent(ui::KeyEvent* event) { - return ui::ER_UNHANDLED; +void View::OnKeyEvent(ui::KeyEvent* event) { } ui::EventResult View::OnMouseEvent(ui::MouseEvent* event) { diff --git a/ui/views/view.h b/ui/views/view.h index d19bec6..6acbd05 100644 --- a/ui/views/view.h +++ b/ui/views/view.h @@ -651,7 +651,7 @@ class VIEWS_EXPORT View : public ui::LayerDelegate, virtual ui::EventTarget* GetParentTarget() OVERRIDE; // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual void OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; diff --git a/ui/views/widget/desktop_aura/desktop_activation_client.cc b/ui/views/widget/desktop_aura/desktop_activation_client.cc index 0581e1b..181f1dd 100644 --- a/ui/views/widget/desktop_aura/desktop_activation_client.cc +++ b/ui/views/widget/desktop_aura/desktop_activation_client.cc @@ -158,8 +158,7 @@ bool DesktopActivationClient::CanActivateWindow(aura::Window* window) const { aura::client::GetActivationDelegate(window)->ShouldActivate()); } -ui::EventResult DesktopActivationClient::OnKeyEvent(ui::KeyEvent* event) { - return ui::ER_UNHANDLED; +void DesktopActivationClient::OnKeyEvent(ui::KeyEvent* event) { } ui::EventResult DesktopActivationClient::OnMouseEvent(ui::MouseEvent* event) { diff --git a/ui/views/widget/desktop_aura/desktop_activation_client.h b/ui/views/widget/desktop_aura/desktop_activation_client.h index b4d5759..9d426f0 100644 --- a/ui/views/widget/desktop_aura/desktop_activation_client.h +++ b/ui/views/widget/desktop_aura/desktop_activation_client.h @@ -60,7 +60,7 @@ class VIEWS_EXPORT DesktopActivationClient aura::Window* lost_focus) OVERRIDE; // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual void OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; diff --git a/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc b/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc index 9d706bc..36c4fba 100644 --- a/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc +++ b/ui/views/widget/desktop_aura/desktop_native_widget_aura.cc @@ -544,27 +544,26 @@ scoped_refptr<ui::Texture> DesktopNativeWidgetAura::CopyTexture() { //////////////////////////////////////////////////////////////////////////////// // DesktopNativeWidgetAura, ui::EventHandler implementation: -ui::EventResult DesktopNativeWidgetAura::OnKeyEvent(ui::KeyEvent* event) { +void DesktopNativeWidgetAura::OnKeyEvent(ui::KeyEvent* event) { if (event->is_char()) { // If a ui::InputMethod object is attached to the root window, character // events are handled inside the object and are not passed to this function. // If such object is not attached, character events might be sent (e.g. on // Windows). In this case, we just skip these. - return ui::ER_UNHANDLED; + return; } // Renderer may send a key event back to us if the key event wasn't handled, // and the window may be invisible by that time. if (!window_->IsVisible()) - return ui::ER_UNHANDLED; + return; - if (native_widget_delegate_->OnKeyEvent(*event)) - return ui::ER_HANDLED; + native_widget_delegate_->OnKeyEvent(event); + if (event->handled()) + return; if (GetWidget()->HasFocusManager() && !GetWidget()->GetFocusManager()->OnKeyEvent(*event)) - return ui::ER_HANDLED; - - return ui::ER_UNHANDLED; + event->SetHandled(); } ui::EventResult DesktopNativeWidgetAura::OnMouseEvent(ui::MouseEvent* event) { @@ -671,7 +670,8 @@ void DesktopNativeWidgetAura::OnWindowFocused(aura::Window* gained_focus, void DesktopNativeWidgetAura::DispatchKeyEventPostIME(const ui::KeyEvent& key) { FocusManager* focus_manager = native_widget_delegate_->AsWidget()->GetFocusManager(); - if (native_widget_delegate_->OnKeyEvent(key) || !focus_manager) + native_widget_delegate_->OnKeyEvent(const_cast<ui::KeyEvent*>(&key)); + if (key.handled() || !focus_manager) return; focus_manager->OnKeyEvent(key); } diff --git a/ui/views/widget/desktop_aura/desktop_native_widget_aura.h b/ui/views/widget/desktop_aura/desktop_native_widget_aura.h index b81c77b..38c5fad 100644 --- a/ui/views/widget/desktop_aura/desktop_native_widget_aura.h +++ b/ui/views/widget/desktop_aura/desktop_native_widget_aura.h @@ -171,7 +171,7 @@ class VIEWS_EXPORT DesktopNativeWidgetAura virtual scoped_refptr<ui::Texture> CopyTexture() OVERRIDE; // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual void OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; diff --git a/ui/views/widget/native_widget_aura.cc b/ui/views/widget/native_widget_aura.cc index 52c7748..e9b29c5 100644 --- a/ui/views/widget/native_widget_aura.cc +++ b/ui/views/widget/native_widget_aura.cc @@ -647,7 +647,8 @@ ui::NativeTheme* NativeWidgetAura::GetNativeTheme() const { void NativeWidgetAura::DispatchKeyEventPostIME(const ui::KeyEvent& key) { FocusManager* focus_manager = GetWidget()->GetFocusManager(); - if (delegate_->OnKeyEvent(key) || !focus_manager) + delegate_->OnKeyEvent(const_cast<ui::KeyEvent*>(&key)); + if (key.handled() || !focus_manager) return; focus_manager->OnKeyEvent(key); } @@ -768,20 +769,20 @@ scoped_refptr<ui::Texture> NativeWidgetAura::CopyTexture() { //////////////////////////////////////////////////////////////////////////////// // NativeWidgetAura, ui::EventHandler implementation: -ui::EventResult NativeWidgetAura::OnKeyEvent(ui::KeyEvent* event) { +void NativeWidgetAura::OnKeyEvent(ui::KeyEvent* event) { if (event->is_char()) { // If a ui::InputMethod object is attached to the root window, character // events are handled inside the object and are not passed to this function. // If such object is not attached, character events might be sent (e.g. on // Windows). In this case, we just skip these. - return ui::ER_UNHANDLED; + return; } // Renderer may send a key event back to us if the key event wasn't handled, // and the window may be invisible by that time. if (!window_->IsVisible()) - return ui::ER_UNHANDLED; + return; GetWidget()->GetInputMethod()->DispatchKeyEvent(*event); - return ui::ER_HANDLED; + event->SetHandled(); } ui::EventResult NativeWidgetAura::OnMouseEvent(ui::MouseEvent* event) { diff --git a/ui/views/widget/native_widget_aura.h b/ui/views/widget/native_widget_aura.h index 3910f61..1796fab 100644 --- a/ui/views/widget/native_widget_aura.h +++ b/ui/views/widget/native_widget_aura.h @@ -156,7 +156,7 @@ class VIEWS_EXPORT NativeWidgetAura virtual scoped_refptr<ui::Texture> CopyTexture() OVERRIDE; // Overridden from ui::EventHandler: - virtual ui::EventResult OnKeyEvent(ui::KeyEvent* event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual ui::EventResult OnMouseEvent(ui::MouseEvent* event) OVERRIDE; virtual void OnScrollEvent(ui::ScrollEvent* event) OVERRIDE; virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; diff --git a/ui/views/widget/native_widget_delegate.h b/ui/views/widget/native_widget_delegate.h index e23a8d5..a29b095 100644 --- a/ui/views/widget/native_widget_delegate.h +++ b/ui/views/widget/native_widget_delegate.h @@ -106,7 +106,7 @@ class VIEWS_EXPORT NativeWidgetDelegate { virtual int GetNonClientComponent(const gfx::Point& point) = 0; // Mouse and key event handlers. - virtual bool OnKeyEvent(const ui::KeyEvent& event) = 0; + virtual void OnKeyEvent(ui::KeyEvent* event) = 0; virtual bool OnMouseEvent(const ui::MouseEvent& event) = 0; virtual void OnMouseCaptureLost() = 0; diff --git a/ui/views/widget/native_widget_win.cc b/ui/views/widget/native_widget_win.cc index d83af80..061cb7a 100644 --- a/ui/views/widget/native_widget_win.cc +++ b/ui/views/widget/native_widget_win.cc @@ -764,7 +764,8 @@ bool NativeWidgetWin::HandleMouseEvent(const ui::MouseEvent& event) { } bool NativeWidgetWin::HandleKeyEvent(const ui::KeyEvent& event) { - return delegate_->OnKeyEvent(event); + delegate_->OnKeyEvent(const_cast<ui::KeyEvent*>(&event)); + return event.handled(); } bool NativeWidgetWin::HandleUntranslatedKeyEvent(const ui::KeyEvent& event) { diff --git a/ui/views/widget/root_view.cc b/ui/views/widget/root_view.cc index 03dc04a..5b0de0b 100644 --- a/ui/views/widget/root_view.cc +++ b/ui/views/widget/root_view.cc @@ -111,7 +111,7 @@ void RootView::NotifyNativeViewHierarchyChanged(bool attached, // Input ----------------------------------------------------------------------- -ui::EventResult RootView::DispatchKeyEvent(const ui::KeyEvent& event) { +void RootView::DispatchKeyEvent(ui::KeyEvent* event) { bool consumed = false; View* v = NULL; @@ -119,17 +119,19 @@ ui::EventResult RootView::DispatchKeyEvent(const ui::KeyEvent& event) { v = GetFocusManager()->GetFocusedView(); // Special case to handle right-click context menus triggered by the // keyboard. - if (v && v->enabled() && ((event.key_code() == ui::VKEY_APPS) || - (event.key_code() == ui::VKEY_F10 && event.IsShiftDown()))) { + if (v && v->enabled() && ((event->key_code() == ui::VKEY_APPS) || + (event->key_code() == ui::VKEY_F10 && event->IsShiftDown()))) { v->ShowContextMenu(v->GetKeyboardContextMenuLocation(), false); - return ui::ER_CONSUMED; + event->StopPropagation(); + return; } for (; v && v != this && !consumed; v = v->parent()) { - consumed = (event.type() == ui::ET_KEY_PRESSED) ? - v->OnKeyPressed(event) : v->OnKeyReleased(event); + consumed = (event->type() == ui::ET_KEY_PRESSED) ? + v->OnKeyPressed(*event) : v->OnKeyReleased(*event); } - return consumed ? ui::ER_CONSUMED : ui::ER_UNHANDLED; + if (consumed) + event->StopPropagation(); } void RootView::DispatchScrollEvent(ui::ScrollEvent* event) { diff --git a/ui/views/widget/root_view.h b/ui/views/widget/root_view.h index 1ee1b26..e8be227 100644 --- a/ui/views/widget/root_view.h +++ b/ui/views/widget/root_view.h @@ -61,7 +61,7 @@ class VIEWS_EXPORT RootView : public View, public FocusTraversable { // Process a key event. Send the event to the focused view and up the focus // path, and finally to the default keyboard handler, until someone consumes // it. Returns whether anyone consumed the event. - ui::EventResult DispatchKeyEvent(const ui::KeyEvent& event); + void DispatchKeyEvent(ui::KeyEvent* event); void DispatchScrollEvent(ui::ScrollEvent* event); void DispatchTouchEvent(ui::TouchEvent* event); virtual void DispatchGestureEvent(ui::GestureEvent* event); diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc index 4ecf46b..627e1cd 100644 --- a/ui/views/widget/widget.cc +++ b/ui/views/widget/widget.cc @@ -1111,10 +1111,10 @@ int Widget::GetNonClientComponent(const gfx::Point& point) { HTNOWHERE; } -bool Widget::OnKeyEvent(const ui::KeyEvent& event) { - ScopedEvent scoped(this, event); - return static_cast<internal::RootView*>(GetRootView())-> - DispatchKeyEvent(event) != ui::ER_UNHANDLED; +void Widget::OnKeyEvent(ui::KeyEvent* event) { + ScopedEvent scoped(this, *event); + static_cast<internal::RootView*>(GetRootView())-> + DispatchKeyEvent(event); } bool Widget::OnMouseEvent(const ui::MouseEvent& event) { diff --git a/ui/views/widget/widget.h b/ui/views/widget/widget.h index 93d258b..b74d0da 100644 --- a/ui/views/widget/widget.h +++ b/ui/views/widget/widget.h @@ -667,7 +667,7 @@ class VIEWS_EXPORT Widget : public internal::NativeWidgetDelegate, const gfx::Rect& dirty_region) OVERRIDE; virtual void OnNativeWidgetPaint(gfx::Canvas* canvas) OVERRIDE; virtual int GetNonClientComponent(const gfx::Point& point) OVERRIDE; - virtual bool OnKeyEvent(const ui::KeyEvent& event) OVERRIDE; + virtual void OnKeyEvent(ui::KeyEvent* event) OVERRIDE; virtual bool OnMouseEvent(const ui::MouseEvent& event) OVERRIDE; virtual void OnMouseCaptureLost() OVERRIDE; virtual void OnTouchEvent(ui::TouchEvent* event) OVERRIDE; diff --git a/ui/views/widget/widget_unittest.cc b/ui/views/widget/widget_unittest.cc index b57ccbd..5a001b8 100644 --- a/ui/views/widget/widget_unittest.cc +++ b/ui/views/widget/widget_unittest.cc @@ -1029,9 +1029,11 @@ TEST_F(WidgetTest, KeyboardInputEvent) { // The press gets handled. The release doesn't have an effect. ui::KeyEvent backspace_p(ui::ET_KEY_PRESSED, ui::VKEY_DELETE, 0, false); - EXPECT_TRUE(toplevel->OnKeyEvent(backspace_p)); + toplevel->OnKeyEvent(&backspace_p); + EXPECT_TRUE(backspace_p.stopped_propagation()); ui::KeyEvent backspace_r(ui::ET_KEY_RELEASED, ui::VKEY_DELETE, 0, false); - EXPECT_FALSE(toplevel->OnKeyEvent(backspace_r)); + toplevel->OnKeyEvent(&backspace_r); + EXPECT_FALSE(backspace_r.handled()); toplevel->Close(); } |