New Window constructor added.
[platform/core/uifw/dali-adaptor.git] / dali / internal / adaptor / common / application-impl.cpp
index 29e1b84..17d0282 100755 (executable)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -20,6 +20,7 @@
 
 // EXTERNAL INCLUDES
 #include <dali/integration-api/debug.h>
+#include <dali/devel-api/common/singleton-service.h>
 
 // INTERNAL INCLUDES
 #include <dali/devel-api/adaptor-framework/style-monitor.h>
@@ -27,7 +28,6 @@
 #include <dali/internal/adaptor/common/adaptor-impl.h>
 #include <dali/internal/system/common/command-line-options.h>
 #include <dali/internal/adaptor/common/framework.h>
-#include <dali/internal/system/common/singleton-service-impl.h>
 #include <dali/internal/adaptor/common/lifecycle-controller-impl.h>
 #include <dali/internal/window-system/common/window-impl.h>
 #include <dali/internal/window-system/common/window-render-surface.h>
@@ -83,11 +83,6 @@ void Application::PreInitialize( int* argc, char** argv[] )
     gPreInitializedApplication = new Application ( argc, argv, "", Dali::Application::OPAQUE, PositionSize(), Framework::NORMAL );
     gPreInitializedApplication->CreateWindow();    // Only create window
     gPreInitializedApplication->mLaunchpadState = Launchpad::PRE_INITIALIZED;
-
-    //Make DefaultFontDescription cached
-    Dali::TextAbstraction::FontClient fontClient = Dali::TextAbstraction::FontClient::Get();
-    Dali::TextAbstraction::FontDescription defaultFontDescription;
-    fontClient.GetDefaultPlatformFontDescription( defaultFontDescription );
   }
 }
 
@@ -108,7 +103,6 @@ Application::Application( int* argc, char** argv[], const std::string& styleshee
   mFramework( nullptr ),
   mContextLossConfiguration( Configuration::APPLICATION_DOES_NOT_HANDLE_CONTEXT_LOSS ),
   mCommandLineOptions( nullptr ),
-  mSingletonService( SingletonService::New() ),
   mAdaptorBuilder( nullptr ),
   mAdaptor( nullptr ),
   mMainWindow(),
@@ -138,7 +132,12 @@ Application::Application( int* argc, char** argv[], const std::string& styleshee
 
 Application::~Application()
 {
-  mSingletonService.UnregisterAll();
+  SingletonService service = SingletonService::Get();
+  // Note this can be false i.e. if Application has never created a Core instance
+  if( service )
+  {
+    service.UnregisterAll();
+  }
 
   mMainWindow.Reset();
   delete mAdaptor;
@@ -167,7 +166,7 @@ void Application::CreateWindow()
 
   const std::string& windowClassName = mEnvironmentOptions.GetWindowClassName();
 
-  Internal::Adaptor::Window* window = Internal::Adaptor::Window::New( mWindowPositionSize, mMainWindowName, windowClassName, mMainWindowMode == Dali::Application::TRANSPARENT );
+  Internal::Adaptor::Window* window = Internal::Adaptor::Window::New(mWindowPositionSize, mMainWindowName, windowClassName, mMainWindowMode == Dali::Application::TRANSPARENT);
   mMainWindow = Dali::Window( window );
 
   // Quit the application when the window is closed
@@ -363,12 +362,6 @@ void Application::OnSurfaceCreated( Any newSurface )
 
 void Application::OnSurfaceDestroyed( Any surface )
 {
-  void* windowToDelete = AnyCast< void* >( surface );
-  void* oldWindow = AnyCast< void* >( mMainWindow.GetNativeHandle() );
-  if( oldWindow == windowToDelete )
-  {
-    mAdaptor->DeleteSurface( mAdaptor->GetSurface() );
-  }
 }
 
 void Application::OnResize(Dali::Adaptor& adaptor)
@@ -403,7 +396,7 @@ Dali::Window Application::GetWindow()
   // just for backward compatibility to make the test case pass
   if ( mMainWindowReplaced )
   {
-    Internal::Adaptor::Window* window = Internal::Adaptor::Window::New( PositionSize(), "ReplacedWindow", "", false );
+    Internal::Adaptor::Window* window = Internal::Adaptor::Window::New(PositionSize(), "ReplacedWindow", "", false);
     return Dali::Window( window );
   }
   else