summaryrefslogtreecommitdiffstats
path: root/views/mouse_watcher.cc
diff options
context:
space:
mode:
authoroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-12 22:24:15 +0000
committeroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-12 22:24:15 +0000
commitd60fc9b2832f4f652373c2cdb2cc80c1741efb36 (patch)
tree125ab70959752cfba63c6811c659da3dfb3048c0 /views/mouse_watcher.cc
parent802d1c9ae28ad60b8d0c7e0816fc04a30e33135c (diff)
downloadchromium_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.cc32
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 {