[Issue] https://bugs.tizen.org/jira/browse/TT-238
[Problem] WebPageUI is closed when 'Backspace' button is used in URIEntry.
[Solution] Added condition in onBackPressed function that prevents
closing WebPageUI when cursor if URIEntry is focused.
[Verify] 1. Tab Manager > New Tab > press 'Backspace' key > Obs
Quick access should be closed.
2. Load a web page > Set focus on URIEntry > press 'Backspace'
WebPageUI should not be closed.
3. Tab Manager > New Incognito tab > Press 'Backspace' key > Obs
Browser shoud not crash
Change-Id: I0fb51f949ced56641d3f8f57b053d0c0e1e339c8
/**
* @brief back or exit when back key is pressed
*/
/**
* @brief back or exit when back key is pressed
*/
- virtual void backButtonClicked() const = 0;
+ virtual void backButtonClicked() = 0;
/**
* @brief Switch current view to mobile mode
/**
* @brief Switch current view to mobile mode
* \param bool true if IME is opened, false otherwise
*/
boost::signals2::signal<void (bool)> IMEStateChanged;
* \param bool true if IME is opened, false otherwise
*/
boost::signals2::signal<void (bool)> IMEStateChanged;
+
+ /**
+ * Switch view to actual web page
+ */
+ boost::signals2::signal<void ()> switchToWebPage;
};
} /* end of basic_webengine */
};
} /* end of basic_webengine */
{
if (m_detailPopup.isVisible()) {
m_detailPopup.hide();
{
if (m_detailPopup.isVisible()) {
m_detailPopup.hide();
+ } else {
+ hideUI();
+ switchViewToWebPage();
boost::signals2::signal<void ()> mostVisitedClicked;
boost::signals2::signal<void ()> bookmarkClicked;
boost::signals2::signal<void ()> bookmarkManagerClicked;
boost::signals2::signal<void ()> mostVisitedClicked;
boost::signals2::signal<void ()> bookmarkClicked;
boost::signals2::signal<void ()> bookmarkManagerClicked;
+ boost::signals2::signal<void ()> switchViewToWebPage;
static const int MAX_THUMBNAIL_WIDTH;
static const int MAX_THUMBNAIL_HEIGHT;
static const int MAX_THUMBNAIL_WIDTH;
static const int MAX_THUMBNAIL_HEIGHT;
m_quickAccess->mostVisitedClicked.connect(boost::bind(&SimpleUI::onMostVisitedClicked, this));
m_quickAccess->bookmarkClicked.connect(boost::bind(&SimpleUI::onBookmarkButtonClicked, this));
m_quickAccess->bookmarkManagerClicked.connect(boost::bind(&SimpleUI::showBookmarkManagerUI, this));
m_quickAccess->mostVisitedClicked.connect(boost::bind(&SimpleUI::onMostVisitedClicked, this));
m_quickAccess->bookmarkClicked.connect(boost::bind(&SimpleUI::onBookmarkButtonClicked, this));
m_quickAccess->bookmarkManagerClicked.connect(boost::bind(&SimpleUI::showBookmarkManagerUI, this));
+ m_quickAccess->switchViewToWebPage.connect(boost::bind(&SimpleUI::switchViewToWebPage, this));
M_ASSERT(m_tabUI.get());
m_tabUI->closeTabUIClicked.connect(boost::bind(&SimpleUI::closeTabUI, this));
M_ASSERT(m_tabUI.get());
m_tabUI->closeTabUIClicked.connect(boost::bind(&SimpleUI::closeTabUI, this));
m_webEngine->tabClosed.connect(boost::bind(&SimpleUI::tabClosed,this,_1));
m_webEngine->IMEStateChanged.connect(boost::bind(&SimpleUI::setwvIMEStatus, this, _1));
m_webEngine->titleChanged.connect(boost::bind(&WebPageUI::setPageTitle, m_webPageUI.get(), _1));
m_webEngine->tabClosed.connect(boost::bind(&SimpleUI::tabClosed,this,_1));
m_webEngine->IMEStateChanged.connect(boost::bind(&SimpleUI::setwvIMEStatus, this, _1));
m_webEngine->titleChanged.connect(boost::bind(&WebPageUI::setPageTitle, m_webPageUI.get(), _1));
+ m_webEngine->switchToWebPage.connect(boost::bind(&SimpleUI::switchViewToWebPage, this));
m_favoriteService->bookmarkAdded.connect(boost::bind(&SimpleUI::onBookmarkAdded, this,_1));
m_favoriteService->bookmarkDeleted.connect(boost::bind(&SimpleUI::onBookmarkRemoved, this, _1));
m_favoriteService->bookmarkAdded.connect(boost::bind(&SimpleUI::onBookmarkAdded, this,_1));
m_favoriteService->bookmarkDeleted.connect(boost::bind(&SimpleUI::onBookmarkRemoved, this, _1));
if(m_webEngine->isSuspended())
m_webEngine->resume();
m_webPageUI->switchViewToWebPage(m_webEngine->getLayout(), m_webEngine->getURI(), m_webEngine->getTitle());
if(m_webEngine->isSuspended())
m_webEngine->resume();
m_webPageUI->switchViewToWebPage(m_webEngine->getLayout(), m_webEngine->getURI(), m_webEngine->getTitle());
+ m_webPageUI->toIncognito(m_webEngine->isPrivateMode(m_webEngine->currentTabId()));
}
void SimpleUI::switchToTab(const tizen_browser::basic_webengine::TabId& tabId)
}
void SimpleUI::switchToTab(const tizen_browser::basic_webengine::TabId& tabId)
m_tabUI->onBackKey();
} else if (m_webPageUI->stateEquals(WPUState::QUICK_ACCESS)) {
m_quickAccess->backButtonClicked();
m_tabUI->onBackKey();
} else if (m_webPageUI->stateEquals(WPUState::QUICK_ACCESS)) {
m_quickAccess->backButtonClicked();
- } else if ((m_viewManager->topOfStack() == m_webPageUI.get()) && !m_webPageUI->getURIEntry().hasFocus() && !m_wvIMEStatus) {
- m_webEngine->backButtonClicked();
- } else {
- m_viewManager->popTheStack();
+ } else if (!m_webPageUI->getURIEntry().hasFocus() && !m_wvIMEStatus) {
+ if ((m_viewManager->topOfStack() == m_webPageUI.get())) {
+ m_webEngine->backButtonClicked();
+ } else {
+ m_viewManager->popTheStack();
+ }
IMEStateChanged(enable);
}
IMEStateChanged(enable);
}
-void WebKitEngineService::backButtonClicked() const
+void WebKitEngineService::backButtonClicked()
{
M_ASSERT(m_currentWebView);
if (isBackEnabled()) {
m_currentWebView->back();
{
M_ASSERT(m_currentWebView);
if (isBackEnabled()) {
m_currentWebView->back();
+ } else if (m_currentWebView->isPrivateMode()) {
+ closeTab();
+ switchToWebPage();
} else {
app_efl_exit();
}
} else {
app_efl_exit();
}
/**
* @brief back or exit when back key is pressed
*/
/**
* @brief back or exit when back key is pressed
*/
- void backButtonClicked() const;
+ void backButtonClicked();
void switchToMobileMode();
void switchToDesktopMode();
void switchToMobileMode();
void switchToDesktopMode();
boost::signals2::signal<void (bool)> IMEStateChanged;
boost::signals2::signal<void (bool)> IMEStateChanged;
+ boost::signals2::signal<void ()> switchToWebPage;
+
private:
void registerCallbacks();
void unregisterCallbacks();
private:
void registerCallbacks();
void unregisterCallbacks();