uifw/EikStd/coctlsrc/EIKEDWIN.CPP
branchRCL_3
changeset 7 08e69e956a8c
parent 6 9f56a4e1b8ab
child 8 71dd06cfe933
--- 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;