Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / ash / wm / system_gesture_event_filter.cc
index ccf81e7..d23325d 100644 (file)
@@ -7,19 +7,20 @@
 #include "ash/accelerators/accelerator_controller.h"
 #include "ash/accelerators/accelerator_table.h"
 #include "ash/ash_switches.h"
+#include "ash/metrics/user_metrics_recorder.h"
 #include "ash/root_window_controller.h"
 #include "ash/shell.h"
-#include "ash/shell_delegate.h"
 #include "ash/shell_window_ids.h"
 #include "ash/wm/gestures/long_press_affordance_handler.h"
 #include "ash/wm/gestures/overview_gesture_handler.h"
+#include "ash/wm/gestures/shelf_gesture_handler.h"
 #include "ash/wm/gestures/system_pinch_handler.h"
-#include "ash/wm/gestures/two_finger_drag_handler.h"
 #include "ash/wm/window_util.h"
 #include "base/command_line.h"
 #include "ui/aura/root_window.h"
 #include "ui/base/ui_base_switches.h"
 #include "ui/events/event.h"
+#include "ui/events/event_constants.h"
 
 #if defined(OS_CHROMEOS)
 #include "ui/events/x/touch_factory_x11.h"
@@ -45,7 +46,7 @@ SystemGestureEventFilter::SystemGestureEventFilter()
     : system_gestures_enabled_(CommandLine::ForCurrentProcess()->
           HasSwitch(ash::switches::kAshEnableAdvancedGestures)),
       long_press_affordance_(new LongPressAffordanceHandler),
-      two_finger_drag_(new TwoFingerDragHandler) {
+      shelf_gesture_handler_(new ShelfGestureHandler()) {
   if (switches::UseOverviewMode())
     overview_gesture_handler_.reset(new OverviewGestureHandler);
 }
@@ -58,8 +59,7 @@ void SystemGestureEventFilter::OnMouseEvent(ui::MouseEvent* event) {
   if (event->type() == ui::ET_MOUSE_PRESSED && event->native_event() &&
       ui::TouchFactory::GetInstance()->IsTouchDevicePresent() &&
       Shell::GetInstance()->delegate()) {
-    Shell::GetInstance()->delegate()->RecordUserMetricsAction(
-      UMA_MOUSE_DOWN);
+    Shell::GetInstance()->metrics()->RecordUserMetricsAction(UMA_MOUSE_DOWN);
   }
 #endif
 }
@@ -75,22 +75,21 @@ void SystemGestureEventFilter::OnScrollEvent(ui::ScrollEvent* event) {
 void SystemGestureEventFilter::OnTouchEvent(ui::TouchEvent* event) {
   aura::Window* target = static_cast<aura::Window*>(event->target());
   ash::TouchUMA::GetInstance()->RecordTouchEvent(target, *event);
-  long_press_affordance_->ProcessEvent(target, event, event->touch_id());
 }
 
 void SystemGestureEventFilter::OnGestureEvent(ui::GestureEvent* event) {
   aura::Window* target = static_cast<aura::Window*>(event->target());
   ash::TouchUMA::GetInstance()->RecordGestureEvent(target, *event);
-  long_press_affordance_->ProcessEvent(target, event,
-      event->GetLowestTouchId());
+  long_press_affordance_->ProcessEvent(target, event);
 
-  if (two_finger_drag_->ProcessGestureEvent(target, *event)) {
+  if (overview_gesture_handler_ &&
+      overview_gesture_handler_->ProcessGestureEvent(*event)) {
     event->StopPropagation();
     return;
   }
 
-  if (overview_gesture_handler_ &&
-      overview_gesture_handler_->ProcessGestureEvent(*event)) {
+  if (event->type() == ui::ET_GESTURE_WIN8_EDGE_SWIPE &&
+      shelf_gesture_handler_->ProcessGestureEvent(*event)) {
     event->StopPropagation();
     return;
   }