--- a/uifw/EikStd/coctlsrc/EIKEDWIN.CPP Mon Mar 15 12:41:34 2010 +0200
+++ b/uifw/EikStd/coctlsrc/EIKEDWIN.CPP Wed Mar 31 21:59:52 2010 +0300
@@ -1134,23 +1134,23 @@
// ---------------------------------------------------------------------------
// CEikEdwin::CEikEdwinExtension::EnableKineticScrollingL
// ---------------------------------------------------------------------------
-//
-void CEikEdwin::CEikEdwinExtension::EnableKineticScrollingL()
+//
+void CEikEdwin::CEikEdwinExtension::EnableKineticScrollingL( CAknPhysics* aPhysics )
{
iFlags.Set( EKineticScrollingEnabled );
- EnablePhysicsL();
+ EnablePhysicsL( aPhysics );
}
// ---------------------------------------------------------------------------
// CEikEdwin::CEikEdwinExtension::EnablePhysicsL
// ---------------------------------------------------------------------------
//
-void CEikEdwin::CEikEdwinExtension::EnablePhysicsL()
+void CEikEdwin::CEikEdwinExtension::EnablePhysicsL( CAknPhysics* aPhysics )
{
if ( iFlags.IsSet( EKineticScrollingEnabled )
&& !iPhysicsHandler && iEdwin->DrawableWindow() )
{
- iPhysicsHandler = CAknEdwinPhysicsHandler::NewL( *iEdwin );
+ iPhysicsHandler = CAknEdwinPhysicsHandler::NewL( *iEdwin, aPhysics );
InitPhysicsL();
if ( iEdwin->iLayout )
@@ -2876,18 +2876,12 @@
( ( aPointerEvent.iType == TPointerEvent::EDrag ) ||
( aPointerEvent.iType == TPointerEvent::EButtonRepeat ) ) )
{
-
- // selectionAfter.iCursorPos-1 below is because we need to select the previous char
- TBool ltr = ( selectionAfter.iCursorPos >= selectionBefore.iCursorPos );
- TInt readPos = selectionAfter.iCursorPos;
- if (ltr && readPos > 0)
- {
- readPos -= 1; // read previous char
- }
+ TInt readPos = ( selectionAfter.iCursorPos >= selectionBefore.iCursorPos ) ?
+ selectionBefore.iCursorPos : selectionAfter.iCursorPos ;
TChar currentSelectedChar = Text()->Read( readPos, 1 )[0];
TBool isSpace = currentSelectedChar.IsSpace();
- TBool isText = currentSelectedChar.IsAlpha()
- || currentSelectedChar.IsDigit();
+ TBool isSmiley = CSmileyManager::IsSmileyCode(currentSelectedChar);
+ TBool isText = currentSelectedChar.IsGraph();
// case line
TInt prevLineNr = TextLayout()->GetLineNumber(selectionBefore.iCursorPos);
@@ -2906,7 +2900,7 @@
iEdwinFepSupport->iFeedback->InstantFeedback( this, ETouchFeedbackBlankSelection );
}
// case text
- else if (isText)
+ else if ( isText || isSmiley )
{
iEdwinFepSupport->iFeedback->InstantFeedback( this, ETouchFeedbackTextSelection );
}
@@ -4833,6 +4827,7 @@
if (reportChange)
{
+ iEdwinExtension->iThumbPos = KErrNotFound;
ReportEdwinEventL( MEikEdwinObserver::EEventTextUpdate );
DoReportEventL( MCoeControlObserver::EEventStateChanged );
NotifyEditorStateObserverOfStateChangeL();
@@ -8052,7 +8047,15 @@
{
if ( iEdwinExtension && aEnable )
{
- iEdwinExtension->EnableKineticScrollingL();
+ iEdwinExtension->EnableKineticScrollingL( NULL );
+ }
+ }
+
+EXPORT_C void CEikEdwin::EnableKineticScrollingL( CAknPhysics* aPhysics )
+ {
+ if ( iEdwinExtension )
+ {
+ iEdwinExtension->EnableKineticScrollingL( aPhysics );
}
}
@@ -8573,8 +8576,8 @@
TChar::TCategory category = character.GetCategory();
- if ( !((category&TChar::ESeparatorGroup == TChar::ESeparatorGroup) ||
- (text[i]>=0x200B && text[i]<=0xFFFC)) )
+ if ( !( ( ( category & TChar::ESeparatorGroup ) == TChar::ESeparatorGroup ) ||
+ ( text[i] >= 0x200B && text[i] <= 0xFFFC ) ) )
{
ret = ETrue;
break;