1 // Copyright (c) 2014 The Chromium Authors. All rights reserved.
2 // Copyright 2014 Samsung Electronics. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
6 #include "browser/web_view_evas_handler.h"
8 #include "private/webview_delegate_ewk.h"
10 #include "eweb_view.h"
12 using content::SelectionControllerEfl;
16 inline bool IsHardwareBackKey(const Evas_Event_Key_Up* event) {
18 return (strcmp(event->key, "XF86Back") == 0 ||
19 strcmp(event->key, "XF86Stop") == 0);
21 return (strcmp(event->key, "Escape") == 0);
27 WebViewEvasEventHandler::WebViewEvasEventHandler(EWebView* wv)
31 bool WebViewEvasEventHandler::HandleEvent_FocusIn() {
32 return WebViewDelegateEwk::GetInstance().
33 RequestHandleEvent_FocusIn(webview_);
36 bool WebViewEvasEventHandler::HandleEvent_FocusOut() {
37 return WebViewDelegateEwk::GetInstance().
38 RequestHandleEvent_FocusOut(webview_);
41 bool WebViewEvasEventHandler::HandleEvent_KeyDown(
42 const Evas_Event_Key_Down* event_info) {
43 return WebViewDelegateEwk::GetInstance().
44 RequestHandleEvent_KeyDown(webview_, event_info);
47 bool WebViewEvasEventHandler::HandleEvent_KeyUp(
48 const Evas_Event_Key_Up* event_info) {
49 bool handled = WebViewDelegateEwk::GetInstance().
50 RequestHandleEvent_KeyUp(webview_, event_info);
59 if (IsHardwareBackKey(event_info))
60 return HandleEvent_HWBack();
65 bool WebViewEvasEventHandler::HandleEvent_MouseDown(
66 const Evas_Event_Mouse_Down* event_info) {
67 return WebViewDelegateEwk::GetInstance().
68 RequestHandleEvent_MouseDown(webview_, event_info);
71 bool WebViewEvasEventHandler::HandleEvent_MouseUp(
72 const Evas_Event_Mouse_Up* event_info) {
73 return WebViewDelegateEwk::GetInstance().
74 RequestHandleEvent_MouseUp(webview_, event_info);
77 bool WebViewEvasEventHandler::HandleEvent_MouseMove(
78 const Evas_Event_Mouse_Move* event_info) {
79 return WebViewDelegateEwk::GetInstance().
80 RequestHandleEvent_MouseMove(webview_, event_info);
83 bool WebViewEvasEventHandler::HandleEvent_MouseWheel(
84 const Evas_Event_Mouse_Wheel* event_info) {
85 return WebViewDelegateEwk::GetInstance().
86 RequestHandleEvent_MouseWheel(webview_, event_info);
89 bool WebViewEvasEventHandler::HandleEvent_HWBack() {
90 if (webview_->GetContextMenuController()) {
91 webview_->ResetContextMenuController();
92 if (webview_->GetSelectionController()->IsAnyHandleVisible())
93 webview_->GetSelectionController()->ClearSelectionViaEWebView();
97 if (webview_->IsFullscreen()) {
98 webview_->ExitFullscreen();
102 #if defined(OS_TIZEN_MOBILE)
103 // Tell the embedding APP to handle BACK HW.
104 webview_->SmartCallback<EWebViewCallbacks::HWBackUnhandled>().call();