diff options
author | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-12 22:24:15 +0000 |
---|---|---|
committer | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-12 22:24:15 +0000 |
commit | d60fc9b2832f4f652373c2cdb2cc80c1741efb36 (patch) | |
tree | 125ab70959752cfba63c6811c659da3dfb3048c0 /views/mouse_watcher.cc | |
parent | 802d1c9ae28ad60b8d0c7e0816fc04a30e33135c (diff) | |
download | chromium_src-d60fc9b2832f4f652373c2cdb2cc80c1741efb36.zip chromium_src-d60fc9b2832f4f652373c2cdb2cc80c1741efb36.tar.gz chromium_src-d60fc9b2832f4f652373c2cdb2cc80c1741efb36.tar.bz2 |
Mouse watcher for aura
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/8226025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@105171 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/mouse_watcher.cc')
-rw-r--r-- | views/mouse_watcher.cc | 32 |
1 files changed, 22 insertions, 10 deletions
diff --git a/views/mouse_watcher.cc b/views/mouse_watcher.cc index 3166f90..3891e87 100644 --- a/views/mouse_watcher.cc +++ b/views/mouse_watcher.cc @@ -9,6 +9,7 @@ #include "base/memory/weak_ptr.h" #include "base/message_loop.h" #include "base/task.h" +#include "ui/base/events.h" #include "ui/gfx/screen.h" #include "views/view.h" #include "views/widget/widget.h" @@ -54,16 +55,16 @@ class MouseWatcher::Observer : public MessageLoopForUI::Observer { // WM_NCMOUSELEAVE: // For notification when the mouse leaves the _non-client_ area. // - switch (event.message) { - case WM_MOUSEMOVE: - HandleGlobalMouseMoveEvent(false); - break; - case WM_MOUSELEAVE: - case WM_NCMOUSELEAVE: - HandleGlobalMouseMoveEvent(true); - break; + switch (event.message) { + case WM_MOUSEMOVE: + HandleGlobalMouseMoveEvent(false); + break; + case WM_MOUSELEAVE: + case WM_NCMOUSELEAVE: + HandleGlobalMouseMoveEvent(true); + break; + } } -} #elif defined(USE_WAYLAND) virtual MessageLoopForUI::Observer::EventStatus WillProcessEvent( ui::WaylandEvent* event) OVERRIDE { @@ -86,7 +87,18 @@ class MouseWatcher::Observer : public MessageLoopForUI::Observer { return base::EVENT_CONTINUE; } virtual void DidProcessEvent(const base::NativeEvent& event) OVERRIDE { - NOTIMPLEMENTED(); + switch (ui::EventTypeFromNative(event)) { + case ui::ET_MOUSE_MOVED: + case ui::ET_MOUSE_DRAGGED: + // DRAGGED is a special case of MOVED. See events_win.cc/events_x.cc. + HandleGlobalMouseMoveEvent(false); + break; + case ui::ET_MOUSE_EXITED: + HandleGlobalMouseMoveEvent(true); + break; + default: + break; + } } #elif defined(TOOLKIT_USES_GTK) virtual void WillProcessEvent(GdkEvent* event) OVERRIDE { |