Open page on visibility change state 15/78415/5
authorKamil Nowac <k.nowac@samsung.com>
Tue, 5 Jul 2016 10:58:12 +0000 (12:58 +0200)
committerHye Kyoung Hwang <cookie@samsung.com>
Wed, 6 Jul 2016 00:38:33 +0000 (17:38 -0700)
[Issue]    http://suprem.sec.samsung.net/jira/browse/TWF-1649
[Problem]  Wrong innerWidth on browser open
[Solution] Added visibility change callback
[Verify]   Run test from
           http://suprem.sec.samsung.net/jira/browse/TSAM-5664

Change-Id: I3cd9270a381abdb4c3487920f1b923d27b091f19

services/SimpleUI/SimpleUI.cpp
services/SimpleUI/SimpleUI.h

index 0d767ebf1a23702108f02932ced710e4c6265085..a81166f752ee8214f2f2769295ff228dc7d386ef 100644 (file)
@@ -120,6 +120,7 @@ SimpleUI::SimpleUI()
     evas_object_smart_callback_add(m_viewManager.getConformant(), "virtualkeypad,state,on", onUrlIMEOpened, this);
     evas_object_smart_callback_add(m_viewManager.getConformant(), "virtualkeypad,state,off",onUrlIMEClosed, this);
 #endif
+    evas_object_smart_callback_add(main_window, "visibility,changed", _win_state_visibility_cb, this);
 }
 
 SimpleUI::~SimpleUI() {
@@ -161,6 +162,16 @@ std::shared_ptr<services::HistoryItemVector> SimpleUI::getHistory()
 {
     return m_historyService->getHistoryToday();
 }
+void SimpleUI::_win_state_visibility_cb(void *data, Evas_Object*, void*)
+{
+    BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
+    if (!data)
+        return;
+    auto sui = static_cast<SimpleUI*>(data);
+    if (!sui->m_urlOnStart.empty())
+        sui->openNewTab(sui->m_urlOnStart);
+    sui->m_urlOnStart.clear();
+}
 
 int SimpleUI::exec(const std::string& _url, const std::string& _caller)
 {
@@ -173,7 +184,6 @@ int SimpleUI::exec(const std::string& _url, const std::string& _caller)
             m_tabLimit = boost::any_cast <int> (tizen_browser::config::Config::getInstance().get("TAB_LIMIT"));
             m_favoritesLimit = boost::any_cast <int> (tizen_browser::config::Config::getInstance().get("FAVORITES_LIMIT"));
 
-
             loadUIServices();
             loadModelServices();
 
@@ -201,12 +211,7 @@ int SimpleUI::exec(const std::string& _url, const std::string& _caller)
         }
         m_initialised = true;
     }
-
-    if (!url.empty())
-    {
-        BROWSER_LOGD("[%s]: open new tab", __func__);
-        openNewTab(url);
-    }
+    m_urlOnStart = url;
 
     BROWSER_LOGD("[%s]:%d url=%s", __func__, __LINE__, url.c_str());
     return 0;
index 7db348199d3a806a9ed3a55b476b0d54214a4828..d148027ff9e6ab70663b76ffff474cc3d6a15bf9 100644 (file)
@@ -296,6 +296,7 @@ private:
     int getRotation();
     static void __orientation_changed(void* data, Evas_Object*, void*);
 #endif
+    static void _win_state_visibility_cb(void *data, Evas_Object*, void*);
     void closeBookmarkDetailsUI();
     void closeBookmarkManagerUI();
     void showBookmarkManagerUI();
@@ -363,6 +364,7 @@ private:
     int m_favoritesLimit;
     bool m_wvIMEStatus;
     std::string m_folder_name;
+    std::string m_urlOnStart;
 
     //helper object used to view management
     ViewManager m_viewManager;