fixup! Replacing deprecated 'efl-assist' with 'efl-extension'
[platform/framework/web/chromium-efl.git] / tizen_src / ewk / efl_integration / browser / web_view_evas_handler.cc
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.
5
6 #include "browser/web_view_evas_handler.h"
7
8 #include "private/webview_delegate_ewk.h"
9
10 #include "eweb_view.h"
11
12 using content::SelectionControllerEfl;
13
14 namespace {
15
16 inline bool IsHardwareBackKey(const Evas_Event_Key_Up* event) {
17 #if defined(OS_TIZEN)
18   return (strcmp(event->key, "XF86Back") == 0 ||
19       strcmp(event->key, "XF86Stop") == 0);
20 #else
21   return (strcmp(event->key, "Escape") == 0);
22 #endif
23 }
24
25 }
26
27 WebViewEvasEventHandler::WebViewEvasEventHandler(EWebView* wv)
28     : webview_ (wv) {
29 }
30
31 bool WebViewEvasEventHandler::HandleEvent_FocusIn() {
32   return WebViewDelegateEwk::GetInstance().
33       RequestHandleEvent_FocusIn(webview_);
34 }
35
36 bool WebViewEvasEventHandler::HandleEvent_FocusOut() {
37   return WebViewDelegateEwk::GetInstance().
38       RequestHandleEvent_FocusOut(webview_);
39 }
40
41 bool WebViewEvasEventHandler::HandleEvent_KeyDown(
42     const Evas_Event_Key_Down* event_info) {
43   return WebViewDelegateEwk::GetInstance().
44       RequestHandleEvent_KeyDown(webview_, event_info);
45 }
46
47 bool WebViewEvasEventHandler::HandleEvent_KeyUp(
48     const Evas_Event_Key_Up* event_info) {
49   bool handled = WebViewDelegateEwk::GetInstance().
50       RequestHandleEvent_KeyUp(webview_, event_info);
51
52 #if defined(OS_TIZEN)
53   return handled;
54 #endif
55
56   if (handled)
57     return true;
58
59   if (IsHardwareBackKey(event_info))
60     return HandleEvent_HWBack();
61
62   return false;
63 }
64
65 bool WebViewEvasEventHandler::HandleEvent_MouseDown(
66     const Evas_Event_Mouse_Down* event_info) {
67   return WebViewDelegateEwk::GetInstance().
68       RequestHandleEvent_MouseDown(webview_, event_info);
69 }
70
71 bool WebViewEvasEventHandler::HandleEvent_MouseUp(
72     const Evas_Event_Mouse_Up* event_info) {
73   return WebViewDelegateEwk::GetInstance().
74       RequestHandleEvent_MouseUp(webview_, event_info);
75 }
76
77 bool WebViewEvasEventHandler::HandleEvent_MouseMove(
78     const Evas_Event_Mouse_Move* event_info) {
79   return WebViewDelegateEwk::GetInstance().
80       RequestHandleEvent_MouseMove(webview_, event_info);
81 }
82
83 bool WebViewEvasEventHandler::HandleEvent_MouseWheel(
84     const Evas_Event_Mouse_Wheel* event_info) {
85   return WebViewDelegateEwk::GetInstance().
86       RequestHandleEvent_MouseWheel(webview_, event_info);
87 }
88
89 bool WebViewEvasEventHandler::HandleEvent_HWBack() {
90   if (webview_->GetContextMenuController()) {
91     webview_->ResetContextMenuController();
92     if (webview_->GetSelectionController()->IsAnyHandleVisible())
93       webview_->GetSelectionController()->ClearSelectionViaEWebView();
94     return true;
95   }
96
97   if (webview_->IsFullscreen()) {
98     webview_->ExitFullscreen();
99     return true;
100   }
101
102 #if defined(OS_TIZEN_MOBILE)
103   // Tell the embedding APP to handle BACK HW.
104   webview_->SmartCallback<EWebViewCallbacks::HWBackUnhandled>().call();
105   return true;
106 #endif
107
108   return false;
109 }