--- a/classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h Tue Sep 14 21:48:24 2010 +0300
+++ b/classicui_plat/extended_options_menu_api/inc/aknitemactionmenu.h Wed Sep 15 12:29:17 2010 +0300
@@ -150,6 +150,13 @@
IMPORT_C void CollectionChanged( MAknCollection& aCollection );
/**
+ * Provides marking mode handler.
+ *
+ * @return Marking mode handler.
+ */
+ IMPORT_C CAknMarkingMode& MarkingMode();
+
+ /**
* Sets menu bar to item action menu.
*
* @internal
@@ -224,14 +231,6 @@
MObjectProvider* Owner() const;
/**
- * Provides marking mode handler.
- *
- * @internal
- * @return Marking mode handler.
- */
- CAknMarkingMode& MarkingMode();
-
- /**
* Returns ETrue if collection has marked items.
*
* @internal
--- a/classicui_plat/ganes_api/inc/ganes/HgScroller.h Tue Sep 14 21:48:24 2010 +0300
+++ b/classicui_plat/ganes_api/inc/ganes/HgScroller.h Wed Sep 15 12:29:17 2010 +0300
@@ -506,6 +506,7 @@
TBool iResetViewPosition; // ETrue on the first time run, and when iViewPosition must be reset.
TBool iPointerDown;
+ TBool iEnterKeyHandled;
CPeriodic* iHighlightTimer; // Higlight timer, own.
TBool iSelectionToFocusedItem; // Is focused item clicked
--- a/classicui_pub/application_framework_api/inc/AknViewAppUi.h Tue Sep 14 21:48:24 2010 +0300
+++ b/classicui_pub/application_framework_api/inc/AknViewAppUi.h Wed Sep 15 12:29:17 2010 +0300
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2002-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -228,7 +228,10 @@
* Enables/disables local screen clearer.
* Local screen clearer is used in the view based applications
* to clear the application window if/when the view itself fails
- * to do this. By default, the clearer is used.
+ * to do this. By default, the clearer is used except when launching
+ * the application as embedded. If the clearer needs to be used
+ * in an application that is launched as embedded, then this
+ * function must be explicitly called.
* This function must be called before the BaseConstructL() to
* prevent the screen clearer on application start up.
*
--- a/classicui_pub/editors_api/inc/EIKEDWIN.H Tue Sep 14 21:48:24 2010 +0300
+++ b/classicui_pub/editors_api/inc/EIKEDWIN.H Wed Sep 15 12:29:17 2010 +0300
@@ -385,6 +385,9 @@
CRepository* iCenRep; // Owned
CCenRepNotifyHandler* iCenRepNotifyHandler; // Owned
TInt iClearDirection; // Value of ClearDirection
+ // For listening the status of qwerty key board
+ CRepository* iCenRepForQwerty; // Owned
+ CCenRepNotifyHandler* iCenRepNotifyHandlerForQwerty; // Owned
public:
TInt iSkinIdForText;
@@ -517,6 +520,12 @@
* Record internal status of of "tap to write".
*/
TInt iT2WState;
+
+ /**
+ * Used to record if qwerty key board is opened.
+ *
+ */
+ TInt iQwertyStatus;
};
public:
--- a/classicui_pub/hierarchical_lists_api/inc/akntreelist.h Tue Sep 14 21:48:24 2010 +0300
+++ b/classicui_pub/hierarchical_lists_api/inc/akntreelist.h Wed Sep 15 12:29:17 2010 +0300
@@ -931,6 +931,16 @@
*/
IMPORT_C void SetMarkingModeObserver( MAknMarkingModeObserver* aObserver );
+ /**
+ * Turns the marking mode on / off.
+ *
+ * @since S60 5.2
+ *
+ * @param aEnable @c ETrue to turn marking mode on
+ * @c EFalse to turn marking mode off
+ */
+ IMPORT_C void SetMarkingMode( TBool aEnable );
+
// From base class CCoeControl
/**
--- a/classicui_pub/stylus_popup_menu_api/inc/aknstyluspopupmenu.h Tue Sep 14 21:48:24 2010 +0300
+++ b/classicui_pub/stylus_popup_menu_api/inc/aknstyluspopupmenu.h Wed Sep 15 12:29:17 2010 +0300
@@ -252,6 +252,12 @@
*/
static void CleanLocalRef( TAny* aParam );
+
+ /**
+ * Hide Preview Popups
+ */
+ void HidePreviewPopup();
+
private: // data
/**
--- a/classicui_pub/tabs_api/inc/akntabgrp.h Tue Sep 14 21:48:24 2010 +0300
+++ b/classicui_pub/tabs_api/inc/akntabgrp.h Wed Sep 15 12:29:17 2010 +0300
@@ -876,6 +876,11 @@
* Resets the highlight status for tabs
*/
void ResetHighlightStatus();
+
+ /**
+ * Enable/Disable highlight effect
+ */
+ void EnableHighlight( TBool aEnable, TInt aNewTab = -1 , TInt aPointX = -1 );
private:
--- a/classicui_pub/ui_framework_definitions_api/inc/EIKON.HRH Tue Sep 14 21:48:24 2010 +0300
+++ b/classicui_pub/ui_framework_definitions_api/inc/EIKON.HRH Wed Sep 15 12:29:17 2010 +0300
@@ -60,9 +60,11 @@
#define EEikCbaFlagSemiTransparent 0x100
/**
- * Button group app msk icon flag. This flag can be set with CBA resource
- * or by using CEikCba::SetButtonGroupFlags(TInt) method. CBA using
- * control_pane_g4(0) to draw the window rect
+ * Button group app msk icon flag,also support msk label.
+ * This flag can be set with CBA resource
+ * or by using CEikCba::SetButtonGroupFlags(TInt) method.
+ * CBA using control_pane_g4(0) to draw the window rect.
+ * Use the CEikCba::UpdateIconL() to set the msk icon or show the msk label.
*/
#define EEikCbaFlagAppMskIcon 0x200
// EIKBUTB.HRH
--- a/classicui_pub/ui_framework_definitions_api/inc/avkon.hrh Tue Sep 14 21:48:24 2010 +0300
+++ b/classicui_pub/ui_framework_definitions_api/inc/avkon.hrh Wed Sep 15 12:29:17 2010 +0300
@@ -400,6 +400,12 @@
EPeninputCmdLandscapeEditor,
/**
+ * Command id for find pane to hide adaptive search grid
+ *
+ */
+ EAknCmdHideASGrid,
+
+ /**
* @deprecated
* Do not use.
*/
--- a/commonuis/CommonUi/src/FindItemMenu.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/commonuis/CommonUi/src/FindItemMenu.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -882,18 +882,54 @@
// Replace cmd call with AIW menu if more than one option available in AIW
// menu
// Note: count of VoIP profiles is not static. If phone contains VoIP
- // profiles there must be Internet call command in call submenu.
+ // profiles there must be Internet call command in call submenu.
+ // No context sensitive menu now. And new requirement is to show
+ // call menu for normal item and voip menu for sip address if voip is enabled.
TInt dummy = 0;
- if ( ( !iHideCallMenu ||
- ( iFindItemVoIPExtension->IsVoIPSupported() &&
- iFindItemVoIPExtension->VoIPProfilesExistL() ) ) &&
+ if ( itemType == CItemFinder::EEmailAddress &&
+ iFindItemVoIPExtension->IsVoIPSupported() &&
+ iFindItemVoIPExtension->VoIPProfilesExistL() &&
iMenuPane->MenuItemExists( EFindItemCmdCall, dummy ) &&
- !iHideCallSubMenu )
- {
+ !( iMenuItemFlags & CFindItemMenu::ECallItem )
+ )
+ {
+ // CMyMenuPane is used only to get the aiw menu item
+ // for sip address, as it is an argument of the InitializeMenuPaneL
+ CMyMenuPane* aiwVoipMenu =
+ new ( ELeave ) CMyMenuPane( ( MEikMenuObserver* )this ); // not used really
+ CleanupStack::PushL( aiwVoipMenu );
+ TResourceReader callUiReader;
+ iCoeEnv->CreateResourceReaderLC(
+ callUiReader, R_FINDMENU_CALLUI_AIW_SUBMENU );
+ aiwVoipMenu->ConstructFromResourceL( callUiReader );
+ CleanupStack::PopAndDestroy(); // callUiReader
+
+ CAiwGenericParamList* inList = CAiwGenericParamList::NewLC();
+
+ // For SIP Address, use sip parameters
+ TAiwGenericParam param( EGenericParamSIPAddress );
+
+ // get the aiw menu item for sip address
+ inList->AppendL( param );
+ iServiceHandler->InitializeMenuPaneL(
+ *( CEikMenuPane* )aiwVoipMenu,
+ R_FINDMENU_CALLUI_AIW_SUBMENU,
+ EFindMenuPlaceHolderCallUI,
+ *inList );
+
+ // Add all the menus for aiw to context main menu now.
+ for ( TInt i = 0; i < aiwVoipMenu->NumberOfItemsInPane(); i++ )
+ {
+ iMenuPane->AddMenuItemL( aiwVoipMenu->ItemDataByIndexL( i ), EFindItemCmdCall );
+ }
+
+ // Now options of VOIP call and voice call are exclusive.
+ // For email( sip ) address, voip is used. So set the call
+ // menu to dimmed.
iMenuPane->SetItemDimmed( EFindItemCmdCall, ETrue );
- iMenuPane->AddMenuItemsL(
- R_FINDMENU_CALLUI_AIW_ITEM,
- EFindItemCmdCall );
+
+ CleanupStack::PopAndDestroy( inList );
+ CleanupStack::PopAndDestroy( aiwVoipMenu );
}
}
@@ -932,7 +968,7 @@
#ifndef RD_UNIFIED_EDITOR
if ( !iEmailOverSmsFeatureSupported )
{
- mtmFilter->AppendL(KSenduiMtmSmsUid);
+ mtmFilter->AppendL(KSenduiMtmSmsUid);
}
// Hide MMS if not supported
if (!iMMSFeatureSupported)
@@ -944,7 +980,7 @@
// Hide E-Mail if nosupported or phonenumber
if ( !iEmailUiFeatureSupported || itemType == CItemFinder::EPhoneNumber )
{
- mtmFilter->AppendL(KSenduiMtmSmtpUid);
+ mtmFilter->AppendL(KSenduiMtmSmtpUid);
mtmFilter->AppendL(KSenduiMtmImap4Uid);
mtmFilter->AppendL(KSenduiMtmPop3Uid);
mtmFilter->AppendL(KSenduiMtmSyncMLEmailUid);
@@ -952,7 +988,7 @@
// Hide Audio if not supported or E-mail address
if( !iAudioMessagingFeatureSupported || itemType == CItemFinder::EEmailAddress)
{
- mtmFilter->AppendL(KSenduiMtmAudioMessageUid);
+ mtmFilter->AppendL(KSenduiMtmAudioMessageUid);
}
TUid uid = iSendUi->ShowTypedQueryL( CSendUi::EWriteMenu, NULL, sendingCapabilities, mtmFilter );
@@ -1302,7 +1338,7 @@
else if ( itemType == CItemFinder::EEmailAddress &&
( fieldInfo->FieldId() == EPbkFieldIdEmailAddress ||
#ifdef __VOIP
- iFindItemVoIPExtension->IsVoIPSupported() &&
+ iFindItemVoIPExtension->IsVoIPSupported() &&
#else
iVoIPFeatureSupported &&
#endif
@@ -1561,6 +1597,18 @@
// sets call type for VoIP
iDialData->SetCallType( CAiwDialData::EAIWVoiP );
}
+ else
+ {
+ // sets call type for call, as now only voice call
+ // exists in menu now.
+ iDialData->SetCallType( CAiwDialData::EAIWVoice );
+ }
+ }
+ else
+ {
+ // sets call type for call, as now only voice call
+ // exists in menu now.
+ iDialData->SetCallType( CAiwDialData::EAIWVoice );
}
#endif // RD_VOIP_REL_2_2
iDialData->SetPhoneNumberL( numberPtr );
--- a/commonuisupport/uikon/srvinc/EIKNFYSV.H Tue Sep 14 21:48:24 2010 +0300
+++ b/commonuisupport/uikon/srvinc/EIKNFYSV.H Wed Sep 15 12:29:17 2010 +0300
@@ -68,12 +68,13 @@
public:
TUid iNotifierUid;
TSecureId iSecureId;
+ TInt iCount;
};
/** @internalComponent */
typedef RArray<const TNotifierMessageInfo> RNotifierMessageInfoQueue;
/** @internalComponent */
-typedef RArray<const TNotifierSecureInfo> RNotifierSecureInfoQueue;
+typedef RArray<TNotifierSecureInfo> RNotifierSecureInfoQueue;
/**
@internalComponent
--- a/commonuisupport/uikon/srvsrc/EIKNFYSV.CPP Tue Sep 14 21:48:24 2010 +0300
+++ b/commonuisupport/uikon/srvsrc/EIKNFYSV.CPP Wed Sep 15 12:29:17 2010 +0300
@@ -219,16 +219,13 @@
//aAction is not set because default value to it is already set(CPolicyServer::EFailClient)
//aMissing is not set because it is not needed as we aren't overriding CheckFailedL
{
- const TUid notifierUid = TUid::Uid(aMsg.Int0());
const TSecureId clientSid = aMsg.SecureId();
-
const TInt count = iAsyncSecureInfoQueue.Count();
for(int i = 0; i < count; i++)
{
if(iAsyncSecureInfoQueue[i].iSecureId == clientSid)
return CPolicyServer::EPass;
}
-
return CPolicyServer::EFail;
}
@@ -448,32 +445,59 @@
const TUid notifierUid = TUid::Uid(aMessage.Int0());
const TSecureId secureId = aMessage.SecureId();
RNotifierSecureInfoQueue& secureInfoQueue = Server().AsyncSecureInfoQueue();
- secureInfoQueue.AppendL(TNotifierSecureInfo(notifierUid, secureId));
+ TInt queueTotal = secureInfoQueue.Count();
+ TBool needsNewEntry = ETrue;
+ TInt indexOfInfo=0;
+ for(indexOfInfo = 0; indexOfInfo < queueTotal; indexOfInfo++)
+ {
+ if (secureInfoQueue[indexOfInfo].iNotifierUid == notifierUid && secureInfoQueue[indexOfInfo].iSecureId == secureId)
+ {
+ secureInfoQueue[indexOfInfo].iCount++;
+ needsNewEntry = EFalse;
+ break;
+ }
+ }
+ if (needsNewEntry)
+ {
+ secureInfoQueue.AppendL(TNotifierSecureInfo(notifierUid, secureId));
+ }
if (!aMessage.Int2()) // if the third parameter is null
{
- TRAPD(err, Server().Manager()->NotifierStartL(TUid::Uid(aMessage.Int0()),*inputBuffer,NULL,iClientId));
- if(err)
- {
- secureInfoQueue.Remove(secureInfoQueue.Count()-1);
- User::Leave(err);
- }
+ TRAPD(err, Server().Manager()->NotifierStartL(TUid::Uid(aMessage.Int0()),*inputBuffer,NULL,iClientId));
+ if(err)
+ {
+ if (needsNewEntry)
+ {
+ secureInfoQueue.Remove(queueTotal);
+ }
+ else
+ {
+ secureInfoQueue[indexOfInfo].iCount--;
+ }
+ User::Leave(err);
+ }
}
else
{
HBufC8* const responseBuffer = HBufC8::NewLC(User::LeaveIfError(aMessage.GetDesMaxLength(2)));
TPtr8 response(responseBuffer->Des());
- TRAPD(err, Server().Manager()->NotifierStartL(TUid::Uid(aMessage.Int0()), *inputBuffer, &response, iClientId));
- if(err)
- {
- secureInfoQueue.Remove(secureInfoQueue.Count()-1);
- User::Leave(err);
- }
-
- aMessage.WriteL(2,response);
- CleanupStack::PopAndDestroy(responseBuffer);
- }
-
+ TRAPD(err, Server().Manager()->NotifierStartL(TUid::Uid(aMessage.Int0()), *inputBuffer, &response, iClientId));
+ if(err)
+ {
+ if (needsNewEntry)
+ {
+ secureInfoQueue.Remove(queueTotal);
+ }
+ else
+ {
+ secureInfoQueue[indexOfInfo].iCount--;
+ }
+ User::Leave(err);
+ }
+ aMessage.WriteL(2,response);
+ CleanupStack::PopAndDestroy(responseBuffer);
+ }
CleanupStack::PopAndDestroy(inputBuffer);
}
@@ -520,12 +544,34 @@
const TUid notifierUid = TUid::Uid(aMessage.Int0());
const TSecureId secureId = aMessage.SecureId();
RNotifierSecureInfoQueue& secureInfoQueue = Server().AsyncSecureInfoQueue();
- secureInfoQueue.AppendL(TNotifierSecureInfo(notifierUid,secureId));
+ TInt queueTotal = secureInfoQueue.Count();
+ TBool needsNewEntry = ETrue;
+ TInt indexOfInfo=0;
+ for(indexOfInfo = 0; indexOfInfo < queueTotal; indexOfInfo++)
+ {
+ if (secureInfoQueue[indexOfInfo].iNotifierUid == notifierUid && secureInfoQueue[indexOfInfo].iSecureId == secureId)
+ {
+ secureInfoQueue[indexOfInfo].iCount++;
+ needsNewEntry = EFalse;
+ break;
+ }
+ }
+ if (needsNewEntry)
+ {
+ secureInfoQueue.AppendL(TNotifierSecureInfo(notifierUid,secureId));
+ }
TRAPD(err, Server().Manager()->NotifierStartAndGetResponseL(TUid::Uid(aMessage.Int0()), *inputBuffer, 2, aMessage, iClientId, aCleanupComplete));
if(err)
{
- secureInfoQueue.Remove(secureInfoQueue.Count()-1);
+ if (needsNewEntry)
+ {
+ secureInfoQueue.Remove(queueTotal);
+ }
+ else
+ {
+ secureInfoQueue[indexOfInfo].iCount--;
+ }
User::Leave(err);
}
@@ -566,7 +612,14 @@
{
if(secureInfoQueue[i].iNotifierUid == notifierUid && secureInfoQueue[i].iSecureId == secureId)
{
- secureInfoQueue.Remove(i);
+ if(secureInfoQueue[i].iCount)
+ {
+ secureInfoQueue[i].iCount--;
+ }
+ else
+ {
+ secureInfoQueue.Remove(i);
+ }
return KErrNone;
}
}
@@ -2057,7 +2110,7 @@
//
TNotifierSecureInfo::TNotifierSecureInfo(const TUid aNotifierUid, const TSecureId aSecureId)
- : iNotifierUid(aNotifierUid), iSecureId(aSecureId)
+ : iNotifierUid(aNotifierUid), iSecureId(aSecureId), iCount(0)
{
}
--- a/psln/Inc/PslnScreenSaverView.h Tue Sep 14 21:48:24 2010 +0300
+++ b/psln/Inc/PslnScreenSaverView.h Wed Sep 15 12:29:17 2010 +0300
@@ -294,6 +294,11 @@
*/
CCenRepNotifyHandler* iScreenSaverNotifier;
CPsmClient *iPsmClient;
+
+ /**
+ * Ture if screensaver is being previewed.
+ */
+ TBool iScreenSaverPreviewing;
};
--- a/psln/Src/PslnScreenSaverView.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/psln/Src/PslnScreenSaverView.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -279,6 +279,7 @@
self->iModel->ActivateScreenSaver(
KErrNotFound,
EPslnScreenSaverPreviewDeactivation );
+ self->iScreenSaverPreviewing = EFalse;
if ( self->iContainer )
{
@@ -563,6 +564,12 @@
//
void CPslnScreenSaverView::HandleScreenSaverActivationL( TInt aCurrentItem )
{
+ // Protect screensaver type during preview.
+ if ( iScreenSaverPreviewing )
+ {
+ return;
+ }
+
TInt PsmMode = 0;
iPsmClient->PsmSettings().GetCurrentMode( PsmMode );
if ( PsmMode == EPsmsrvModePowerSave ) // PSM on, setting is protected
@@ -610,6 +617,12 @@
//
void CPslnScreenSaverView::HandleScreenSaverPreviewL( TInt aCurrentItem )
{
+ // Stop responding to preview again if screensaver is being previewed.
+ if ( iScreenSaverPreviewing )
+ {
+ return;
+ }
+
TRAPD( err, DoInvokeScreenSaverFunctionL(
aCurrentItem,
EScpCapsPreviewNotification ) );
@@ -619,7 +632,8 @@
// Start listening for screensaver preview mode key changes.
CreatePreviewModeSubscriberL();
CreatePreviewStateSubscriberL();
-
+
+ iScreenSaverPreviewing = ETrue;
User::LeaveIfError(
iModel->ActivateScreenSaver(
aCurrentItem,
--- a/uifw/AvKon/aknhlist/BWINS/aknhlistU.def Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/aknhlist/BWINS/aknhlistU.def Wed Sep 15 12:29:17 2010 +0300
@@ -74,4 +74,5 @@
?SetEmptyTextL@CAknTreeList@@QAEXABVTDesC16@@@Z @ 73 NONAME ; void CAknTreeList::SetEmptyTextL(class TDesC16 const &)
?VisibleItemIndex@CAknTreeList@@QBEHH@Z @ 74 NONAME ; int CAknTreeList::VisibleItemIndex(int) const
?SetMarkingModeObserver@CAknTreeList@@QAEXPAVMAknMarkingModeObserver@@@Z @ 75 NONAME ; void CAknTreeList::SetMarkingModeObserver(class MAknMarkingModeObserver *)
+ ?SetMarkingMode@CAknTreeList@@QAEXH@Z @ 76 NONAME ; void CAknTreeList::SetMarkingMode(int)
--- a/uifw/AvKon/aknhlist/EABI/aknhlistU.def Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/aknhlist/EABI/aknhlistU.def Wed Sep 15 12:29:17 2010 +0300
@@ -74,4 +74,5 @@
_ZN12CAknTreeList13SetEmptyTextLERK7TDesC16 @ 73 NONAME
_ZNK12CAknTreeList16VisibleItemIndexEi @ 74 NONAME
_ZN12CAknTreeList22SetMarkingModeObserverEP23MAknMarkingModeObserver @ 75 NONAME
+ _ZN12CAknTreeList14SetMarkingModeEi @ 76 NONAME
--- a/uifw/AvKon/aknhlist/group/aknhlist.mmp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/aknhlist/group/aknhlist.mmp Wed Sep 15 12:29:17 2010 +0300
@@ -41,6 +41,8 @@
MW_LAYER_SYSTEMINCLUDE
OS_LAYER_LIBC_SYSTEMINCLUDE
+SYSTEMINCLUDE ../../../EikStd/coctlinc
+
SOURCEPATH ../src
SOURCE aknhlistlib.cpp
SOURCE akntreelist.cpp
--- a/uifw/AvKon/aknhlist/inc/akntreelistview.h Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/aknhlist/inc/akntreelistview.h Wed Sep 15 12:29:17 2010 +0300
@@ -930,6 +930,14 @@
*/
TBool HasMarkedItemsL() const;
+ /**
+ * Turns the marking mode on / off.
+ *
+ * @param aEnable @c ETrue to turn marking mode on
+ * @c EFalse to turn marking mode off
+ */
+ void SetMarkingMode( TBool aEnable );
+
// From MAknCollection
/**
* Returns the collection state. The state is combination of
--- a/uifw/AvKon/aknhlist/src/akntreelist.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/aknhlist/src/akntreelist.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -675,6 +675,16 @@
// ---------------------------------------------------------------------------
+// CAknTreeList::SetMarkingMode
+// ---------------------------------------------------------------------------
+//
+EXPORT_C void CAknTreeList::SetMarkingMode( TBool aEnable )
+ {
+ View().SetMarkingMode( aEnable );
+ }
+
+
+// ---------------------------------------------------------------------------
// Handles key events by mediating them to the view.
// ---------------------------------------------------------------------------
//
--- a/uifw/AvKon/aknhlist/src/akntreelistview.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/aknhlist/src/akntreelistview.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -30,6 +30,7 @@
#include <avkon.mbg>
#include <gulicon.h>
#include <aknmarkingmodeobserver.h>
+#include <aknmarkingmode.h>
#include "akntreelistview.h"
#include "akntree.h"
#include "akntreelist.h"
@@ -2971,6 +2972,8 @@
const TInt itemCount = iItems.Count();
for ( TInt ii = 0; ii < itemCount; ++ii )
{
+ TBool itemIsMarkable = ( iItems[ii].Item() &&
+ iItems[ii].Item()->IsMarkable() );
TRect drawRect( iItems[ii].Rect() );
if ( iFlags.IsSet( EFlagMarkingMode ) )
@@ -3087,7 +3090,7 @@
if ( iFlags.IsSet( EFlagMarkingMode ) && iMarkingIconArray
&& iMarkingIconArray->Count() ==
- KMarkingModeIconArraySize )
+ KMarkingModeIconArraySize && itemIsMarkable )
{
// Rect for the marking icon
TRect iconRect = RectFromLayout( drawRect,
@@ -3604,6 +3607,18 @@
return ( count > 0 );
}
+// ---------------------------------------------------------------------------
+// CAknTreeListView::SetMarkingMode
+// ---------------------------------------------------------------------------
+//
+void CAknTreeListView::SetMarkingMode( TBool aEnable )
+ {
+ if ( ( iFlags.IsSet( EFlagMarkingMode ) != aEnable ) && iItemActionMenu )
+ {
+ iItemActionMenu->MarkingMode().SetCollectionMultipleMarkingState(
+ aEnable );
+ }
+ }
#ifdef RD_UI_TRANSITION_EFFECTS_LIST
// ---------------------------------------------------------------------------
--- a/uifw/AvKon/src/AknCharMap.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/src/AknCharMap.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -6269,7 +6269,9 @@
TBool CAknCharMap::IsKoreanSctUi() const
{
- return FeatureManager::FeatureSupported( KFeatureIdKorean );
+ // Korean feature dropped half-screen SCT in 9.2, it has the same
+ // behavior with others, so return false here
+ return EFalse;
}
// -----------------------------------------------------------------------------
// CAknCharMap::TitleWithSelectingSpecialChar()
--- a/uifw/AvKon/src/AknPreviewPopUp.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/src/AknPreviewPopUp.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -360,7 +360,7 @@
TRAP_IGNORE( CreateClosingIconL() );
}
break;
-
+
case KEikDynamicLayoutVariantSwitch:
if ( iFlags & CAknPreviewPopUpController::EFixedMode )
{
--- a/uifw/AvKon/src/AknPreviewPopUpController.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/src/AknPreviewPopUpController.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -131,6 +131,15 @@
//
CAknPreviewPopUpController::~CAknPreviewPopUpController()
{
+ // If transition effect is on, when the deleting is caused by pressing red key
+ // (the font for CONE is already destroyed), the preview popup's hide operation
+ // will call its draw operation which will use the deleted font, thus panic happens;
+ // we hide the popup here in advance to prevent transation effect from drawing.
+ if( iPopUp->IsVisible() )
+ {
+ iPopUp->MakeVisible( EFalse );
+ }
+
Cancel();
delete iPopUp;
iObservers.Reset();
--- a/uifw/AvKon/src/AknQueryControl.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/src/AknQueryControl.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -3396,7 +3396,7 @@
to open in input dialog (usability). The valid area is enlarged to editor frame rect,
instead of text's rect, because text rect is too small for user to tap*/
CCoeControl* ctrl = ControlByLayoutOrNull( iQueryType );
- if( ctrl )
+ if( ctrl && !EmbeddedVirtualInput() )
{
TPointerEvent pointerEvent( aPointerEvent );
if( !ctrl->Rect().Contains( aPointerEvent.iPosition ) && ( NbrOfEditorLines() == 1 ) )
--- a/uifw/AvKon/src/AknQueryDialog.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/src/AknQueryDialog.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -2121,6 +2121,10 @@
CEikCaptionedControl *ctrl2 = GetLineByLineAndPageIndex(line2, 0);
TryChangeFocusToL(ctrl2->iId);
HandleOrientationSwitch();
+ // In landscape mode, the first and second lines are at the same position,
+ // so set the height of first line¡¯s control to 0 to prevent it from being
+ // selected by touch event.
+ ctrl1->SetSize( TSize( ctrl1->Size().iWidth, 0 ) );
UpdateLeftSoftKeyL();
_AKNTRACE( "[%s][%s] return EFalse", "CAknMultiLineDataQueryDialog", __FUNCTION__);
--- a/uifw/AvKon/src/AknSctDialog.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/src/AknSctDialog.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -106,6 +106,7 @@
TAknCharMapPictoMode iPictoMode;
TAknCharMapEmotionMode iEmotionMode;
TBool iFirstOrientation;
+ TBool iSimKeyDown;
};
// -----------------------------------------------------------------------------
@@ -116,7 +117,8 @@
//
CAknCharMapDialogExtension::CAknCharMapDialogExtension(CAknCharMapDialog* aCaller) :
iFlags(0), iQwertyMode(EFalse), iCaller(aCaller),
-iShowAnotherTableCharCase(-1), iPictoMode(EAknCharMapPictoNoUse), iEmotionMode(EAknCharMapEmotionNoUse)
+iShowAnotherTableCharCase(-1), iPictoMode(EAknCharMapPictoNoUse), iEmotionMode(EAknCharMapEmotionNoUse),
+iSimKeyDown( EFalse )
{
}
@@ -297,22 +299,7 @@
// to select multiple characters before.
if (aButtonId == EAknSoftkeyOk || aButtonId == EAknSoftkeySelect || aButtonId == EAknSoftkeyExit)
{
- // In Korean UI, SCT isn't closed by pressing "Select" softkey,
- // but SCT is closed by pressing "Back"(button id is EAknSoftkeyClose).
- // Japanese feature for SCT will not be supported since TB9.2 PS2,
- // so remove the code for Japanese SCT.
MAknSctFocusHandler* handler = charmapControl->FocusHandler();
- if ( charmapControl->IsKoreanSctUi() &&
- aButtonId != EAknSoftkeyExit &&
- handler->FocusedControl() == charmapControl)
- {
- TKeyEvent key;
- key.iCode=EKeySpace;
- key.iModifiers=0;
- handler->FocusedControl()->OfferKeyEventL(key, EEventKey);
- return(EFalse);
- }
- // else
TKeyEvent key;
key.iCode=EKeyOK;
key.iModifiers=0;
@@ -494,20 +481,35 @@
break;
}
}
- else if (aModifiers == EEventKeyUp)
+ else if ( aModifiers == EEventKeyDown )
{
- switch (aKeyEvent.iScanCode)
+ switch ( aKeyEvent.iScanCode )
{
case EStdKeyLeftFunc:
case EStdKeyRightFunc:
{
- if (!aKeyEvent.iRepeats) // switch another table when repeat count is 0 only.
+ iExtension->iSimKeyDown = ETrue;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ else if ( aModifiers == EEventKeyUp )
+ {
+ switch ( aKeyEvent.iScanCode )
+ {
+ case EStdKeyLeftFunc:
+ case EStdKeyRightFunc:
+ {
+ if ( !aKeyEvent.iRepeats && iExtension->iSimKeyDown ) // switch another table when repeat count is 0 only.
{
if (!isLockNumericKeys) // Check whether current input mode is Qwerty.
{
SwitchTablesOrPagesL();
}
}
+ iExtension->iSimKeyDown = EFalse;
}
break;
default:
--- a/uifw/AvKon/src/AknViewAppUi.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/src/AknViewAppUi.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -99,6 +99,13 @@
TInt iFlags;
#endif // RD_SPLIT_VIEW
TBool iUseDefaultScreenClearer;
+
+ /**
+ * Used to control whether or not the default screen clearer
+ * is used when launching the application as embedded. By default the
+ * clearer isn't used for embedded applications.
+ */
+ TBool iUseDefaultScreenClearerInEmbeddedLaunch;
};
// ============================ MEMBER FUNCTIONS ===============================
@@ -239,8 +246,12 @@
if ( iEikonEnv->RootWin().OrdinalPosition() == 0 &&
iExtension->iUseDefaultScreenClearer )
{
- if ( !iEikonEnv->StartedAsServerApp() )
+ if ( !iEikonEnv->StartedAsServerApp() ||
+ iExtension->iUseDefaultScreenClearerInEmbeddedLaunch )
{
+ // Use transparent screen clearer for embedded applications,
+ // except for when application wants to use the normal
+ // screen clearer.
iClearer = CAknLocalScreenClearer::NewL( ETrue );
}
else
@@ -1014,18 +1025,16 @@
TRAP_IGNORE( iExtension = CAknViewAppUiExtension::NewL() );
}
- // Update flag
+ // Update the flags
if ( iExtension )
{
iExtension->iUseDefaultScreenClearer = aEnable;
+ iExtension->iUseDefaultScreenClearerInEmbeddedLaunch = aEnable;
}
- // Create/delete iClearer if required
- if ( aEnable && !iClearer )
- {
- TRAP_IGNORE( iClearer = CAknLocalScreenClearer::NewL( EFalse ) );
- }
- else if ( !aEnable && iClearer )
+ // Delete the clearer if it already exists but isn't required anymore.
+ // The clearer is created when needed on BaseConstructL.
+ if ( !aEnable && iClearer )
{
delete iClearer;
iClearer = NULL;
--- a/uifw/AvKon/src/akncolourselectiongrid.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/src/akncolourselectiongrid.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -89,7 +89,7 @@
}
TRect mainPane;
- AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EPopupParent, mainPane );
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EScreen, mainPane );
TAknLayoutRect colourPopupWindow;
colourPopupWindow.LayoutRect(mainPane, AknLayoutScalable_Avkon::popup_large_graphic_colour_window(colourPopupVariety));
--- a/uifw/AvKon/src/aknnavi.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/src/aknnavi.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -32,6 +32,8 @@
#include <akniconconfig.h>
#include <AknTasHook.h>
+#include <AknPriv.hrh>
+
// USER INCLUDE FILES
#include "aknenv.h"
#include "AknDef.h"
@@ -2008,26 +2010,47 @@
//
void CAknNavigationControlContainer::HandleLosingForeground()
{
- // If volume popup is shown when the navi pane loses foreground,
- // then the popup needs to be closed if shown, and the volume control
- // told that it's not the topmost control.
+ // Get the top control on navi pane.
CAknNavigationDecorator* topControl = Top();
if ( topControl )
{
- if ( topControl &&
- topControl->ControlType() == CAknNavigationDecorator::ENaviVolume )
+ switch( topControl->ControlType() )
{
- CAknVolumePopup* volumePopup =
- static_cast<CAknVolumePopup*> (
- topControl->iDecoratedControl );
+ case CAknNavigationDecorator::ENaviVolume:
+ {
+ // If volume popup is shown when the navi pane loses foreground,
+ // then the popup needs to be closed if shown, and the volume control
+ // told that it's not the topmost control.
+ CAknVolumePopup* volumePopup =
+ static_cast<CAknVolumePopup*> (
+ topControl->iDecoratedControl );
- if ( volumePopup )
+ if ( volumePopup )
+ {
+ volumePopup->CloseVolumePopup();
+ static_cast<CAknVolumeControl*>(
+ topControl->DecoratedControl() )->HandleNaviStackChange( EFalse );
+ }
+ break;
+ }
+ case CAknNavigationDecorator::ETabGroup:
{
- volumePopup->CloseVolumePopup();
- static_cast<CAknVolumeControl*>(
- topControl->DecoratedControl() )->HandleNaviStackChange( EFalse );
+ // If tabgroup is shown when navi pane loses foreground, forward
+ // KAknMessageFocusLost event to tabgroup. Tab panes will stop highlighting
+ // the pressed tab.
+ CAknTabGroup* tabGroup =
+ static_cast<CAknTabGroup*> (
+ topControl->iDecoratedControl );
+
+ if ( tabGroup )
+ {
+ tabGroup->HandleResourceChange(KAknMessageFocusLost);
+ }
+ break;
}
+ default:
+ break;
}
}
}
--- a/uifw/AvKon/src/aknsfld.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/src/aknsfld.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -799,6 +799,10 @@
}
iListBox->DrawNow();
}
+ }
+ else if( aCommandId == EAknCmdHideASGrid && iAdaptiveSearch )
+ {
+ iAdaptiveSearch->HideAdaptiveSearchGridL();
}
}
--- a/uifw/AvKon/src/aknsgcc.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/src/aknsgcc.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -80,8 +80,12 @@
inline CAknSgcClient* CAknSgcClient::Static()
- { return static_cast<CAknSgcClient*>(CCoeEnv::Static(KAknSgcClientStaticId)); }
-
+ {
+ if (CCoeEnv::Static())
+ return static_cast<CAknSgcClient*>(CCoeEnv::Static(KAknSgcClientStaticId));
+ else
+ return NULL;
+ }
NONSHARABLE_CLASS(TSgcClientStatusPaneRedrawCoordinator) : public MAknSgcStatusPaneRedrawCoordinator
--- a/uifw/AvKon/src/akntabgrp.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/AvKon/src/akntabgrp.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -38,6 +38,7 @@
#include <AknTasHook.h>
#include <touchfeedback.h>
+#include <AknPriv.hrh>
// USER INCLUDE FILES
#include "aknappui.h"
@@ -2916,21 +2917,9 @@
// pointer position.
newTab = iActiveTab;
}
- iExtension->iPointerDownTab = newTab;
- iExtension->iPointerDownXPosition = aPointerEvent.iPosition.iX;
//Activates highlight drawing for pressed tab.
- if (!iExtension->iHighlight)
- {
- iExtension->iHighlight = ETrue;
-
- // Set the pressed tab to highlight
- if ( iExtension->iPointerDownTab >= 0 )
- {
- iTabArray->At( iExtension->iPointerDownTab )->SetHighlight( ETrue );
- }
- DrawDeferred();
- }
+ EnableHighlight( ETrue, newTab, aPointerEvent.iPosition.iX );
return;
}
@@ -2961,14 +2950,7 @@
// if the button up event occurs ouside tabgroup, ignore it.
if ( !Rect().Contains( aPointerEvent.iPosition ) || iExtension->iPointerDownTab != newTab )
{
- iExtension->iPointerDownTab = -1;
- iExtension->iPointerDownXPosition = -1;
- if (iExtension->iHighlight)
- {
- iExtension->iHighlight = EFalse;
- ResetHighlightStatus();
- DrawDeferred();
- }
+ EnableHighlight( EFalse );
return;
}
@@ -3075,14 +3057,7 @@
}
}
- iExtension->iPointerDownTab = -1;
- iExtension->iPointerDownXPosition = -1;
- if( iExtension->iHighlight )
- {
- iExtension->iHighlight = EFalse;
- ResetHighlightStatus();
- DrawDeferred();
- }
+ EnableHighlight( EFalse );
}
}
}
@@ -3436,6 +3411,12 @@
TRAP_IGNORE( InitTabGroupGraphicsL() );
TRAP_IGNORE( LoadTabBitmapsL( iNumberOfTabsShown, iLongTabs ) );
}
+
+ // Stop highlighting the pressed tab when receives KAknMessageFocusLost event.
+ if( aType == KAknMessageFocusLost )
+ {
+ EnableHighlight(EFalse);
+ }
if ( aType == KEikDynamicLayoutVariantSwitch )
{
@@ -3466,11 +3447,7 @@
if ( iExtension )
{
iExtension->iNarrowTabLayout = EFalse;
- if( iExtension->iHighlight )
- {
- iExtension->iHighlight = EFalse;
- ResetHighlightStatus();
- }
+ EnableHighlight(EFalse);
}
if ( !COMPARE_BOOLS( iMirrored, AknLayoutUtils::LayoutMirrored() ) )
@@ -4520,4 +4497,34 @@
iTabArray->At(i)->SetHighlight( EFalse );
}
}
+
+void CAknTabGroup::EnableHighlight( TBool aEnable, TInt aNewTab , TInt aPointX )
+ {
+ iExtension->iPointerDownTab = aNewTab;
+ iExtension->iPointerDownXPosition = aPointX;
+ if( aEnable )
+ {
+ //Activates highlight drawing for pressed tab.
+ if (!iExtension->iHighlight)
+ {
+ iExtension->iHighlight = ETrue;
+
+ // Set the pressed tab to highlight
+ if ( iExtension->iPointerDownTab >= 0 )
+ {
+ iTabArray->At( iExtension->iPointerDownTab )->SetHighlight( ETrue );
+ }
+ DrawDeferred();
+ }
+ }
+ else
+ {
+ if (iExtension->iHighlight)
+ {
+ iExtension->iHighlight = EFalse;
+ ResetHighlightStatus();
+ DrawDeferred();
+ }
+ }
+ }
// End of File
--- a/uifw/EikStd/EABI/EIKCOCTLU.DEF Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/EikStd/EABI/EIKCOCTLU.DEF Wed Sep 15 12:29:17 2010 +0300
@@ -2018,4 +2018,6 @@
_ZN22CAknLocalScreenClearer4NewLEii @ 2017 NONAME
_ZN22CAknLocalScreenClearer5NewLCEii @ 2018 NONAME
_ZN9CEikEdwin10EnableT2WLEi @ 2019 NONAME
+ _ZN15CAknMarkingMode33SetCollectionMultipleMarkingStateEi @ 2020 NONAME
+ _ZN18CAknItemActionMenu11MarkingModeEv @ 2021 NONAME
--- a/uifw/EikStd/bwins/EIKCOCTLU.DEF Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/EikStd/bwins/EIKCOCTLU.DEF Wed Sep 15 12:29:17 2010 +0300
@@ -1629,3 +1629,6 @@
?NewLC@CAknLocalScreenClearer@@SAPAV1@HH@Z @ 1628 NONAME ; class CAknLocalScreenClearer * CAknLocalScreenClearer::NewLC(int, int)
?NewL@CAknLocalScreenClearer@@SAPAV1@HH@Z @ 1629 NONAME ; class CAknLocalScreenClearer * CAknLocalScreenClearer::NewL(int, int)
?EnableT2WL@CEikEdwin@@QAEXH@Z @ 1630 NONAME ; void CEikEdwin::EnableT2WL(int)
+ ?MarkingMode@CAknItemActionMenu@@QAEAAVCAknMarkingMode@@XZ @ 1631 NONAME ; class CAknMarkingMode & CAknItemActionMenu::MarkingMode(void)
+ ?SetCollectionMultipleMarkingState@CAknMarkingMode@@QAEXH@Z @ 1632 NONAME ; void CAknMarkingMode::SetCollectionMultipleMarkingState(int)
+
--- a/uifw/EikStd/coctlinc/aknmarkingmode.h Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/EikStd/coctlinc/aknmarkingmode.h Wed Sep 15 12:29:17 2010 +0300
@@ -56,7 +56,7 @@
* @internal
* @param aActive ETrue if multiple marking should be active.
*/
- void SetCollectionMultipleMarkingState( TBool aActive );
+ IMPORT_C void SetCollectionMultipleMarkingState( TBool aActive );
/**
* Ends marking mode if collection allows it
--- a/uifw/EikStd/coctlsrc/AknButton.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/EikStd/coctlsrc/AknButton.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -2307,11 +2307,11 @@
{
return;
}
- TBool hitArea( EFalse );
- TRAP_IGNORE( hitArea = HitAreaContainsL( aPointerEvent.iPosition, EFalse ))
- if ( ( iFlags & KAknButtonHitTest ) && !hitArea )
+ //Using HitAreaContainsL() to verify whether pointer event locates in valid area
+ //when KAknButtonHitTest is defined.
+ if ( iFlags & KAknButtonHitTest )
{
- buttonEvent = EFalse;
+ TRAP_IGNORE( buttonEvent = HitAreaContainsL( aPointerEvent.iPosition, EFalse ))
}
TBool redrawNeeded(EFalse);
--- a/uifw/EikStd/coctlsrc/EIKCOLIB.CPP Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKCOLIB.CPP Wed Sep 15 12:29:17 2010 +0300
@@ -558,6 +558,16 @@
}
TRect wndRc( splitwnd.Rect() );
+
+ if ( !Layout_Meta_Data::IsLandscapeOrientation() )
+ {
+ // include indicator pane height
+ TAknWindowLineLayout indiPane = AknLayoutScalable_Avkon::icf_edit_indi_pane( 2 ).LayoutLine();
+ TAknLayoutRect indiRect;
+ indiRect.LayoutRect(splitwnd.Rect(), indiPane);
+ wndRc.iTl.iY -= indiRect.Rect().Height();
+ }
+
inputTop = wndRc.iTl.iY;
rect.iBr.iY = rect.iBr.iY > inputTop ? inputTop : rect.iBr.iY;
rect.iTl.iY = 0;
--- a/uifw/EikStd/coctlsrc/EIKCTGRP.CPP Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKCTGRP.CPP Wed Sep 15 12:29:17 2010 +0300
@@ -348,23 +348,11 @@
{
TInt count = iControlArray->Count();
- // This prevents MSK from drawing in landscape layouts.
- // Also MSK doesn't even need to be activated in landscape modes.
- if ( count == 4 )
- {
- // Exception is made for idle flat status pane layouts,
- // in which the MSK is used also in landscape.
- TBool mskSupportedLscLayoutActive(
- AVKONENV->StatusPaneResIdForCurrentLayout(
- AknStatuspaneUtils::CurrentStatusPaneLayoutResId() ) ==
- R_AVKON_WIDESCREEN_PANE_LAYOUT_IDLE_FLAT_NO_SOFTKEYS );
-
- if ( iLayout & EDisableMSKDrawing ||
- ( Layout_Meta_Data::IsLandscapeOrientation() &&
- !mskSupportedLscLayoutActive ) )
- {
- count--;
- }
+ // count == 4 means MSK is on, but when it is disabled by EDisableMSKDrawing,
+ // we should decrease the count to avoid drawing it.
+ if ( count == 4 && ( iLayout & EDisableMSKDrawing ) )
+ {
+ count--;
}
return count;
--- a/uifw/EikStd/coctlsrc/EIKEDWIN.CPP Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/EikStd/coctlsrc/EIKEDWIN.CPP Wed Sep 15 12:29:17 2010 +0300
@@ -102,14 +102,16 @@
#include "smileycustomwrap.h"
#include <touchfeedback.h>
-// declare function
-void ReadSpecialCharFromSCTL( TPtr& ptr, TInt sctResourceId );
-void ReadSCTHeadPane( TResourceReader& aReader );
// for supporting TapToWrite
#include <AvkonInternalCRKeys.h>
#include <e32property.h>
#include <AknFepInternalPSKeys.h>
#include <AknFontAccess.h>
+#include <AvkonInternalCRKeys.h> // KAknQwertyInputModeActive
+
+// declare function
+void ReadSpecialCharFromSCTL( TPtr& ptr, TInt sctResourceId );
+void ReadSCTHeadPane( TResourceReader& aReader );
GLDEF_C void Panic(TEikEdwinPanic aPanic)
{
@@ -1075,6 +1077,14 @@
}
delete iCenRepNotifyHandler;
delete iCenRep;
+
+ // Stop listening CenRep for qwerty key board.
+ if ( iCenRepNotifyHandlerForQwerty )
+ {
+ iCenRepNotifyHandlerForQwerty->StopListening();
+ }
+ delete iCenRepNotifyHandlerForQwerty;
+ delete iCenRepForQwerty;
delete iFormAccessor;
delete iFormCursorModifier;
@@ -1226,6 +1236,19 @@
iCenRepNotifyHandler->StartListeningL();
iCenRep->Get(KAknFepClearDirection, iClearDirection);
}
+ // Start listening a CenRep key indicating whether qwerty input mode is active.
+ TRAPD( error, iCenRepForQwerty = CRepository::NewL( KCRUidAvkon ) );
+ if ( error == KErrNone )
+ {
+ iCenRepNotifyHandlerForQwerty = CCenRepNotifyHandler::NewL( *this,
+ *iCenRepForQwerty,
+ CCenRepNotifyHandler::EIntKey,
+ KAknQwertyInputModeActive );
+
+ iCenRepNotifyHandlerForQwerty->StartListeningL();
+ iCenRepForQwerty->Get( KAknQwertyInputModeActive, iQwertyStatus );
+ }
+
iSmileyWrap = new ( ELeave ) CSmileyCustomWrap;
iSkinInstance = AknsUtils::SkinInstance();
}
@@ -1315,6 +1338,12 @@
{
iClearDirection = (TBool)aNewValue;
}
+ //If qwerty key board is opened clean the "tap to write", if qwerty key board is closed display the "tap to write"
+ else if ( aId == KAknQwertyInputModeActive )
+ {
+ iQwertyStatus = ( TBool )aNewValue;
+ iEdwin->TryToDrawT2W( iQwertyStatus );
+ }
}
// ---------------------------------------------------------------------------
@@ -2412,6 +2441,11 @@
break; // prevent eg Ctrl-I inserting a tab
goto InChar;
default:
+ // If ctrl + key is not hotkey return not consume.
+ if ( magnify )
+ {
+ return EKeyWasNotConsumed;
+ }
if (code>=ENonCharacterKeyBase || !TChar(code).IsPrint() || (!IsValidChar(code)))
{
ret=EKeyWasNotConsumed;
@@ -4490,8 +4524,7 @@
!( iEdwinUserFlags & EDisplayOnly ) && iEdwinExtension->iT2WBuf &&
( iEdwinExtension->iT2WState & CEikEdwinExtension::EFocusOn ) &&
!( iEdwinExtension->iT2WState & CEikEdwinExtension::ESplitInputEnabled ) &&
- !( iEdwinExtension->iExtendedInputCapabilities->Capabilities() &
- CAknExtendedInputCapabilities::EInputEditorQwertyInputActive );
+ !( iEdwinExtension->iQwertyStatus );
}
void CEikEdwin::SetCursorVisibilityL(TBool aEmphasis)
@@ -8744,10 +8777,11 @@
TBool partialScreenDisabled( !( aNewFlags & EAknEditorFlagEnablePartialScreen ) &&
( aOldFlags & EAknEditorFlagEnablePartialScreen ) );
-
- if ( ( textViewHideEnabled &&
- !( aNewFlags & EAknEditorFlagEnablePartialScreen ) ) ||
- ( partialScreenDisabled && ( aNewFlags & EAknEditorFlagHideTextView ) ) )
+
+ if ( IsActivated() &&
+ ( ( textViewHideEnabled && !( aNewFlags & EAknEditorFlagEnablePartialScreen ) ) ||
+ ( partialScreenDisabled && ( aNewFlags & EAknEditorFlagHideTextView ) ) )
+ )
{
iTextView->MakeVisible( EFalse );
iEdwinExtension->iTextViewHidden = ETrue;
@@ -9137,13 +9171,7 @@
for (TInt i = 0; i < text.Length(); i++)
{
TChar character(text[i]);
- if (text[i] == ' ')
- return ETrue;
-
- TChar::TCategory category = character.GetCategory();
-
- if ( !( ( ( category & TChar::ESeparatorGroup ) == TChar::ESeparatorGroup ) ||
- ( text[i] >= 0x200B && text[i] <= 0xFFFC ) ) )
+ if ( character.IsPrint() )
{
ret = ETrue;
break;
--- a/uifw/EikStd/coctlsrc/aknitemactionmenu.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknitemactionmenu.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -219,6 +219,18 @@
// ---------------------------------------------------------------------------
+// CAknItemActionMenu::MarkingMode
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CAknMarkingMode& CAknItemActionMenu::MarkingMode()
+ {
+ _AKNTRACE_FUNC_ENTER;
+ _AKNTRACE_FUNC_EXIT;
+ return *iMarking;
+ }
+
+
+// ---------------------------------------------------------------------------
// CAknItemActionMenu::AddCollectionStateL
// ---------------------------------------------------------------------------
//
@@ -381,18 +393,6 @@
// ---------------------------------------------------------------------------
-// CAknItemActionMenu::MarkingMode
-// ---------------------------------------------------------------------------
-//
-CAknMarkingMode& CAknItemActionMenu::MarkingMode()
- {
- _AKNTRACE_FUNC_ENTER;
- _AKNTRACE_FUNC_EXIT;
- return *iMarking;
- }
-
-
-// ---------------------------------------------------------------------------
// CAknItemActionMenu::CollectionHasMarkedItems
// ---------------------------------------------------------------------------
//
--- a/uifw/EikStd/coctlsrc/aknmarkingmode.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknmarkingmode.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -59,7 +59,8 @@
// CAknMarkingMode::SetCollectionMultipleMarkingState
// ---------------------------------------------------------------------------
//
-void CAknMarkingMode::SetCollectionMultipleMarkingState( TBool aActive )
+EXPORT_C void CAknMarkingMode::SetCollectionMultipleMarkingState(
+ TBool aActive )
{
_AKNTRACE_FUNC_ENTER;
for ( TInt i = 0; i < iCollections.Count(); i++ )
@@ -121,17 +122,12 @@
for ( TInt i = 0; i < iCollections.Count(); i++ )
{
MAknCollection* collection( iCollections[i] );
- if ( collection->CollectionState() &
- MAknCollection::EStateCollectionVisible )
+ MAknMarkingCollection* markingCollection
+ = MarkingCollection( *collection );
+ if ( markingCollection )
{
- MAknMarkingCollection* markingCollection
- = MarkingCollection( *collection );
- if ( markingCollection )
- {
- markingActive = markingCollection->MarkingState()
- & MAknMarkingCollection::EStateMarkingMode;
- }
- break;
+ markingActive = markingCollection->MarkingState()
+ & MAknMarkingCollection::EStateMarkingMode;
}
}
_AKNTRACE_FUNC_EXIT;
--- a/uifw/EikStd/coctlsrc/aknstyluspopupmenu.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknstyluspopupmenu.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -426,14 +426,7 @@
{
if ( aControl && aEventType == EEventStateChanged )
{
- if ( iPreviewPopup )
- {
- iPreviewPopup->HidePopUp();
- }
- if ( iController )
- {
- iController->HidePopUp();
- }
+ HidePreviewPopup();
if ( iMenuObserver )
{
@@ -463,20 +456,14 @@
}
else if ( aControl && aEventType == EEventRequestExit )
{
- if ( iPreviewPopup )
- {
- iPreviewPopup->HidePopUp();
- }
-
- if ( iController )
- {
- iController->HidePopUp();
- }
+ HidePreviewPopup();
StartControllerIdleL();
}
else if ( aControl && aEventType == EEventRequestCancel )
{
+ HidePreviewPopup();
+
if ( iMenuObserver )
{
TBool isAlreadySet = iFlags.IsSet( EIdleDisabled );
@@ -587,3 +574,20 @@
{
static_cast<CAknStylusPopUpMenu*>( aParam )->iIsDeleted = NULL;
}
+
+// -----------------------------------------------------------------------------
+// Hide Preview Popups
+// -----------------------------------------------------------------------------
+//
+void CAknStylusPopUpMenu::HidePreviewPopup()
+ {
+ if ( iPreviewPopup )
+ {
+ iPreviewPopup->HidePopUp();
+ }
+
+ if ( iController )
+ {
+ iController->HidePopUp();
+ }
+ }
--- a/uifw/EikStd/coctlsrc/aknstyluspopupmenucontent.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/EikStd/coctlsrc/aknstyluspopupmenucontent.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -1026,7 +1026,7 @@
layoutText.DrawText( aGc, *(iItems[aItem]->iText), ETrue, textColor );
- if ( aItem < iItems.Count()-1 )
+ if ( aItem < iLastVisibleItem )
{
AknListUtils::DrawSeparator( aGc, rect, textColor, skin );
}
@@ -1214,11 +1214,11 @@
{
iSBFrame->DrawBackground( EFalse, EFalse );
if ( AknLayoutUtils::LayoutMirrored() )
- {
+ {
listRect.iTl.iX += AknLayoutScalable_Avkon::scroll_pane().LayoutLine().iW;
- }
+ }
else
- {
+ {
listRect.iBr.iX -= AknLayoutScalable_Avkon::scroll_pane().LayoutLine().iW;
}
}
@@ -1227,14 +1227,14 @@
else
{
if ( AknLayoutUtils::LayoutMirrored() )
- {
+ {
listRect.iTl.iX += AknLayoutScalable_Avkon::scroll_pane().LayoutLine().iW;
- }
+ }
else
- {
+ {
listRect.iBr.iX -= AknLayoutScalable_Avkon::scroll_pane().LayoutLine().iW;
- }
- }
+ }
+ }
}
@@ -1295,12 +1295,18 @@
iItems[i]->iRect = itemRect;
}
- if ( lastItem == iItems.Count() || ( Rect().Height() % singleItemHeight ) == 0 )
+ // info:
+ // 1, according to the function MinimumSize the following
+ // condition is always true: Rect().Height() % singleItemHeight == 0
+ // 2, the Offset is in the range of [0 , singleItemHeight)
+ // we get partial items only when Offset is not zero during scrolling
+ // note:
+ // should subtract the lastItem when Offset is zero without partical items
+ if ( lastItem == iItems.Count() || ( 0 == Offset() ) )
{
- // substract the partially visible item
--lastItem;
}
-
+
return lastItem;
}
--- a/uifw/EikStd/coctlsrc/eikcba.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/EikStd/coctlsrc/eikcba.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -132,7 +132,7 @@
result = ETrue;
}
}
-
+ _AKNTRACE( "IsMskEnabledLayoutActive is %d", result );
_AKNTRACE_FUNC_EXIT;
return result;
}
@@ -784,9 +784,10 @@
*/
TBool Active() const
{
- _AKNTRACE_FUNC_ENTER;
- _AKNTRACE_FUNC_EXIT;
- return iOwner.IsVisible() && !iOwner.IsEmpty();
+ TBool ret;
+ ret = iOwner.IsVisible() && !iOwner.IsEmpty();
+ _AKNTRACE( "Active is %d", ret );
+ return ret;
}
/*
@@ -2956,8 +2957,8 @@
// If the status pane is invisible in landscape, softkey need to draw frame to cover
// the area of combine pane.
CEikStatusPaneBase* statusPane = CEikStatusPaneBase::Current();
- if (statusPane && !statusPane->IsVisible() && isLandscapeOrient &&
- statusPane->PaneCapabilities(TUid::Uid(EEikStatusPaneUidCombined)).IsInCurrentLayout())
+ if ( ( iCbaFlags & EEikCbaFlagAppMskIcon ) || ( statusPane && !statusPane->IsVisible() && isLandscapeOrient &&
+ statusPane->PaneCapabilities(TUid::Uid(EEikStatusPaneUidCombined)).IsInCurrentLayout()))
{
iFlags.Set( ECbaCombinePaneUncovered );
}
@@ -2983,90 +2984,95 @@
// If status indicators and clock are shown in control pane area,
// then remove those areas from cba window region.
//
- // NOTE: MSK is not supported in landscape.
+ //
+ // NOTE: MSK is not supported in landscape except the flag EEikCbaFlagAppMskIcon is defined .
//
- if ( statusPane &&
+
+ if ( !(iCbaFlags & EEikCbaFlagAppMskIcon ) )
+ {
+ if( statusPane &&
statusPane->IsVisible() &&
AknStatuspaneUtils::ExtendedFlatLayoutActive() )
- {
- if ( iBgIID == KAknsIIDQsnBgAreaControlMp )
- {
- if ( !iIsClockIndicBgIIDSet )
+ {
+ if ( iBgIID == KAknsIIDQsnBgAreaControlMp )
{
- statusPane->SetCbaAreaBackgroundID(
- iBgIID,
- CEikStatusPaneBase::EDrawDeferred );
- iIsClockIndicBgIIDSet = ETrue;
- }
- }
- else
- {
- if ( statusPane->CbaAreaBackgroundID() != iBgIID )
- {
- statusPane->SetCbaAreaBackgroundID(
- iBgIID,
- CEikStatusPaneBase::EDrawDeferred );
+ if ( !iIsClockIndicBgIIDSet )
+ {
+ statusPane->SetCbaAreaBackgroundID(
+ iBgIID,
+ CEikStatusPaneBase::EDrawDeferred );
+ iIsClockIndicBgIIDSet = ETrue;
+ }
}
- }
-
- if ( statusPane->PaneCapabilities(
- TUid::Uid( EEikStatusPaneUidCombined ) ).IsInCurrentLayout() )
- {
- TRect combinedPaneRect( 0, 0, 0, 0 );
- TRAPD( err,
- combinedPaneRect =
- statusPane->PaneRectL( TUid::Uid(
- EEikStatusPaneUidCombined ) ) );
-
- if ( !err )
+ else
{
- TPoint cbaPositionRelativeToScreen( PositionRelativeToScreen() );
- TRect cbaRectRelativeToScreen( cbaPositionRelativeToScreen, Size() );
-
- if ( cbaRectRelativeToScreen.Intersects( combinedPaneRect ) )
+ if ( statusPane->CbaAreaBackgroundID() != iBgIID )
{
- combinedPaneRect.Move(
- -cbaPositionRelativeToScreen.iX,
- -cbaPositionRelativeToScreen.iY );
-
- region.SubRect( combinedPaneRect );
+ statusPane->SetCbaAreaBackgroundID(
+ iBgIID,
+ CEikStatusPaneBase::EDrawDeferred );
}
}
- }
- else
- {
- TRect digitalClockRect( 0, 0, 0, 0 );
- TRect indicatorRect( 0, 0, 0, 0 );
-
- TRAPD( err1,
- indicatorRect = statusPane->PaneRectL( TUid::Uid(
- EEikStatusPaneUidIndic ) ) );
-
- TRAPD( err2,
- digitalClockRect = statusPane->PaneRectL( TUid::Uid(
- EEikStatusPaneUidDigitalClock ) ) );
+
+ if ( statusPane->PaneCapabilities(
+ TUid::Uid( EEikStatusPaneUidCombined ) ).IsInCurrentLayout() )
+ {
+ TRect combinedPaneRect( 0, 0, 0, 0 );
+ TRAPD( err,
+ combinedPaneRect =
+ statusPane->PaneRectL( TUid::Uid(
+ EEikStatusPaneUidCombined ) ) );
- if ( !err1 && !err2 )
+ if ( !err )
+ {
+ TPoint cbaPositionRelativeToScreen( PositionRelativeToScreen() );
+ TRect cbaRectRelativeToScreen( cbaPositionRelativeToScreen, Size() );
+
+ if ( cbaRectRelativeToScreen.Intersects( combinedPaneRect ) )
+ {
+ combinedPaneRect.Move(
+ -cbaPositionRelativeToScreen.iX,
+ -cbaPositionRelativeToScreen.iY );
+
+ region.SubRect( combinedPaneRect );
+ }
+ }
+ }
+ else
{
- TPoint cbaPositionRelativeToScreen( PositionRelativeToScreen() );
- TRect cbaRectRelativeToScreen( cbaPositionRelativeToScreen, Size() );
-
- if ( cbaRectRelativeToScreen.Intersects( indicatorRect ) )
+ TRect digitalClockRect( 0, 0, 0, 0 );
+ TRect indicatorRect( 0, 0, 0, 0 );
+
+ TRAPD( err1,
+ indicatorRect = statusPane->PaneRectL( TUid::Uid(
+ EEikStatusPaneUidIndic ) ) );
+
+ TRAPD( err2,
+ digitalClockRect = statusPane->PaneRectL( TUid::Uid(
+ EEikStatusPaneUidDigitalClock ) ) );
+
+ if ( !err1 && !err2 )
{
- indicatorRect.Move(
- -cbaPositionRelativeToScreen.iX,
- -cbaPositionRelativeToScreen.iY );
+ TPoint cbaPositionRelativeToScreen( PositionRelativeToScreen() );
+ TRect cbaRectRelativeToScreen( cbaPositionRelativeToScreen, Size() );
+
+ if ( cbaRectRelativeToScreen.Intersects( indicatorRect ) )
+ {
+ indicatorRect.Move(
+ -cbaPositionRelativeToScreen.iX,
+ -cbaPositionRelativeToScreen.iY );
- region.SubRect( indicatorRect );
- }
+ region.SubRect( indicatorRect );
+ }
- if ( cbaRectRelativeToScreen.Intersects( digitalClockRect ) )
- {
- digitalClockRect.Move(
- -cbaPositionRelativeToScreen.iX,
- -cbaPositionRelativeToScreen.iY );
+ if ( cbaRectRelativeToScreen.Intersects( digitalClockRect ) )
+ {
+ digitalClockRect.Move(
+ -cbaPositionRelativeToScreen.iX,
+ -cbaPositionRelativeToScreen.iY );
- region.SubRect( digitalClockRect );
+ region.SubRect( digitalClockRect );
+ }
}
}
}
@@ -3564,6 +3570,7 @@
{
if( button1->IsDimmed() )
{
+ _AKNTRACE_FUNC_EXIT;
return EKeyWasConsumed;
}
// Return immediately if the button is invisible
@@ -3601,6 +3608,7 @@
{
if( button2->IsDimmed() )
{
+ _AKNTRACE_FUNC_EXIT;
return EKeyWasConsumed;
}
// Return immediately if the button is invisible.
@@ -3655,7 +3663,8 @@
&& !Window().IsFaded() )
{
if( buttonMSK->IsDimmed() )
- {
+ {
+ _AKNTRACE_FUNC_EXIT;
return EKeyWasConsumed;
}
if (KControlArrayCBAButtonMSKPosn < iControlArray->Count())
@@ -3883,6 +3892,7 @@
if( button1->IsDimmed() )
{
CCoeControl::HandlePointerEventL( aPointerEvent );
+ _AKNTRACE_FUNC_EXIT;
return;
}
if ( button1->IsVisible() )
@@ -3947,6 +3957,7 @@
if( button2->IsDimmed() )
{
CCoeControl::HandlePointerEventL( aPointerEvent );
+ _AKNTRACE_FUNC_EXIT;
return;
}
if ( button2->IsVisible() )
@@ -4013,6 +4024,7 @@
if( buttonMSK->IsDimmed() )
{
CCoeControl::HandlePointerEventL( aPointerEvent );
+ _AKNTRACE_FUNC_EXIT;
return;
}
if ( buttonMSK->IsVisible() )
@@ -4551,6 +4563,7 @@
// Embedded CBA doesn't draw anything
if ( iFlags.IsSet( ECbaInsideDialog ) )
{
+ _AKNTRACE_FUNC_EXIT;
return;
}
@@ -4559,6 +4572,7 @@
CWindowGc &gc = SystemGc();
iExtension->DrawSemiTransparency( gc );
+ _AKNTRACE_FUNC_EXIT;
return;
}
@@ -5270,7 +5284,7 @@
TRect posInScreen( cbarect.Rect() );
TBool mskEnabledInPlatform( iMSKEnabledInPlatform &&
- IsMskEnabledLayoutActive() );
+ ( IsMskEnabledLayoutActive() || ( iCbaFlags & EEikCbaFlagAppMskIcon ) ) );
TBool mskEnabledInApplication( AknLayoutUtils::MSKEnabled() && iMSKset );
@@ -7736,11 +7750,14 @@
//
TBool CEikCba::MskAllowed() const
{
- _AKNTRACE_FUNC_ENTER;
- _AKNTRACE_FUNC_EXIT;
- return ( iMSKEnabledInPlatform &&
- AknLayoutUtils::MSKEnabled() &&
- IsMskEnabledLayoutActive() );
+ _AKNTRACE_FUNC_ENTER;
+ TBool ret = EFalse;
+ ret = iMSKEnabledInPlatform &&
+ ( ( AknLayoutUtils::MSKEnabled() &&
+ IsMskEnabledLayoutActive() ) || ( iCbaFlags & EEikCbaFlagAppMskIcon ) );
+ _AKNTRACE( "MskAllowed is %d", ret );
+ _AKNTRACE_FUNC_EXIT;
+ return ret;
}
@@ -7879,6 +7896,10 @@
void CEikCba::UpdateMultipleMarkingSoftkey()
{
_AKNTRACE_FUNC_ENTER;
+ if ( iFlags.IsSet( ECbaEmbedded ) )
+ {
+ return;
+ }
if ( iFlags.IsSet( ECbaSingleClickEnabled )
&& iExtension && iExtension->iItemActionMenu )
{
--- a/uifw/EikStd/coctlsrc/eikspane.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/EikStd/coctlsrc/eikspane.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -3726,6 +3726,18 @@
// Read statuspane shape
TRAP_IGNORE( GetShapeL( statusPaneRegion, ETrue, ETrue ) );
+
+ // We need to subduce the rect of digital clock pane here,
+ // because it stay on the bottom cba area always in landscape mode.
+ if (Layout_Meta_Data::IsLandscapeOrientation())
+ {
+ CEikStatusPaneLayoutTree* pane = iModel->CurrentLayout()->Find(TUid::Uid(EEikStatusPaneUidDigitalClock));
+ if (pane != NULL)
+ {
+ statusPaneRegion.SubRect(pane->Rect());
+ }
+ }
+
statusPaneRegion.Tidy();
// Get largest possible rect that does not overlap with sp shape
--- a/uifw/EikStd/coctlsrc/smileymodel.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/EikStd/coctlsrc/smileymodel.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -446,8 +446,14 @@
while(pos > 0)
{
const TUint16 word = aText[--pos];
- if(word == ' ' || word == 0x2029)
+ // Since in most cases, URL is comprised of ASCII characters,
+ // so if there is a character out of the ASCII printable characters,
+ // we can stop the search.
+ const TInt KMinPrintableAscIIChar( 0x21 ); // excluding space
+ const TInt KMaxPrintableAscIIChar( 0x7e );
+ if( word < KMinPrintableAscIIChar || word > KMaxPrintableAscIIChar )
{
+ pos++; // make the string begin with printable character.
break;
}
}
@@ -461,7 +467,22 @@
if(KErrNotFound != pos)
{
return ETrue;
- }
+ }
+ else
+ {
+ // Although the string doesn't contain '://', it is also considered
+ // as an URL if it contains 'www.'.
+ HBufC* fieldTextBuf( field.Alloc() );
+ if ( fieldTextBuf )
+ {
+ TPtr fieldText( fieldTextBuf->Des() );
+ // Use lower case for search to avoid case sensitive mismatch.
+ fieldText.LowerCase();
+ TBool result( fieldText.Find( _L("www.") ) != KErrNotFound );
+ delete fieldTextBuf;
+ return result;
+ }
+ }
}
return EFalse;
--- a/uifw/EikStd/srvuiinc/eikkeysoundserver.h Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/EikStd/srvuiinc/eikkeysoundserver.h Wed Sep 15 12:29:17 2010 +0300
@@ -103,9 +103,13 @@
TInt Preference();
TVolumeSetting Volume();
virtual void DoPlay() = 0;
+ TBool IsWaittingPlay();
+ void SetDestroyAfterPlay(TBool aDestroyAfterPlay);
protected:
TInt iPriority;
TInt iPreference;
+ TBool iWaittingPlay;
+ TBool iDestroyAfterPlay;
TVolumeSetting iVolume;
};
--- a/uifw/EikStd/srvuisrc/eikkeysoundserver.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/EikStd/srvuisrc/eikkeysoundserver.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -88,6 +88,7 @@
TInt CEikKeySoundServer::LaunchServer(TThreadId& aThreadId)
{
+ LOGTEXT(_L("CEikKeySoundServer::LaunchServer"));
// First, check that ther server isn't already running.
TFindServer findServer(__KEYSOUND_SERVER_NAME);
TFullName name;
@@ -192,6 +193,7 @@
void CEikKeySoundServer::ConstructL()
{
+ LOGTEXT(_L("CEikKeySoundServer::ConstructL"));
iInit = EFalse;
iSidList = new(ELeave)CArrayFixFlat<TAknSoundID>(KAknSoundInfoMapGranularity);
iSoundList = new(ELeave)CArrayPtrFlat<CEikSoundInfo>(KAknSoundInfoMapGranularity);
@@ -242,6 +244,7 @@
CEikKeySoundServer::~CEikKeySoundServer()
{
+ LOGTEXT(_L("CEikKeySoundServer::~CEikKeySoundServer"));
if (iProfilesNotifyHandler)
{
iProfilesNotifyHandler->StopListening();
@@ -264,6 +267,7 @@
CSession2* CEikKeySoundServer::NewSessionL(const TVersion& aVersion,
const RMessage2& /*aMessage*/) const
{
+ LOGTEXT(_L("CEikKeySoundServer::NewSessionL"));
TVersion ver(KKeySoundServMajorVN, KKeySoundServMinorVN, KKeySoundServBuildVN);
if (!User::QueryVersionSupported(ver, aVersion))
{
@@ -290,6 +294,7 @@
void CEikKeySoundServer::PlaySid(TInt aSid, TBool aPlaySelf)
{
+ LOGTEXT1(_L("CEikKeySoundServer::PlaySid aSid: %d"), aSid);
if (aSid == EAvkonSIDWarningTone && iWarningToneEnabled == 0)
{
// Don't play warning tone, when the warning tone is disabled in setting.
@@ -384,6 +389,8 @@
void CEikKeySoundServer::SetDisabledScanCode( TInt aScanCode )
{
+ LOGTEXT1(_L("CEikKeySoundServer::SetDisabledScanCode aScanCode: %d"),
+ aScanCode);
iDisabledScanCode = aScanCode;
}
@@ -427,6 +434,8 @@
CEikKeySoundSession::~CEikKeySoundSession()
{
+ LOGTEXT1(_L("CEikKeySoundSession::~CEikKeySoundSession iClientUid %d"),
+ iClientUid);
RemoveSids(iClientUid);
if (iHasLockedContext)
{
@@ -437,6 +446,7 @@
}
if (iOwnsDefaultSounds)
{
+ LOGTEXT(_L("CEikKeySoundSession::~CEikKeySoundSession OwnsDefaultSounds"));
RemoveSids(0);
iServer->iInit = EFalse;
}
@@ -470,6 +480,8 @@
void CEikKeySoundSession::ServiceL(const RMessage2& aMessage)
{
+ LOGTEXT1(_L("CEikKeySoundSession::ServiceL aMessage: %d"),
+ aMessage.Function());
if (aMessage.Function() == EKeySoundServerPlayKey)
{
TInt scancode = aMessage.Int0() & 0xff;
@@ -583,7 +595,7 @@
{
TInt uid = aMessage.Int0();
TInt size = aMessage.Int1();
-
+ LOGTEXT1(_L("CEikKeySoundSession::AddSoundIdBufferL uid: %d"), uid);
// CBufFlat requires that size must be positive and not larger than KMaxTInt / 2.
// Without this check the KeySoundServer could panic.
if (size <= 0 || size >= ((KMaxTInt / 2) - KKeySoundServerBufExpandSize))
@@ -700,6 +712,7 @@
void CEikKeySoundSession::RemoveSids(TInt aUid)
{
+ LOGTEXT1(_L("CEikKeySoundSession::RemoveSids aUid %d"), aUid);
TUint uid = aUid << 16;
if (!iServer->iSidList)
{
@@ -730,7 +743,18 @@
if (!duplicateFound)
{
// Remove sound at this position
- delete id.iSoundInfo;
+ if(id.iSoundInfo->IsWaittingPlay())
+ {
+ LOGTEXT1(_L("CEikKeySoundSession::RemoveSids DestroyAfterplay : %d"),
+ (TInt)id.iSoundInfo );
+ id.iSoundInfo->SetDestroyAfterPlay(ETrue);
+ }
+ else
+ {
+ LOGTEXT1(_L("CEikKeySoundSession::RemoveSids Destroy : %d"),
+ (TInt)id.iSoundInfo );
+ delete id.iSoundInfo;
+ }
if (iServer->iSoundList)
{
iServer->iSoundList->Delete(ii);
@@ -800,6 +824,7 @@
void CEikKeySoundSession::AddToneSidL(const TAknSoundID& aSoundID, CAknToneSoundInfo* aSoundInfo)
{
+ LOGTEXT(_L("CEikKeySoundSession::AddToneSidL"));
aSoundInfo->InitL();
TKeyArrayFix sidKey(_FOFF(TAknSoundID, iSid), ECmpTUint);
@@ -818,6 +843,7 @@
void CEikKeySoundSession::AddSequenceSidL(const TAknSoundID& aSoundID,
CAknSequenceSoundInfo* aSoundInfo)
{
+ LOGTEXT(_L("CEikKeySoundSession::AddSequenceSidL"));
aSoundInfo->InitL();
TKeyArrayFix sidKey(_FOFF(TAknSoundID, iSid), ECmpTUint);
@@ -837,6 +863,7 @@
void CEikKeySoundSession::AddFileSidL(const TAknSoundID& aSoundID, CAknFileSoundInfo* aSoundInfo,
const TDesC& aFileName)
{
+ LOGTEXT(_L("CEikKeySoundSession::AddFileSidL"));
aSoundInfo->InitL(aFileName, NULL);
TKeyArrayFix sidKey(_FOFF(TAknSoundID, iSid), ECmpTUint);
@@ -860,6 +887,8 @@
{
iPriority = aPriority;
iPreference = aPreference;
+ iWaittingPlay = EFalse;
+ iDestroyAfterPlay = EFalse;
iVolume = ESoundVolume9; // default to loudest
}
@@ -879,6 +908,17 @@
return iVolume;
}
+TBool CEikSoundInfo::IsWaittingPlay()
+ {
+ LOGTEXT1(_L("CEikSoundInfo::IsWaittingPlay : %d"), iWaittingPlay);
+ return iWaittingPlay;
+ }
+
+void CEikSoundInfo::SetDestroyAfterPlay(TBool aDestroyAfterPlay)
+ {
+ iDestroyAfterPlay = aDestroyAfterPlay;
+ }
+
// ==================================
// CAknSynthSoundInfo implementation.
// ==================================
@@ -1130,7 +1170,7 @@
delete iAudioPlayer;
}
-void CAknFileSoundInfo::InitL(const TDesC& aFileName, CMdaServer* aMdaServer)
+void CAknFileSoundInfo::InitL(const TDesC& aFileName, CMdaServer* /*aMdaServer*/)
{
LOGTEXT(_L("CAknFileSoundInfo::InitL() - Filename:"));
LOGTEXT(aFileName);
@@ -1148,6 +1188,7 @@
// Create audio player. DoPlay() will be called in all circumstances.
iAudioPlayer = CMdaAudioPlayerUtility::NewFilePlayerL(iFileName, *this, iPriority,(TMdaPriorityPreference)iPreference );
+ iWaittingPlay =ETrue;
LOGTEXT(_L(" CAknFileSoundInfo::PlayL() - Exit"));
}
@@ -1177,6 +1218,7 @@
delete iAudioPlayer;
iAudioPlayer = NULL;
+ iWaittingPlay = EFalse;
}
}
@@ -1203,6 +1245,7 @@
delete iAudioPlayer;
iAudioPlayer = NULL;
iPrepared = EFalse;
+ iWaittingPlay = EFalse;
}
}
@@ -1269,12 +1312,19 @@
void CAknFileSoundInfo::MapcPlayComplete(TInt /*aError*/)
{
LOGTEXT(_L("CAknFileSoundInfo::MapcPlayComplete()"));
-
+ LOGTEXT1(_L(" aError:%d"), aError);
iPlaying = EFalse;
+ iWaittingPlay = EFalse;
delete iAudioPlayer;
iAudioPlayer = NULL;
iPrepared = EFalse;
+ if(iDestroyAfterPlay)
+ {
+ LOGTEXT1(_L("CAknFileSoundInfo::MapcPlayComplete DestroyAfterPlay : %d"),
+ TInt(this));
+ delete this;
+ }
}
// End of file
--- a/uifw/ganes/inc/HgScrollbar.h Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/ganes/inc/HgScrollbar.h Wed Sep 15 12:29:17 2010 +0300
@@ -116,17 +116,20 @@
TRect iScrollbarRect;
TRect iNaviRect;
- TPoint iHandlePosition;
+ TPoint iHandlePosition; //exists only for CHgScrollbar::HandlePosition()
+ TReal iHandlePos;
+ TReal iPageSize;
+ TInt iScrollLength;
+ TSize iHandleSize;
+
TPoint iPrevDrag;
TSize iTotalSize;
TSize iViewSize;
- TSize iHandleSize;
TBool iLandscapeScrolling;
TBool iDragging;
TBool iHandler;
TBool iStatic;
- TInt iScrollLength;
TInt iTotalLength;
};
--- a/uifw/ganes/src/HgScrollbar.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/ganes/src/HgScrollbar.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -126,6 +126,7 @@
iViewSize = aViewSize;
iLandscapeScrolling = aLandscapeScrolling;
iHandlePosition.SetXY(0,0);
+ iHandlePos = 0.0;
if(iLandscapeScrolling)
{
@@ -153,16 +154,16 @@
{
if (AknLayoutUtils::LayoutMirrored())
{
- iHandlePosition.iX = (iScrollLength) * (1.0 - aPosition.iX / TReal(iTotalLength));
+ iHandlePos = 1.0 - (TReal(aPosition.iX) / TReal(iTotalLength));
}
else
{
- iHandlePosition.iX = (iScrollLength) * (aPosition.iX / TReal(iTotalLength));
+ iHandlePos = TReal(aPosition.iX) / TReal(iTotalLength);
}
}
else
{
- iHandlePosition.iY = (iScrollLength) * (aPosition.iY / TReal(iTotalLength));
+ iHandlePos = TReal(aPosition.iY) / TReal(iTotalLength);
}
CheckHandlePosition( EFalse );
}
@@ -186,15 +187,32 @@
TBool ret = EFalse;
// Quick and dirty hack, remove when logic for fetching the correct drag rect is available
TRect dragArea( iScrollbarRect );
- dragArea.iBr.iX += KScrollAreaOffset;
- dragArea.iTl.iX -= KScrollAreaOffset;
-
+ if (iLandscapeScrolling)
+ {
+ dragArea.iBr.iY += KScrollAreaOffset;
+ dragArea.iTl.iY -= KScrollAreaOffset;
+ }
+ else
+ {
+ dragArea.iBr.iX += KScrollAreaOffset;
+ dragArea.iTl.iX -= KScrollAreaOffset;
+ }
+
// Start drag
if( aEvent.iType == TPointerEvent::EButton1Down && dragArea.Contains(aEvent.iPosition))
{
- TSize size(iHandleSize);
- size.iWidth += KScrollAreaOffset*2;
- TRect handleRect( dragArea.iTl + iHandlePosition, size );
+ TSize size = iHandleSize;
+ TRect handleRect;
+ if (iLandscapeScrolling)
+ {
+ size.iHeight += KScrollAreaOffset*2;
+ handleRect = TRect( dragArea.iTl + TPoint(iHandlePos*iScrollLength, 0), size );
+ }
+ else
+ {
+ size.iWidth += KScrollAreaOffset*2;
+ handleRect = TRect( dragArea.iTl + TPoint(0, iHandlePos*iScrollLength), size );
+ }
iDragging = handleRect.Contains( aEvent.iPosition );
iPrevDrag = aEvent.iPosition;
iHandler = ret = ETrue;
@@ -208,11 +226,11 @@
{
if(iLandscapeScrolling)
{
- iHandlePosition.iX -= iPrevDrag.iX - aEvent.iPosition.iX;
+ iHandlePos -= (iPrevDrag.iX - aEvent.iPosition.iX)/TReal(iScrollLength);
}
else
{
- iHandlePosition.iY -= iPrevDrag.iY - aEvent.iPosition.iY;
+ iHandlePos -= (iPrevDrag.iY - aEvent.iPosition.iY)/TReal(iScrollLength);
}
CheckHandlePosition( !iStatic );
@@ -227,9 +245,16 @@
if(!iDragging)
{
TBool below = iLandscapeScrolling ?
- aEvent.iPosition.iX > iHandlePosition.iX
- : aEvent.iPosition.iY > iHandlePosition.iY;
- iHandlePosition += below ? iHandleSize.AsPoint() : -iHandleSize.AsPoint();
+ aEvent.iPosition.iX > iHandlePos*iScrollLength
+ : aEvent.iPosition.iY > iHandlePos*iScrollLength;
+ if(below)
+ {
+ iHandlePos += iPageSize;
+ }
+ else
+ {
+ iHandlePos -= iPageSize;
+ }
}
CheckHandlePosition( !iStatic );
iHandler = iDragging = EFalse;
@@ -298,19 +323,21 @@
if(iLandscapeScrolling)
{
- iHandlePosition.iY = 0;
- if(iHandlePosition.iX < 0 )
- iHandlePosition.iX = 0;
- if(iHandlePosition.iX > iScrollLength)
- iHandlePosition.iX = iScrollLength;
+ if(iHandlePos < 0.0 )
+ iHandlePos = 0.0;
+ if(iHandlePos > 1.0)
+ iHandlePos = 1;
+
+ iHandlePosition.SetXY(iHandlePos*iScrollLength, 0);
}
else
{
- iHandlePosition.iX = 0;
- if(iHandlePosition.iY < 0 )
- iHandlePosition.iY = 0;
- if(iHandlePosition.iY > iScrollLength)
- iHandlePosition.iY = iScrollLength;
+ if(iHandlePos < 0.0 )
+ iHandlePos = 0.0;
+ if(iHandlePos > 1)
+ iHandlePos = 1.0;
+
+ iHandlePosition.SetXY(0, iHandlePos*iScrollLength);
}
if( aReportChange )
{
@@ -319,16 +346,16 @@
{
if (AknLayoutUtils::LayoutMirrored())
{
- pos.iX += (1.0 - iHandlePosition.iX / TReal(iScrollLength)) * (iTotalLength);
+ pos.iX += (1.0 - iHandlePos) * iTotalLength;
}
else
{
- pos.iX += (iHandlePosition.iX / TReal(iScrollLength)) * (iTotalLength);
+ pos.iX += iHandlePos * iTotalLength;
}
}
else
{
- pos.iY += (iHandlePosition.iY / TReal(iScrollLength)) * (iTotalLength);
+ pos.iY += iHandlePos * iTotalLength;
}
iObserver.ScrollBarPositionChanged( pos );
@@ -354,28 +381,33 @@
TReal xFactor = iScrollbarRect.Width()/TReal(iTotalSize.iWidth);
TReal yFactor = iScrollbarRect.Height()/TReal(iTotalSize.iHeight);
-
- iHandleSize = TSize ( iViewSize.iWidth * xFactor, iViewSize.iHeight * yFactor );
+
+ TReal handleSizeWidth = iViewSize.iWidth * xFactor;
+ TReal handleSizeHeight = iViewSize.iHeight * yFactor;
if(iLandscapeScrolling)
{
- TInt min = 2*iHandleSize.iHeight;
- if( iHandleSize.iWidth < min )
+ iPageSize = TReal(iViewSize.iWidth) / TReal(iTotalSize.iWidth - (iTotalSize.iWidth % iViewSize.iWidth) );
+ TReal min = 2 * handleSizeHeight;
+ if( handleSizeWidth < min )
{
- iHandleSize.iWidth = min;
+ handleSizeWidth = min;
}
- iScrollLength = iScrollbarRect.Width() - iHandleSize.iWidth;
+ iScrollLength = TReal(iScrollbarRect.Width()) - handleSizeWidth;
}
else
{
- TInt min = 2*iHandleSize.iWidth;
- if( iHandleSize.iHeight < min )
+ iPageSize = TReal(iViewSize.iHeight) / TReal(iTotalSize.iHeight - (iTotalSize.iHeight % iViewSize.iHeight) );
+ TReal min = 2 * handleSizeWidth;
+ if( handleSizeHeight < min )
{
- iHandleSize.iHeight = min;
+ handleSizeHeight = min;
}
- iScrollLength = iScrollbarRect.Height() - iHandleSize.iHeight;
+ iScrollLength = TReal(iScrollbarRect.Height()) - handleSizeHeight;
}
+ iHandleSize = TSize(handleSizeWidth,handleSizeHeight);
+
delete iScrollbarHandle; iScrollbarHandle = NULL;
delete iScrollbarHandleSelected; iScrollbarHandleSelected = NULL;
--- a/uifw/ganes/src/HgScroller.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/ganes/src/HgScroller.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -891,6 +891,7 @@
iPointerDown = EFalse;
iPanning = EFalse;
+ iEnterKeyHandled = EFalse;
}
// -----------------------------------------------------------------------------
@@ -1061,33 +1062,37 @@
iViewPosition = aNewPosition;
iPhysics->StopPhysics();
- if( iScrollBarType == EHgScrollerTimeStrip )
+ // show a letter popup only if we are currently dragging with scrollbar
+ if(iScrollbar && iScrollbar->IsDragging())
{
- // Show first item's time.
- TInt selectedItem = CurrentIndex();
- if( selectedItem >= 0 && selectedItem < iItems.Count()
- && iItems[selectedItem]->Time().Int64() )
+ if( iScrollBarType == EHgScrollerTimeStrip )
{
- TRAP_IGNORE(
- iItems[selectedItem]->Time().FormatL( iPopupText1, KGanesMonthString );
- iItems[selectedItem]->Time().FormatL( iPopupText2, KGanesYearString );
- )
- // To display month and year correctly in arabic.
- AknTextUtils::LanguageSpecificNumberConversion( iPopupText1 );
- AknTextUtils::LanguageSpecificNumberConversion( iPopupText2 );
+ // Show first item's time.
+ TInt selectedItem = CurrentIndex();
+ if( selectedItem >= 0 && selectedItem < iItems.Count()
+ && iItems[selectedItem]->Time().Int64() )
+ {
+ TRAP_IGNORE(
+ iItems[selectedItem]->Time().FormatL( iPopupText1, KGanesMonthString );
+ iItems[selectedItem]->Time().FormatL( iPopupText2, KGanesYearString );
+ )
+ // To display month and year correctly in arabic.
+ AknTextUtils::LanguageSpecificNumberConversion( iPopupText1 );
+ AknTextUtils::LanguageSpecificNumberConversion( iPopupText2 );
+ }
}
- }
- else if( iScrollBarType == EHgScrollerLetterStrip
- || iScrollBarType == EHgScrollerLetterStripLite )
- {
- TInt selectedItem = CurrentIndex();
- if( selectedItem >= 0 && selectedItem < iItems.Count() )
+ else if( iScrollBarType == EHgScrollerLetterStrip
+ || iScrollBarType == EHgScrollerLetterStripLite )
{
- if(iItems[selectedItem]->Title().Length())
+ TInt selectedItem = CurrentIndex();
+ if( selectedItem >= 0 && selectedItem < iItems.Count() )
{
- iPopupText1.Zero();
- iPopupText1.Append( iItems[selectedItem]->Title()[0] );
- iPopupText1.UpperCase();
+ if(iItems[selectedItem]->Title().Length())
+ {
+ iPopupText1.Zero();
+ iPopupText1.Append( iItems[selectedItem]->Title()[0] );
+ iPopupText1.UpperCase();
+ }
}
}
}
@@ -1191,24 +1196,46 @@
case EKeyEnter:
case EKeyOK:
{
- if( iSelectedIndex != KErrNotFound && HasHighlight() )
+ // If enter key is pushed down for a long time, many key events
+ // are generated. Enter should be handled only ones.
+ if (!iEnterKeyHandled)
{
- iShowHighlight = EFalse;
- iDrawUtils->EnableMarquee(HasHighlight());
- if( iSelectionObserver )
- TRAP_IGNORE( iSelectionObserver->HandleOpenL( iSelectedIndex ); )
- return EKeyWasConsumed;
- }
- else if( iItemCount )
- {
- iSelectedIndex = CurrentIndex();
- FitSelectionToView();
- iShowHighlight = ETrue;
- iDrawUtils->EnableMarquee(HasHighlight());
- DrawDeferred();
- if( iSelectionObserver )
- TRAP_IGNORE( iSelectionObserver->HandleSelectL( iSelectedIndex ); )
- return EKeyWasConsumed;
+ iEnterKeyHandled = ETrue;
+ if( iSelectedIndex != KErrNotFound && HasHighlight())
+ {
+ iEnterKeyHandled = ETrue;
+ const TBool validIndex = iSelectedIndex >= 0 && iSelectedIndex < iItems.Count();
+ const TBool selectionMode = iFlags & EHgScrollerSelectionMode;
+ if (validIndex && selectionMode)
+ {
+ // In selection mode enterkey should mark/unmark item.
+ iItems[iSelectedIndex]->Flags() & CHgItem::EHgItemFlagMarked ?
+ UnMark(iSelectedIndex) : Mark(iSelectedIndex);
+ DrawDeferred();
+ }
+ else
+ {
+ // Item will be opened so highlight is removed.
+ iShowHighlight = EFalse;
+ if( iSelectionObserver )
+ {
+ TRAP_IGNORE( iSelectionObserver->HandleOpenL( iSelectedIndex ); )
+ }
+ }
+ iDrawUtils->EnableMarquee(HasHighlight());
+ return EKeyWasConsumed;
+ }
+ else if( iItemCount )
+ {
+ iSelectedIndex = CurrentIndex();
+ FitSelectionToView();
+ iShowHighlight = ETrue;
+ iDrawUtils->EnableMarquee(HasHighlight());
+ DrawDeferred();
+ if( iSelectionObserver )
+ TRAP_IGNORE( iSelectionObserver->HandleSelectL( iSelectedIndex ); )
+ return EKeyWasConsumed;
+ }
}
return EKeyWasNotConsumed;
}
@@ -1280,7 +1307,9 @@
iHighlightTimer->Cancel();
iPointerDown = EFalse;
if(iDetector)
- iDetector->CancelAnimationL();
+ {
+ TRAP_IGNORE(iDetector->CancelAnimationL());
+ }
iPanning = EFalse;
iPhysics->StopPhysics();
--- a/uifw/ganes/src/HgVgHelper.cpp Tue Sep 14 21:48:24 2010 +0300
+++ b/uifw/ganes/src/HgVgHelper.cpp Wed Sep 15 12:29:17 2010 +0300
@@ -20,7 +20,7 @@
#include "HgVgHelper.h"
#include "HgVgDrawBuffer.h"
#include "HgVgImageCreator.h"
-#include "HgVgEgl.h"
+#include "HgVgEGL.h"
#include <e32math.h>
#include <gulicon.h>