From: m.kawonczyk Date: Mon, 19 Oct 2015 10:14:31 +0000 (+0200) Subject: Focus cannot be moved to "Stop" button in Web Page UI X-Git-Tag: accepted/tizen/tv/20151020.020053~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F19%2F49619%2F7;p=profile%2Ftv%2Fapps%2Fweb%2Fbrowser.git Focus cannot be moved to "Stop" button in Web Page UI [Issue] https://bugs.tizen.org/jira/browse/TT-217 [Problem] After clicking Thumb in history new DetailedPopup is shown, which then forces "refreshFocusChain" function second time. [Solution] Added another variable - m_after_history_thumb, which blocks "refreshFocusChain" from running second time. [Verification] Add new tab from History Manager, try to change focus to "Stop" using arrows. Change-Id: I0f4a241ac85f72acb213f92ab303bf347d247d39 --- diff --git a/services/QuickAccess/QuickAccess.cpp b/services/QuickAccess/QuickAccess.cpp index 7b57107..5db57b6 100644 --- a/services/QuickAccess/QuickAccess.cpp +++ b/services/QuickAccess/QuickAccess.cpp @@ -72,6 +72,7 @@ QuickAccess::QuickAccess() , m_parentFocusChain(nullptr) , m_bookmark_item_class(nullptr) , m_detailPopup(this) + , m_after_history_thumb(false) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); edjFilePath = EDJE_DIR; @@ -294,7 +295,7 @@ void QuickAccess::addHistoryItem(std::shared_ptr hi) elm_layout_text_set(tile, "page_url", hi->getUrl().c_str()); Evas_Object * thumb = tizen_browser::tools::EflTools::getEvasImage(hi->getThumbnail(), m_parent); elm_object_part_content_set(tile, "elm.thumbnail", thumb); - evas_object_smart_callback_add(tile, "clicked", _thumbClicked, itemData); + evas_object_smart_callback_add(tile, "clicked", _thumbHistoryClicked, itemData); m_historyItems.push_back(hi); } @@ -367,13 +368,15 @@ void QuickAccess::_thumbBookmarkClicked(void * data, Evas_Object * , void *) BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); HistoryItemData * itemData = reinterpret_cast(data); itemData->quickAccess->openURLInNewTab(itemData->item, itemData->quickAccess->isDesktopMode()); + itemData->quickAccess->m_after_history_thumb = false; } -void QuickAccess::_thumbClicked(void* data, Evas_Object*, void*) +void QuickAccess::_thumbHistoryClicked(void* data, Evas_Object*, void*) { BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); HistoryItemData * itemData = reinterpret_cast(data); itemData->quickAccess->mostVisitedTileClicked(itemData->item, DetailPopup::HISTORY_ITEMS_NO); + itemData->quickAccess->m_after_history_thumb = true; } void QuickAccess::clearHistoryGenlist() @@ -381,7 +384,7 @@ void QuickAccess::clearHistoryGenlist() BROWSER_LOGD("%s:%d %s", __FILE__, __LINE__, __func__); for (auto it = m_tiles.begin(); it != m_tiles.end(); ++it) { - evas_object_smart_callback_del(*it, "clicked", _thumbClicked); + evas_object_smart_callback_del(*it, "clicked", _thumbHistoryClicked); evas_object_del(*it); } @@ -504,6 +507,10 @@ bool QuickAccess::isMostVisitedActive() const void QuickAccess::refreshFocusChain() { + if (!isMostVisitedActive() && m_after_history_thumb) { + m_after_history_thumb = false; + return; + } BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__); if (!m_parentFocusChain) { diff --git a/services/QuickAccess/QuickAccess.h b/services/QuickAccess/QuickAccess.h index f26d402..5418b38 100644 --- a/services/QuickAccess/QuickAccess.h +++ b/services/QuickAccess/QuickAccess.h @@ -84,7 +84,7 @@ private: static char* _grid_bookmark_text_get(void *data, Evas_Object *obj, const char *part); static Evas_Object * _grid_bookmark_content_get(void *data, Evas_Object *obj, const char *part); static void _thumbBookmarkClicked(void * data, Evas_Object * obj, void * event_info); - static void _thumbClicked(void * data, Evas_Object * obj, void * event_info); + static void _thumbHistoryClicked(void * data, Evas_Object * obj, void * event_info); void setEmptyView(bool empty); void showNoHistoryLabel(); @@ -100,6 +100,7 @@ private: Evas_Object *m_mostVisitedButton; Evas_Object *m_bookmarkGengrid; Evas_Object *m_bookmarkManagerButton; + bool m_after_history_thumb; std::vector m_tiles; Eina_List* m_parentFocusChain;