Fixed N_SE-12031
authorJihoon Chung <jihoon.chung@samsung.com>
Wed, 31 Oct 2012 01:07:06 +0000 (10:07 +0900)
committerJihoon Chung <jihoon.chung@samsung.com>
Fri, 2 Nov 2012 07:15:45 +0000 (16:15 +0900)
[Issue#] N_SE-12031
[Problem] Select any editor field for shown IME.
Press Home key for webapp move to background
Launch "Application" webapp and select "Launch" button for webapp
which is moved to background
After webapp is launched, IME isn't displayed.
[Cause] Exactly, default reset event means reset webapp.
This issue is occurred by webapp is still on the previous page.
[Solution] Change default action to reset webapp when received
reset event from other webapp.
[SCMRequest] N/A

Change-Id: Idf97cdf7b406ba62a9af2ff282a11dbe1e154f79

src/view/webkit/view_logic.cpp

index 7d6444a..a18cc17 100644 (file)
@@ -270,29 +270,21 @@ void ViewLogic::resetWidget()
         ewkClientInit(m_currentEwkView);
         prepareEwkView(m_currentEwkView);
     } else {
-        bundle *bundle = ApplicationDataSingleton::Instance().getBundle();
-        const char *operation = appsvc_get_operation(bundle);
-        LogInfo("operation : " << operation);
-        if (operation &&
-                !strcmp(operation, APPSVC_OPERATION_DEFAULT)) {
-            // ignore default operation that is reserved by system
-            // just activate current window
-            LogInfo("raise window");
-            elm_win_raise(m_window);
-            resumeWebkit(m_currentEwkView);
-            return;
-        }
-
         // check if current url is service url for this tizen service
         std::string requestedUri =
                 ViewModule::UriSupport::getUri(m_model, m_startUrl);
         DPL::OptionalString servicedUri = ViewModule::UriSupport::localizeURI(
                 DPL::FromUTF8String(requestedUri.c_str()),
                 m_model);
-        if (m_currentUri == DPL::ToUTF8String(*servicedUri)) {
+
+        const char* currentUri = ewk_view_uri_get(m_currentEwkView);
+        if (!currentUri && 0 == strlen(currentUri)) {
+            LogError("Fail to get uri from ewk_view_uri_get");
+            return;
+        }
+        if (DPL::ToUTF8String(*servicedUri) == currentUri) {
             // set only encoded bundle
             double scale = elm_config_scale_get();
-
             PluginModuleSupport::setCustomProperties(
                 m_ewkContext,
                 &scale,
@@ -301,28 +293,22 @@ void ViewLogic::resetWidget()
             PluginModuleSupport::dispatchJavaScriptEvent(
                 m_ewkContext,
                 WrtPlugins::W3C::ServiceCustomEvent);
-            // window activate
-            if (m_window) {
-                elm_win_raise(m_window);
-            }
-            resumeWebkit(m_currentEwkView);
-            return;
+            ewk_view_reload(m_currentEwkView);
         } else {
             m_currentUri = DPL::ToUTF8String(*servicedUri);
+            // inform wrt information for plugin loading to web process
+            PluginModuleSupport::start(
+                m_ewkContext,
+                m_model->Handle.Get(),
+                elm_config_scale_get(),
+                ApplicationDataSingleton::Instance().getEncodedBundle(),
+                m_theme.c_str(),
+                m_model->SettingList.Get().isEncrypted());
+            // load page
+            ewk_view_uri_set(m_currentEwkView, m_currentUri.c_str());
         }
     }
 
-    // inform wrt information for plugin loading to web process
-    PluginModuleSupport::start(
-        m_ewkContext,
-        m_model->Handle.Get(),
-        elm_config_scale_get(),
-        ApplicationDataSingleton::Instance().getEncodedBundle(),
-        m_theme.c_str(),
-        m_model->SettingList.Get().isEncrypted());
-
-    // load page
-    ewk_view_uri_set(m_currentEwkView, m_currentUri.c_str());
     resumeWebkit(m_currentEwkView);
 
     // call user callback