webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.cpp
branchRCL_3
changeset 92 e1bea15f9a39
parent 84 800203832575
child 93 79859ed3eea9
--- a/webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.cpp	Thu Jul 15 19:53:20 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.cpp	Thu Aug 19 10:58:56 2010 +0300
@@ -160,10 +160,7 @@
                     state->SetSpecialCharacterTableResourceId(R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_LATIN_ONLY);
                     state->SetNumericKeymap(EAknEditorStandardNumberModeKeymap);
                     state->SetCcpuState(NULL);
-                    TLanguage language = User::Language();
-                    if (language == ELangPrcChinese ) {
-                       TRAP_IGNORE( state->ReportAknEdStateEventL(MAknEdStateObserver::EAknEdwinStateFlagsUpdate ) );
-                    }
+                    TRAP_IGNORE( state->ReportAknEdStateEventL(MAknEdStateObserver::EAknEdwinStateFlagsUpdate ) );
                 }
             }
             else {
@@ -259,7 +256,7 @@
 
             if ( sc->isInPasswordField() ) {
                 caps |= TCoeInputCapabilities::ESecretText;
-                UpdateFlagsState(EAknEditorFlagNoT9);
+                UpdateFlagsState(EAknEditorFlagNoT9 | EAknEditorFlagLatinInputModesOnly);
             }
             else {
 
@@ -445,7 +442,7 @@
     // see WebEditorClient::handleKeypress
     Frame* frame = m_webView->page()->focusController()->focusedOrMainFrame();
     Node*  focusedNode = frame->document()->focusedNode();
-    if ( frame && focusedNode) {
+    if ( focusedNode ) {
         TInt lowPos = aCursorSelection.LowerPos();
         TInt highPos = aCursorSelection.HigherPos();
         if (focusedNode->hasTagName(HTMLNames::textareaTag)) {
@@ -472,7 +469,7 @@
 
     Frame* frame = m_webView->page()->focusController()->focusedOrMainFrame();
     Node*  focusedNode = frame->document()->focusedNode();
-    if (frame && focusedNode) {
+    if (focusedNode) {
         if (focusedNode->hasTagName(HTMLNames::textareaTag)) {
             HTMLTextAreaElement* textArea = static_cast<HTMLTextAreaElement*>(focusedNode);
             TInt anchorPos = textArea->selectionStart();
@@ -555,13 +552,13 @@
 		if ( sc ){
 			IntRect rect = sc->caretRect();
 			Node* editNode = sc->focusNode();
-			TPoint viewPoint = kit(frame)->frameView()->frameCoordsInViewCoords(editNode->getRect().Rect().iBr);
-			xPos = viewPoint.iX;
-			yPos = frame->document()->focusedNode()->getRect().bottomLeft().y() + rect.height();
-			String str;
-			if ( editNode &&
-				 editNode->isTextNode() ) {
-				WebCore::Text* aText = (WebCore::Text*)editNode;
+			if ( editNode && editNode->isTextNode() ) {
+                TPoint viewPoint = kit(frame)->frameView()->frameCoordsInViewCoords(editNode->getRect().Rect().iBr);
+	            xPos = viewPoint.iX;
+	            yPos = frame->document()->focusedNode()->getRect().bottomLeft().y() + rect.height();
+	            
+	            String str;				
+	            WebCore::Text* aText = (WebCore::Text*)editNode;
 				str = aText->data();
 				aDocumentPosition =  aText->length();
 				TInt position = aDocumentPosition - ( str.reverseFind(KBlankDesC(), aDocumentPosition )+1);
@@ -1125,7 +1122,7 @@
 // -----------------------------------------------------------------------------
 TBool CWebFepTextEditor::CcpuIsFocused() const
 {
-    return ETrue;
+    return (IsTextAreaFocused() || IsInputElementFocused());
 }
 
 // -----------------------------------------------------------------------------