Browse Source

Merge pull request #396 from AtomicGameEngine/JME-ATOMIC-131

Fix UI animation exit crash, small build fix
JoshEngebretson 10 years ago
parent
commit
d3e4c5aeaa
3 changed files with 16 additions and 4 deletions
  1. 12 1
      Source/Atomic/UI/UI.cpp
  2. 2 0
      Source/Atomic/UI/UI.h
  3. 2 3
      Source/AtomicTool/CMakeLists.txt

+ 12 - 1
Source/Atomic/UI/UI.cpp

@@ -114,17 +114,22 @@ UI::UI(Context* context) :
     exitRequested_(false)
 {
 
+    SubscribeToEvent(E_EXITREQUESTED, HANDLER(UI, HandleExitRequested));
+
 }
 
 UI::~UI()
 {
     if (initialized_)
     {
+        initialized_ = false;
+
+        tb::TBAnimationManager::AbortAllAnimations();
         tb::TBWidgetListener::RemoveGlobalListener(this);
 
         TBFile::SetReaderFunction(0);
         TBID::tbidRegisterCallback = 0;
-
+        
         tb::TBWidgetsAnimationManager::Shutdown();
 
         widgetWrap_.Clear();
@@ -135,6 +140,12 @@ UI::~UI()
     }
 
     uiContext_ = 0;
+
+}
+
+void UI::HandleExitRequested(StringHash eventType, VariantMap& eventData)
+{
+    Shutdown();
 }
 
 void UI::Shutdown()

+ 2 - 0
Source/Atomic/UI/UI.h

@@ -112,6 +112,8 @@ private:
     static void TBIDRegisterStringCallback(unsigned id, const char* value);
 
     void HandleRenderUpdate(StringHash eventType, VariantMap& eventData);
+    void HandleExitRequested(StringHash eventType, VariantMap& eventData);
+
     void Render(VertexBuffer* buffer, const PODVector<UIBatch>& batches, unsigned batchStart, unsigned batchEnd);
     void SetVertexData(VertexBuffer* dest, const PODVector<float>& vertexData);
 

+ 2 - 3
Source/AtomicTool/CMakeLists.txt

@@ -25,16 +25,15 @@ add_custom_command( TARGET AtomicTool POST_BUILD
                    COMMAND ${CMAKE_COMMAND}
                    ARGS -E make_directory ${CMAKE_SOURCE_DIR}/Artifacts/Build/AtomicTool
                    COMMAND ${CMAKE_COMMAND}
-                   ARGS -E copy_if_different $<TARGET_FILE:AtomicTool> \"${CMAKE_SOURCE_DIR}/Artifacts/Build/AtomicTool/\"
-                   COMMAND ${CMAKE_COMMAND} )
+                   ARGS -E copy_if_different $<TARGET_FILE:AtomicTool> \"${CMAKE_SOURCE_DIR}/Artifacts/Build/AtomicTool/\" )
 
 if (MSVC)
 
 # Copy the D3D shader compiler
 add_custom_command( TARGET AtomicTool POST_BUILD
+                    COMMAND ${CMAKE_COMMAND}
                     ARGS -E copy_if_different \"${D3DCOMPILER_47_DLL}\" \"${CMAKE_SOURCE_DIR}/Artifacts/Build/AtomicTool/D3DCompiler_47.dll\"
                     COMMENT "Copying AtomicTool to Build Artifacts" )
-
 endif(MSVC)
 
 add_custom_target ( GenerateScriptBindings