uifw/AvKon/src/AknPhoneNumberEditor.cpp
branchRCL_3
changeset 51 fcdfafb36fe7
parent 4 8ca85d2f0db7
child 55 aecbbf00d063
--- a/uifw/AvKon/src/AknPhoneNumberEditor.cpp	Thu Jul 15 18:56:19 2010 +0300
+++ b/uifw/AvKon/src/AknPhoneNumberEditor.cpp	Thu Aug 19 10:11:06 2010 +0300
@@ -375,7 +375,7 @@
         }
     if ( cousorChanged )
     	{
-        ReportAknEdStateEventL( MAknEdStateObserver::EAknCursorPositionChanged );
+        ReportAknEdStateEvent( MAknEdStateObserver::EAknCursorPositionChanged );
     	}
     // see if we want to remember the old cursor X position
     if ( targetPosUsed )
@@ -421,7 +421,7 @@
         }    
     if ( ! IsFocused() )
         {
-        TRAP_IGNORE( ReportAknEdStateEventL( MAknEdStateObserver::EAknSyncEdwinState ) );
+        ReportAknEdStateEvent( MAknEdStateObserver::EAknSyncEdwinState );
         }
     if ( aDrawNow )
         DrawNow();
@@ -500,7 +500,7 @@
     {
     iModel->SetRealCursorPosition(aCursorPos);
     iModel->SetAnchorPosition( aAnchorPos );
-    ReportAknEdStateEventL( 
+    ReportAknEdStateEvent( 
             MAknEdStateObserver::EAknCursorPositionChanged );
     }
 
@@ -510,7 +510,7 @@
     iModel->SetRealCursorPosition( aCursorPos );
     if ( aSelect )
         iModel->SetAnchorPosition( anchor );
-    ReportAknEdStateEventL( 
+    ReportAknEdStateEvent( 
         MAknEdStateObserver::EAknCursorPositionChanged );
     }
 
@@ -644,7 +644,7 @@
     iModel->SetRealCursorPosition( iModel->Uncompensate( aCursorSelection.iCursorPos ) );
     iModel->SetAnchorPosition( iModel->Uncompensate( aCursorSelection.iAnchorPos  ) );
     
-    ReportAknEdStateEventL( 
+    ReportAknEdStateEvent( 
             MAknEdStateObserver::EAknCursorPositionChanged );
     DrawNow();
     }
@@ -1126,6 +1126,19 @@
 //
 EXPORT_C void CAknPhoneNumberEditor::CcpuPasteL()
     {
+    // When we paste the buffer to phone number editor, we must get the buffer from clipboard first 
+    // and then insert buffer to phone number editor. As the main job of CcpuCanPaste() is getting and 
+    // checking the buffer in clipboard, so we must call CcpuCanPaste() first.
+    // If iExtension->iPasteText is not NULL, it means CcpuCanPaste() has been called before and the 
+    // buffer in clipboard is valid. No need to call it once again. 
+    if ( !iExtension->iPasteText )
+        {
+        // If the return value of CcpuCanPaste is EFalse, iExtension->iPasteText must be NULL,
+        // else if the return value of CcpuCanPaste is ETure, iExtension->iPasteText must not be NULL.
+        // So we don't need to check if the return value is ETure or EFalse, 
+        // we will check iExtension->iPasteText instead of that.
+        CcpuCanPaste();
+        }
     if ( iExtension->iPasteText )
         {
         iModel->Paste( iExtension->iPasteText->Des() );
@@ -1253,8 +1266,8 @@
     TUint cap = iExtension->iExtendedInputCapabilities->Capabilities();
     cap &= ~CAknExtendedInputCapabilities::EInputEditorDisableVKB;
     iExtension->iExtendedInputCapabilities->SetCapabilities( cap );
-    TRAP_IGNORE( ReportAknEdStateEventL( 
-    		     MAknEdStateObserver::EAknActivatePenInputRequest ) );
+    ReportAknEdStateEvent( 
+    		     MAknEdStateObserver::EAknActivatePenInputRequest );
     }
 
 // --------------------------------------------------------------------------
@@ -1266,14 +1279,14 @@
     TUint cap = iExtension->iExtendedInputCapabilities->Capabilities();
     cap |= CAknExtendedInputCapabilities::EInputEditorDisableVKB;
     iExtension->iExtendedInputCapabilities->SetCapabilities( cap );
-    ReportAknEdStateEventL( MAknEdStateObserver::EAknClosePenInputRequest );
+    ReportAknEdStateEvent( MAknEdStateObserver::EAknClosePenInputRequest );
     }
 
 // --------------------------------------------------------------------------
 // CAknPhoneNumberEditor::ReportAknEdStateEventL
 // --------------------------------------------------------------------------
 //
-void CAknPhoneNumberEditor::ReportAknEdStateEventL( 
+void CAknPhoneNumberEditor::ReportAknEdStateEvent( 
          MAknEdStateObserver::EAknEdwinStateEvent aStateEvent )
     {
     CAknEdwinState* edwinState = STATIC_CAST( CAknEdwinState*,State(KNullUid) );