Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(192)

Unified Diff: ash/aura/pointer_watcher_adapter.cc

Issue 2271393002: Wires up drags to pointer watcher adapter. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@lkgr
Patch Set: Rebased. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/aura/pointer_watcher_adapter.cc
diff --git a/ash/aura/pointer_watcher_adapter.cc b/ash/aura/pointer_watcher_adapter.cc
index c2e3c8c1f2c329570ab796694077151827095a9b..ccb559f7f41427877fbd473b91fc4a66d03d1074 100644
--- a/ash/aura/pointer_watcher_adapter.cc
+++ b/ash/aura/pointer_watcher_adapter.cc
@@ -24,32 +24,36 @@ PointerWatcherAdapter::~PointerWatcherAdapter() {
Shell::GetInstance()->RemovePreTargetHandler(this);
}
-void PointerWatcherAdapter::AddPointerWatcher(views::PointerWatcher* watcher,
- bool wants_moves) {
+void PointerWatcherAdapter::AddPointerWatcher(
+ views::PointerWatcher* watcher,
+ views::PointerWatcherEventTypes events) {
// We only allow a watcher to be added once. That is, we don't consider
- // the pair of |watcher| and |wants_move| unique, just |watcher|.
- if (wants_moves) {
- DCHECK(!non_move_watchers_.HasObserver(watcher));
+ // the pair of |watcher| and |events| unique, just |watcher|.
+ DCHECK(!non_move_watchers_.HasObserver(watcher));
+ DCHECK(!move_watchers_.HasObserver(watcher));
+ DCHECK(!drag_watchers_.HasObserver(watcher));
+ if (events == views::PointerWatcherEventTypes::DRAGS)
+ drag_watchers_.AddObserver(watcher);
+ else if (events == views::PointerWatcherEventTypes::MOVES)
move_watchers_.AddObserver(watcher);
- } else {
- DCHECK(!move_watchers_.HasObserver(watcher));
+ else
non_move_watchers_.AddObserver(watcher);
- }
}
void PointerWatcherAdapter::RemovePointerWatcher(
views::PointerWatcher* watcher) {
non_move_watchers_.RemoveObserver(watcher);
move_watchers_.RemoveObserver(watcher);
+ drag_watchers_.RemoveObserver(watcher);
}
void PointerWatcherAdapter::OnMouseEvent(ui::MouseEvent* event) {
- // For compatibility with the mus version, don't send drags.
if (event->type() != ui::ET_MOUSE_PRESSED &&
event->type() != ui::ET_MOUSE_RELEASED &&
event->type() != ui::ET_MOUSE_MOVED &&
event->type() != ui::ET_MOUSEWHEEL &&
- event->type() != ui::ET_MOUSE_CAPTURE_CHANGED)
+ event->type() != ui::ET_MOUSE_CAPTURE_CHANGED &&
+ event->type() != ui::ET_MOUSE_DRAGGED)
return;
DCHECK(ui::PointerEvent::CanConvertFrom(*event));
@@ -57,9 +61,9 @@ void PointerWatcherAdapter::OnMouseEvent(ui::MouseEvent* event) {
}
void PointerWatcherAdapter::OnTouchEvent(ui::TouchEvent* event) {
- // For compatibility with the mus version, don't send drags.
if (event->type() != ui::ET_TOUCH_PRESSED &&
- event->type() != ui::ET_TOUCH_RELEASED)
+ event->type() != ui::ET_TOUCH_RELEASED &&
+ event->type() != ui::ET_TOUCH_MOVED)
return;
DCHECK(ui::PointerEvent::CanConvertFrom(*event));
@@ -92,8 +96,14 @@ void PointerWatcherAdapter::NotifyWatchers(
const gfx::Point screen_location(GetLocationInScreen(original_event));
views::Widget* target_widget = GetTargetWidget(original_event);
FOR_EACH_OBSERVER(
- views::PointerWatcher, move_watchers_,
+ views::PointerWatcher, drag_watchers_,
OnPointerEventObserved(event, screen_location, target_widget));
+ if (original_event.type() != ui::ET_TOUCH_MOVED &&
+ original_event.type() != ui::ET_MOUSE_DRAGGED) {
+ FOR_EACH_OBSERVER(
+ views::PointerWatcher, move_watchers_,
+ OnPointerEventObserved(event, screen_location, target_widget));
+ }
if (event.type() != ui::ET_POINTER_MOVED) {
FOR_EACH_OBSERVER(
views::PointerWatcher, non_move_watchers_,

Powered by Google App Engine
This is Rietveld 408576698