diff -r 4d54b72983ae -r c743ef5928ba idlehomescreen/widgetmanager/src/wmwidgetloaderao.cpp --- a/idlehomescreen/widgetmanager/src/wmwidgetloaderao.cpp Tue Jan 26 11:48:23 2010 +0200 +++ b/idlehomescreen/widgetmanager/src/wmwidgetloaderao.cpp Tue Feb 02 00:04:13 2010 +0200 @@ -23,6 +23,7 @@ #include "wmpersistentwidgetorder.h" #include "wmlistbox.h" #include "wmwidgetloaderao.h" +#include "wminstaller.h" #include // content control api #include // content control api @@ -123,6 +124,10 @@ // void CWmWidgetLoaderAo::DoLoadWidgetsL() { + // Check if unistallation is ongoing for for some widget + // iUninstallUid is null no uninstallation is ongoing + iUninstallUid = iWmPlugin.WmInstaller().UninstallUid(); + // 1. load the widgets array MHsContentController& controller = iWmPlugin.ContentController(); CHsContentInfoArray* contentInfoArray = CHsContentInfoArray::NewL(); @@ -257,6 +262,12 @@ widgetData->SetPersistentWidgetOrder( iWidgetOrder ); widgetData->SetValid( ETrue ); iWidgetsList.AddWidgetDataL( widgetData, EFalse ); + if ( iUninstallUid != KNullUid + && iUninstallUid == widgetData->PublisherUid() ) + { + widgetData->VisualizeUninstallL(); + } + CleanupStack::Pop( widgetData ); }