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 "tw_webview_evas_event_handler.h"
8 #include "tizen_webview/public/tw_webview_delegate.h"
10 #include "eweb_view.h"
13 inline bool isHardwareBackKey(const Evas_Event_Key_Down *event) {
15 return (strcmp(event->key, "XF86Stop") == 0);
17 return (strcmp(event->key, "Escape") == 0);
22 namespace tizen_webview {
24 WebViewEvasEventHandler::WebViewEvasEventHandler(WebView* wv)
28 bool WebViewEvasEventHandler::HandleEvent_FocusIn() {
29 WebViewDelegate* wvd = WebViewDelegate::GetInstance();
32 return wvd->RequestHandleEvent_FocusIn(webview_);
35 bool WebViewEvasEventHandler::HandleEvent_FocusOut() {
36 WebViewDelegate* wvd = WebViewDelegate::GetInstance();
39 return wvd->RequestHandleEvent_FocusOut(webview_);
42 bool WebViewEvasEventHandler::HandleEvent_KeyDown(const Evas_Event_Key_Down* event_info) {
45 WebViewDelegate* wvd = WebViewDelegate::GetInstance();
47 handled = wvd->RequestHandleEvent_KeyDown(webview_, event_info);
52 if (isHardwareBackKey(event_info)) {
53 if (webview_->GetContextMenuController()) {
54 DVLOG(1) << "Hiding context menu due to back key press";
55 webview_->ResetContextMenuController();
56 webview_->HideSelectionHandlers();
59 if (webview_->GetSelectionController()->IsAnyHandleVisible()) {
60 DVLOG(1) << "Clearing text selection due to back key press";
61 webview_->ClearSelection();
68 bool WebViewEvasEventHandler::HandleEvent_KeyUp(const Evas_Event_Key_Up* event_info) {
70 WebViewDelegate* wvd = WebViewDelegate::GetInstance();
73 return wvd->RequestHandleEvent_KeyUp(webview_, event_info);
76 bool WebViewEvasEventHandler::HandleEvent_MouseDown(const Evas_Event_Mouse_Down* event_info) {
77 WebViewDelegate* wvd = WebViewDelegate::GetInstance();
80 return wvd->RequestHandleEvent_MouseDown(webview_, event_info);
83 bool WebViewEvasEventHandler::HandleEvent_MouseUp(const Evas_Event_Mouse_Up* event_info) {
84 WebViewDelegate* wvd = WebViewDelegate::GetInstance();
87 return wvd->RequestHandleEvent_MouseUp(webview_, event_info);
90 bool WebViewEvasEventHandler::HandleEvent_MouseMove(const Evas_Event_Mouse_Move* event_info) {
91 WebViewDelegate* wvd = WebViewDelegate::GetInstance();
94 return wvd->RequestHandleEvent_MouseMove(webview_, event_info);
97 bool WebViewEvasEventHandler::HandleEvent_MouseWheel(const Evas_Event_Mouse_Wheel* event_info) {
98 WebViewDelegate* wvd = WebViewDelegate::GetInstance();
101 return wvd->RequestHandleEvent_MouseWheel(webview_, event_info);
104 } // namespace tizen_webview