--- 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;