uiacceltk/hitchcock/coretoolkit/src/HuiS60Skin.cpp
branchRCL_3
changeset 10 88b23e2e82e1
parent 8 10534483575f
child 41 cd0ae4656946
--- a/uiacceltk/hitchcock/coretoolkit/src/HuiS60Skin.cpp	Mon Mar 15 12:43:37 2010 +0200
+++ b/uiacceltk/hitchcock/coretoolkit/src/HuiS60Skin.cpp	Wed Mar 31 23:03:58 2010 +0300
@@ -32,7 +32,7 @@
 #include <AknUtils.h>
 
 #include "huiskinbackroundlayout.h"
-
+#include "huiextension.h"
 
 struct TBackgroundTexture
     {
@@ -188,12 +188,19 @@
 
 EXPORT_C void CHuiS60Skin::SkinContentChanged()
     {
-    FreeAllBackgroundTextureResources();
+    
     }
 
 EXPORT_C void CHuiS60Skin::SkinConfigurationChanged(
     const TAknsSkinStatusConfigurationChangeReason aReason )
     {
+    if (aReason == EAknsSkinStatusConfigurationDeployed)
+        {
+        FreeAllBackgroundTextureResources();
+        Env().NotifySkinChangedL();
+        Env().TextStyleManager().NotifyDisplaySizeChangedL();
+        ReloadBgTexturesL();
+        }
     
     }
 
@@ -250,11 +257,8 @@
 EXPORT_C void CHuiS60Skin::NotifyDisplaySizeChangedL()
     {
     // The background is now different.
-    SkinContentChanged(); // to delete old contents
+     SkinConfigurationChanged(EAknsSkinStatusConfigurationDeployed);
     
-    Env().NotifySkinChangedL();
-    Env().TextStyleManager().NotifyDisplaySizeChangedL();
-    ReloadBgTexturesL();
     }
 
 
@@ -292,7 +296,14 @@
 
 EXPORT_C void CHuiS60Skin::SkinExtension(const TUid& aExtensionUid, TAny** aExtensionParameters)
     {
-    CHuiSkin::SkinExtension(aExtensionUid,aExtensionParameters);
+    if (aExtensionUid == KHuiSkinReleaseCachedTextures)
+        {
+        FreeAllBackgroundTextureResources();
+        }
+    else
+        {        
+        CHuiSkin::SkinExtension(aExtensionUid, aExtensionParameters);
+        }
     }
     
 EXPORT_C THuiSkinOrientation CHuiS60Skin::Orientation() const
@@ -509,7 +520,7 @@
         bgTexture = ((TPrivData*)(iSpare))->iBackgrounds[index];
         if (bgTexture.iID == aID)
             {
-            if(!bgTexture.iBackgroundTexture && !bgTexture.iBackgroundTexture->HasContent())
+            if(!bgTexture.iBackgroundTexture || !bgTexture.iBackgroundTexture->HasContent())
                 {
                 delete bgTexture.iBackgroundTexture;
                 bgTexture.iBackgroundTexture = NULL;