*/
boost::signals2::signal<void (basic_webengine::WebConfirmationPtr)> confirmationRequest;
- /**
- * Web Engine area clicked
- */
- boost::signals2::signal<void ()> webViewClicked;
-
/**
* All links to RSS/Atom channels were gathered from webpage.
*/
m_webPageUI->showQuickAccess.connect(boost::bind(&SimpleUI::showQuickAccess, this));
m_webPageUI->hideQuickAccess.connect(boost::bind(&QuickAccess::hideUI, m_quickAccess));
m_webPageUI->bookmarkManagerClicked.connect(boost::bind(&SimpleUI::showBookmarkManagerUI, this));
+ m_webPageUI->focusWebView.connect(boost::bind(&tizen_browser::basic_webengine::AbstractWebEngine<Evas_Object>::setFocus, m_webEngine.get()));
+ m_webPageUI->unfocusWebView.connect(boost::bind(&tizen_browser::basic_webengine::AbstractWebEngine<Evas_Object>::clearFocus, m_webEngine.get()));
#if PROFILE_MOBILE
m_webPageUI->hideMoreMenu.connect(boost::bind(&SimpleUI::closeMoreMenu, this));
m_webPageUI->getURIEntry().mobileEntryFocused.connect(boost::bind(&WebPageUI::mobileEntryFocused, m_webPageUI));
m_webEngine->uriChanged.connect(boost::bind(&SimpleUI::webEngineURLChanged, this, _1));
m_webEngine->uriChanged.connect(boost::bind(&URIEntry::changeUri, &m_webPageUI->getURIEntry(), _1));
m_webEngine->downloadStarted.connect(boost::bind(&SimpleUI::downloadStarted, this, _1));
- m_webEngine->webViewClicked.connect(boost::bind(&URIEntry::clearFocus, &m_webPageUI->getURIEntry()));
m_webEngine->backwardEnableChanged.connect(boost::bind(&WebPageUI::setBackButtonEnabled, m_webPageUI.get(), _1));
m_webEngine->forwardEnableChanged.connect(boost::bind(&WebPageUI::setForwardButtonEnabled, m_webPageUI.get(), _1));
m_webEngine->loadStarted.connect(boost::bind(&SimpleUI::loadStarted, this));
webView->forwardEnableChanged.connect(boost::bind(&WebEngineService::_forwardEnableChanged, this, _1));
webView->backwardEnableChanged.connect(boost::bind(&WebEngineService::_backwardEnableChanged, this, _1));
webView->confirmationRequest.connect(boost::bind(&WebEngineService::_confirmationRequest, this, _1));
- webView->ewkViewClicked.connect(boost::bind(&WebEngineService::webViewClicked, this));
webView->IMEStateChanged.connect(boost::bind(&WebEngineService::_IMEStateChanged, this, _1));
webView->snapshotCaptured.connect(boost::bind(&WebEngineService::_snapshotCaptured, this, _1, _2));
webView->redirectedWebPage.connect(boost::bind(&WebEngineService::_redirectedWebPage, this, _1, _2));
webView->forwardEnableChanged.disconnect(boost::bind(&WebEngineService::_forwardEnableChanged, this, _1));
webView->backwardEnableChanged.disconnect(boost::bind(&WebEngineService::_backwardEnableChanged, this, _1));
webView->confirmationRequest.disconnect(boost::bind(&WebEngineService::_confirmationRequest, this, _1));
- webView->ewkViewClicked.disconnect(boost::bind(&WebEngineService::webViewClicked, this));
webView->IMEStateChanged.disconnect(boost::bind(&WebEngineService::_IMEStateChanged, this, _1));
webView->redirectedWebPage.disconnect(boost::bind(&WebEngineService::_redirectedWebPage, this, _1, _2));
#if PROFILE_MOBILE
return std::make_shared<tizen_browser::tools::BrowserImage>();
}
-void WebEngineService::webViewClicked()
-{
- AbstractWebEngine::webViewClicked();
-}
-
#if PROFILE_MOBILE
void WebEngineService::setWebViewSettings(std::shared_ptr<WebView> webView) {
webView->ewkSettingsAutoFittingSet(m_settings[WebEngineSettings::PAGE_OVERVIEW]);
void _IMEStateChanged(bool);
void _snapshotCaptured(std::shared_ptr<tizen_browser::tools::BrowserImage> snapshot, tools::SnapshotType snapshot_type);
void _redirectedWebPage(const std::string& oldUrl, const std::string& newUrl);
- void webViewClicked();
void _setCertificatePem(const std::string& uri, const std::string& pem);
void _setWrongCertificatePem(const std::string& uri, const std::string& pem);
#if PROFILE_MOBILE
evas_object_smart_callback_add(m_ewkView, "request,certificate,confirm", __requestCertificationConfirm, this);
evas_object_smart_callback_add(m_ewkView, "ssl,certificate,changed", __setCertificatePem, this);
- evas_object_event_callback_add(m_ewkView, EVAS_CALLBACK_MOUSE_DOWN, __setFocusToEwkView, this);
evas_object_smart_callback_add(m_ewkView, "icon,received", __faviconChanged, this);
evas_object_smart_callback_add(m_ewkView, "editorclient,ime,closed", __IMEClosed, this);
#endif
evas_object_smart_callback_del_full(m_ewkView, "request,certificate,confirm", __requestCertificationConfirm, this);
- evas_object_event_callback_del(m_ewkView, EVAS_CALLBACK_MOUSE_DOWN, __setFocusToEwkView);
evas_object_smart_callback_del_full(m_ewkView, "icon,received", __faviconChanged, this);
evas_object_smart_callback_del_full(m_ewkView, "editorclient,ime,closed", __IMEClosed, this);
snapshot_data->web_view->snapshotCaptured(std::make_shared<tools::BrowserImage>(image), snapshot_data->snapshot_type);
}
-void WebView::__setFocusToEwkView(void * data, Evas * /* e */, Evas_Object * /* obj */, void * /* event_info */)
-{
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
-
- WebView * self = reinterpret_cast<WebView *>(data);
-
- if(!self->hasFocus())
- self->ewkViewClicked();
-}
-
void WebView::__newWindowRequest(void *data, Evas_Object *, void *out)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
boost::signals2::signal<void (WebConfirmationPtr)> confirmationRequest;
- boost::signals2::signal<void ()> ewkViewClicked;
-
boost::signals2::signal<void (bool)> IMEStateChanged;
boost::signals2::signal<void ()> switchToWebPage;
void unregisterCallbacks();
void setupEwkSettings();
- static void __setFocusToEwkView(void * data, Evas * e, Evas_Object * obj, void * event_info);
static void __newWindowRequest(void * data, Evas_Object *, void *out);
static void __closeWindowRequest(void * data, Evas_Object *, void *);
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
M_ASSERT(content);
hideWebView();
- elm_object_part_content_set(m_mainLayout, "web_view", content);
+ elm_object_part_content_set(m_dummy_button, "overlay", content);
#if PROFILE_MOBILE && GESTURE
elm_gesture_layer_attach(m_gestureLayer, content);
#endif
evas_object_size_hint_weight_set(m_mainLayout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_layout_file_set(m_mainLayout, edjePath("WebPageUI/WebPageUI.edj").c_str(), "main_layout");
+ m_dummy_button = elm_bg_add(m_mainLayout);
+ evas_object_size_hint_align_set(m_dummy_button, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_size_hint_weight_set(m_dummy_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_object_focus_allow_set(m_dummy_button, EINA_TRUE);
+ elm_object_focus_set(m_dummy_button, EINA_TRUE);
+ evas_object_show(m_dummy_button);
+ elm_object_part_content_set(m_mainLayout, "web_view", m_dummy_button);
+
+ evas_object_smart_callback_add(m_dummy_button, "focused", _dummy_button_focused, this);
+ evas_object_smart_callback_add(m_dummy_button, "unfocused", _dummy_button_unfocused, this);
+
createErrorLayout();
createPrivateLayout();
createActions();
#endif
}
+void WebPageUI::_dummy_button_focused(void *data, Evas_Object *, void *)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ WebPageUI* webPageUI = static_cast<WebPageUI*>(data);
+ webPageUI->focusWebView();
+}
+
+void WebPageUI::_dummy_button_unfocused(void *data, Evas_Object *, void *)
+{
+ BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+ WebPageUI* webPageUI = static_cast<WebPageUI*>(data);
+ webPageUI->unfocusWebView();
+}
+
void WebPageUI::createErrorLayout()
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
evas_object_hide(elm_object_part_content_get(m_mainLayout, "web_view"));
- elm_object_part_content_unset(m_mainLayout, "web_view");
+ elm_object_part_content_unset(m_mainLayout, "overlay");
}
void WebPageUI::setErrorButtons()
boost::signals2::signal<void ()> hideQuickAccess;
boost::signals2::signal<void ()> showQuickAccess;
boost::signals2::signal<void ()> bookmarkManagerClicked;
+ boost::signals2::signal<void ()> focusWebView;
+ boost::signals2::signal<void ()> unfocusWebView;
private:
static void faviconClicked(void* data, Evas_Object* obj, const char* emission, const char* source);
static Eina_Bool _cb_down_pressed_on_urlbar(void *data, Evas_Object *obj, Evas_Object *src, Evas_Callback_Type type, void *event_info);
static void _bookmark_manager_clicked(void * data, Evas_Object *, void *);
+ static void _dummy_button_focused(void *data, Evas_Object *, void *);
+ static void _dummy_button_unfocused(void *data, Evas_Object *, void *);
#if PROFILE_MOBILE
static void _more_menu_background_clicked(void* data, Evas_Object*, const char*, const char*);
static void _content_clicked(void * data, Evas_Object *, void *);
Evas_Object* m_parent;
Evas_Object* m_mainLayout;
+ Evas_Object* m_dummy_button;
Evas_Object* m_errorLayout;
Evas_Object* m_privateLayout;
Evas_Object* m_bookmarkManagerButton;