summaryrefslogtreecommitdiffstats
path: root/ui/aura/desktop.cc
diff options
context:
space:
mode:
authorderat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-11 21:36:41 +0000
committerderat@chromium.org <derat@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-11 21:36:41 +0000
commitbf74dd8cac9cea871b424af7edf05492ae7a3355 (patch)
treeaad5bb66312c3ae32c95d0a89aedf0dcf856c30d /ui/aura/desktop.cc
parent7c3228a4dc63c1c818a135c619fe256b91bf3989 (diff)
downloadchromium_src-bf74dd8cac9cea871b424af7edf05492ae7a3355.zip
chromium_src-bf74dd8cac9cea871b424af7edf05492ae7a3355.tar.gz
chromium_src-bf74dd8cac9cea871b424af7edf05492ae7a3355.tar.bz2
aura: Track mouse button state.
This removes a NOTIMPLEMENTED() in views::NativeWidgetPrivate::IsMouseButtonDown(). BUG=102577 TEST=added Review URL: http://codereview.chromium.org/8526020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@109703 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/aura/desktop.cc')
-rw-r--r--ui/aura/desktop.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/ui/aura/desktop.cc b/ui/aura/desktop.cc
index f502fde..010acf4 100644
--- a/ui/aura/desktop.cc
+++ b/ui/aura/desktop.cc
@@ -151,6 +151,7 @@ Desktop::Desktop()
stacking_client_(new DefaultStackingClient(this))),
ALLOW_THIS_IN_INITIALIZER_LIST(schedule_paint_factory_(this)),
active_window_(NULL),
+ mouse_button_flags_(0),
last_cursor_(kCursorNull),
in_destructor_(false),
screen_(new ScreenAura),
@@ -231,6 +232,11 @@ void Desktop::Draw() {
}
bool Desktop::DispatchMouseEvent(MouseEvent* event) {
+ static const int kMouseButtonFlagMask =
+ ui::EF_LEFT_BUTTON_DOWN |
+ ui::EF_MIDDLE_BUTTON_DOWN |
+ ui::EF_RIGHT_BUTTON_DOWN;
+
event->UpdateForTransform(layer()->transform());
last_mouse_location_ = event->location();
@@ -246,9 +252,11 @@ bool Desktop::DispatchMouseEvent(MouseEvent* event) {
case ui::ET_MOUSE_PRESSED:
if (!mouse_pressed_handler_)
mouse_pressed_handler_ = target;
+ mouse_button_flags_ = event->flags() & kMouseButtonFlagMask;
break;
case ui::ET_MOUSE_RELEASED:
mouse_pressed_handler_ = NULL;
+ mouse_button_flags_ = event->flags() & kMouseButtonFlagMask;
break;
default:
break;
@@ -399,6 +407,10 @@ void Desktop::RemoveObserver(DesktopObserver* observer) {
observers_.RemoveObserver(observer);
}
+bool Desktop::IsMouseButtonDown() const {
+ return mouse_button_flags_ != 0;
+}
+
void Desktop::SetCapture(Window* window) {
if (capture_window_ == window)
return;