#include "third_party/WebKit/public/web/WebInputEvent.h"
#include "third_party/WebKit/public/platform/WebScreenInfo.h"
#include "third_party/WebKit/public/web/WebTouchPoint.h"
+#include "ui/base/clipboard/clipboard_helper_efl.h"
#include "ui/base/layout.h"
+#include "ui/events/event_switches.h"
+#include "ui/events/event_utils.h"
+#define private public
+#include "ui/events/gestures/gesture_provider_aura.h"
+#undef private
+#include "ui/events/gestures/gesture_recognizer_impl_efl.h"
#include "ui/gfx/display.h"
#include "ui/gfx/geometry/dip_util.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/screen.h"
-#include "ui/events/event_utils.h"
#include "ui/gl/gl_shared_context_efl.h"
-#include "ui/base/clipboard/clipboard_helper_efl.h"
-#include "ui/events/event_switches.h"
#define EFL_MAX_WIDTH 10000
#define EFL_MAX_HEIGHT 10000 // borrowed from GTK+ port
selection_acked_on_tap_(false),
was_scrolled_(false) {
+ // Enable double tap support, disabled by default in GestureProviderAura ctor.
+ ui::GestureRecognizerImplEfl* gesture_recognizer_efl =
+ static_cast<ui::GestureRecognizerImplEfl*>(gesture_recognizer_.get());
+ DCHECK(gesture_recognizer_efl);
+ ui::GestureProviderAura* gesture_provider_aura =
+ gesture_recognizer_efl->GetGestureProviderForConsumer(this);
+ gesture_provider_aura->filtered_gesture_provider_.SetDoubleTapSupportForPlatformEnabled(true);
+
device_scale_factor_ = gfx::Screen::GetNativeScreen()->
GetPrimaryDisplay().device_scale_factor();
--- /dev/null
+// Copyright 2015 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ui/events/gestures/gesture_recognizer_impl_efl.h"
+
+#include "ui/events/gestures/gesture_recognizer_impl.h"
+#include "ui/events/gestures/gesture_recognizer.h"
+
+namespace ui {
+
+// The two methods below are originally defined in
+// ui/events/gestures/gesture_recognizer_impl.cc. The reason
+// for EFL port to redefine them are:
+// 1) ::Create method instantiates our own GestureRegnizerImplEfl,
+// instead of its parent GestureRecognizerImpl.
+// See gesture_recognizer_impl_override.cc.
+// 2) In GestureRegnizerImplEfl, ::GetGestureProviderForConsumer method
+// is overloaded and made public. In practice, it just calls its
+// parent class implementation.
+//
+// We use the getter to access the instance of GestureProviderAura
+// object associated with GestureRecognizer{Impl}. Further customizations
+// are then possible, including enabling double tap support.
+
+GestureProviderAura* GestureRecognizerImplEfl::GetGestureProviderForConsumer(
+ GestureConsumer* c) {
+ return GestureRecognizerImpl::GetGestureProviderForConsumer(c);
+}
+
+// GestureRecognizer, static
+GestureRecognizer* GestureRecognizer::Create() {
+ return new GestureRecognizerImplEfl();
+}
+
+} // namespace ui
+
--- /dev/null
+// Copyright 2015 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_EVENTS_GESTURES_GESTURE_RECOGNIZER_IMPL_EFL_H_
+#define UI_EVENTS_GESTURES_GESTURE_RECOGNIZER_IMPL_EFL_H_
+
+#include "ui/events/gestures/gesture_recognizer_impl.h"
+
+namespace ui {
+class GestureConsumer;
+
+class EVENTS_EXPORT GestureRecognizerImplEfl : public GestureRecognizerImpl {
+ public:
+
+ GestureProviderAura* GetGestureProviderForConsumer(
+ GestureConsumer* c) override;
+};
+
+} // namespace ui
+
+#endif // UI_EVENTS_GESTURES_GESTURE_RECOGNIZER_IMPL_EFL_H_
--- /dev/null
+// Copyright 2015 Samsung Electronics. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Define "Create" method to something else, because we want to have our own.
+#define Create not_Create
+#include "ui/events/gestures/gesture_recognizer_impl.cc"
'target_name': 'ui_events_source_inject',
'type': 'static_library',
'sources': [
- '<(DEPTH)/ui/events/gestures/gesture_recognizer_impl.cc',
- '<(DEPTH)/ui/events/gestures/gesture_recognizer_impl.h',
+ # Indirectly includes ui/events/gestures/gesture_recognizer_impl_efl.cc/h.
+ 'events/gestures/gesture_recognizer_impl_override.cc',
+ 'events/gestures/gesture_recognizer_impl_efl.cc',
+ 'events/gestures/gesture_recognizer_impl_efl.h',
'<(DEPTH)/ui/events/gestures/gesture_provider_aura.cc',
'<(DEPTH)/ui/events/gestures/gesture_provider_aura.h',
'<(DEPTH)/ui/events/gestures/motion_event_aura.cc',