Revert "Revert "[Regression] Make scrolling work with mouse events support""
[platform/framework/web/webkit-efl.git] / Source / WebKit2 / UIProcess / API / efl / tizen / GestureRecognizer.cpp
index 1218baf..5a255bb 100644 (file)
 #include "config.h"
 #include "GestureRecognizer.h"
 
+#if ENABLE(TIZEN_DESKTOP_BROWSING)
+#include "NativeWebMouseEvent.h"
+#endif
+
 #include <WebCore/IntSize.h>
 #include <WebCore/IntPoint.h>
 
@@ -86,6 +90,11 @@ GestureRecognizer::~GestureRecognizer()
         evas_object_del(m_gestureObject);
 
     evas_object_event_callback_del(m_viewWidget, EVAS_CALLBACK_MOUSE_UP, onMouseUp);
+
+#if ENABLE(TIZEN_DESKTOP_BROWSING)
+    evas_object_event_callback_del(m_viewWidget, EVAS_CALLBACK_MOUSE_MOVE, onMouseMove);
+    evas_object_event_callback_del(m_viewWidget, EVAS_CALLBACK_MOUSE_DOWN, onMouseDown);
+#endif
 }
 
 void GestureRecognizer::initializeCallbacks()
@@ -112,6 +121,11 @@ void GestureRecognizer::initializeCallbacks()
 
     // add evas callbacks.
     evas_object_event_callback_add(m_viewWidget, EVAS_CALLBACK_MOUSE_UP, onMouseUp, this);
+
+#if ENABLE(TIZEN_DESKTOP_BROWSING)
+    evas_object_event_callback_add(m_viewWidget, EVAS_CALLBACK_MOUSE_MOVE, onMouseMove, this);
+    evas_object_event_callback_add(m_viewWidget, EVAS_CALLBACK_MOUSE_DOWN, onMouseDown, this);
+#endif
 }
 
 Evas_Event_Flags GestureRecognizer::onTapStart(void* data, void* eventInfo)
@@ -190,11 +204,44 @@ Evas_Event_Flags GestureRecognizer::onZoomStart(void* data, void* eventInfo)
     return EVAS_EVENT_FLAG_NONE;
 }
 
-void GestureRecognizer::onMouseUp(void* data, Evas*, Evas_Object*, void* eventInfo)
+void GestureRecognizer::onMouseUp(void* data, Evas*, Evas_Object* ewkView, void* eventInfo)
 {
     Evas_Event_Mouse_Up* event = static_cast<Evas_Event_Mouse_Up*>(eventInfo);
     static_cast<GestureRecognizer*>(data)->processScheduledTap(event->canvas.x, event->canvas.y, event->timestamp);
+
+#if ENABLE(TIZEN_DESKTOP_BROWSING)
+    Ewk_View_Smart_Data* smartData = 0;
+    smartData = (Ewk_View_Smart_Data*)evas_object_smart_data_get(ewkView);
+    EwkViewImpl* impl = smartData->priv;
+
+    impl->page()->handleMouseEvent(NativeWebMouseEvent(event, impl->transformFromScene(), impl->transformToScreen()));
+#endif
+}
+
+#if ENABLE(TIZEN_DESKTOP_BROWSING)
+void GestureRecognizer::onMouseDown(void* data, Evas*, Evas_Object* ewkView, void* eventInfo)
+{
+    Evas_Event_Mouse_Down* event = static_cast<Evas_Event_Mouse_Down*>(eventInfo);
+
+    Ewk_View_Smart_Data* smartData = 0;
+    smartData = (Ewk_View_Smart_Data*)evas_object_smart_data_get(ewkView);
+    EwkViewImpl* impl = smartData->priv;
+
+    impl->page()->handleMouseEvent(NativeWebMouseEvent(event, impl->transformFromScene(), impl->transformToScreen()));
+
+}
+
+void GestureRecognizer::onMouseMove(void* data, Evas*, Evas_Object* ewkView, void* eventInfo)
+{
+    Evas_Event_Mouse_Move* event = static_cast<Evas_Event_Mouse_Move*>(eventInfo);
+
+    Ewk_View_Smart_Data* smartData = 0;
+    smartData = (Ewk_View_Smart_Data*)evas_object_smart_data_get(ewkView);
+    EwkViewImpl* impl = smartData->priv;
+
+    impl->page()->handleMouseEvent(NativeWebMouseEvent(event, impl->transformFromScene(), impl->transformToScreen()));
 }
+#endif
 
 void GestureRecognizer::startTap(Elm_Gesture_Taps_Info* event)
 {