webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.cpp
branchRCL_3
changeset 37 ac77f89b1d9e
parent 36 c711bdda59f4
child 40 8bfb9186a8b8
--- a/webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.cpp	Wed Mar 31 23:16:40 2010 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebFepTextEditor.cpp	Wed Apr 14 17:06:56 2010 +0300
@@ -163,7 +163,11 @@
                     TUint permittedCase ( EAknEditorAllCaseModes ) ;
                     TUint inputMode( EAknEditorNullInputMode );
                     TUint permittedInputModes( EAknEditorAllInputModes );
+#ifdef BRDO_MULTITOUCH_ENABLED_FF
+                    TUint flags( EAknEditorFlagDefault | EAknEditorFlagSelectionVisible );
+#else
                     TUint flags( EAknEditorFlagDefault );
+#endif
                     TUint numericKeyMap( EAknEditorStandardNumberModeKeymap );
     
                     if (GetStateFromFormatMask(currentCase, permittedCase, inputMode, permittedInputModes, flags, numericKeyMap)) {
@@ -723,12 +727,21 @@
     CAknEdwinState* state = static_cast<CAknEdwinState*>(State(KNullUid));
 
     if ( IsTextAreaFocused() ) {
+#ifdef BRDO_MULTITOUCH_ENABLED_FF
     	// If in a TextArea, allow "enter" key presses to be newline/paragraph
     	state->SetFlags( flags | EAknEditorFlagUseSCTNumericCharmap
-    					 | EAknEditorFlagAllowEntersWithScrollDown );
+     | EAknEditorFlagAllowEntersWithScrollDown | EAknEditorFlagSelectionVisible );
+#else
+      state->SetFlags( flags | EAknEditorFlagUseSCTNumericCharmap
+            | EAknEditorFlagAllowEntersWithScrollDown );
+#endif
     	}
     else {
-        state->SetFlags(flags | EAknEditorFlagUseSCTNumericCharmap);
+#ifdef BRDO_MULTITOUCH_ENABLED_FF
+        state->SetFlags(flags | EAknEditorFlagUseSCTNumericCharmap | EAknEditorFlagSelectionVisible);
+#else
+        state->SetFlags(flags | EAknEditorFlagUseSCTNumericCharmap );
+#endif
     	}
 
     state->ReportAknEdStateEventL(MAknEdStateObserver::EAknEdwinStateFlagsUpdate);
@@ -834,6 +847,7 @@
             }
         }
         setSCTAvailability(true);
+        CAknEdwinState* state = static_cast<CAknEdwinState*>(State(KNullUid));
         switch( fm ) {
             case ELeUpSymPuc:       //A any upper case letter or symbolic
                 flags = EAknEditorFlagNoT9 | EAknEditorFlagFixedCase;
@@ -853,14 +867,14 @@
                 flags = EAknEditorFlagNoT9 | EAknEditorFlagFixedCase;
                 currentCase = EAknEditorUpperCase;
                 permittedCase= EAknEditorUpperCase;
-                inputMode = EAknEditorTextInputMode;
+                inputMode = state->CurrentInputMode();
                 permittedInputModes= EAknEditorTextInputMode;
             break;
             case ELeLoNumSymPuc:    //x any lower case, number or symbolic
                 flags = EAknEditorFlagNoT9 | EAknEditorFlagFixedCase;
                 currentCase = EAknEditorLowerCase;
                 permittedCase= EAknEditorLowerCase;
-                inputMode = EAknEditorTextInputMode;
+                inputMode = state->CurrentInputMode();
                 permittedInputModes= EAknEditorTextInputMode | EAknEditorNumericInputMode;
             break;
             case EAnyLow:           //m any lower character can be changed to upper
@@ -1479,3 +1493,9 @@
     return m_longKeyPress ;	
     }
 
+TBool CWebFepTextEditor::IsInputElementFocused() const
+    {
+    Frame* frame = m_webView->page()->focusController()->focusedOrMainFrame();
+    return ( frame && frame->document()->focusedNode() &&
+             frame->document()->focusedNode()->hasTagName(HTMLNames::inputTag));
+    }