#include "base/path_service.h"
#include "base/files/file_path.h"
#include "content/browser/renderer_host/render_widget_host_view_efl.h"
+#include "content/browser/renderer_host/web_event_factory_efl.h"
#include "content/common/paths_efl.h"
#include "ui/events/event.h"
#include "ui/gfx/screen.h"
}
#endif
-void _OnMouseUp(void* data, Evas*, Evas_Object* image, void* eventInfo) {
+void _OnMouseUp(void* data, Evas*, Evas_Object* image, void* event_info) {
Evas_Event_Mouse_Up* up_event =
- static_cast<Evas_Event_Mouse_Up*>(eventInfo);
-
+ static_cast<Evas_Event_Mouse_Up*>(event_info);
DisambiguationPopupEfl* disambiguation_popup =
static_cast<DisambiguationPopupEfl*>(data);
disambiguation_popup->HandleMouseEventUp(up_event);
- disambiguation_popup->Dismiss();
}
-void _OnMouseDown(void* data, Evas*,Evas_Object* image, void* eventInfo) {
+void _OnMouseDown(void* data, Evas*, Evas_Object* image, void* event_info) {
Evas_Event_Mouse_Down* down_event =
- static_cast<Evas_Event_Mouse_Down*>(eventInfo);
+ static_cast<Evas_Event_Mouse_Down*>(event_info);
DisambiguationPopupEfl* disambiguation_popup =
static_cast<DisambiguationPopupEfl*>(data);
disambiguation_popup->HandleMouseEventDown(down_event);
}
void DisambiguationPopupEfl::HandleMouseEventUp(Evas_Event_Mouse_Up* up_event) {
- HandleMouseEvent(up_event);
+ PrepareMouseEventForForward(up_event);
+ rwhv_->HandleDisambiguationPopupMouseUpEvent(up_event);
+ Dismiss();
}
void DisambiguationPopupEfl::HandleMouseEventDown(Evas_Event_Mouse_Down* down_event) {
- HandleMouseEvent(down_event);
+ PrepareMouseEventForForward(down_event);
+ rwhv_->HandleDisambiguationPopupMouseDownEvent(down_event);
}
template<class T>
-void DisambiguationPopupEfl::HandleMouseEvent(T* event) {
+void DisambiguationPopupEfl::PrepareMouseEventForForward(T* event) {
int image_x = 0, image_y = 0;
evas_object_geometry_get(content_image_, &image_x, &image_y, 0, 0);
GetPrimaryDisplay().device_scale_factor();
event->canvas.x = target_rect_x + (parent_view_x * device_scale_factor);
event->canvas.y = target_rect_y + (parent_view_y * device_scale_factor);
-
-#warning "[TODO] Add proper interface for this to RWHV"
- //rwhv_->HandleEvasEvent(event);
}
void DisambiguationPopupEfl::Dismissed(void* data, Evas_Object*, void*) {
disambiguation_popup_->Show(rect_pixels, zoomed_bitmap);
}
+void RenderWidgetHostViewEfl::HandleDisambiguationPopupMouseDownEvent(
+ Evas_Event_Mouse_Down* evas_event) {
+ blink::WebMouseEvent event = MakeWebMouseEvent(
+ blink::WebInputEvent::MouseDown, content_image_, evas_event);
+ host_->ForwardMouseEvent(event);
+}
+
+void RenderWidgetHostViewEfl::HandleDisambiguationPopupMouseUpEvent(
+ Evas_Event_Mouse_Up* evas_event) {
+ blink::WebMouseEvent event = MakeWebMouseEvent(
+ blink::WebInputEvent::MouseUp, content_image_, evas_event);
+ host_->ForwardMouseEvent(event);
+}
+
bool RenderWidgetHostViewEfl::CanDispatchToConsumer(ui::GestureConsumer* consumer) {
return this == consumer;
}