webengine/osswebengine/WebCore/page/symbian/WebCoreFrameBridge.cpp
changeset 15 60c5402cb945
parent 10 a359256acfc6
child 36 c711bdda59f4
--- a/webengine/osswebengine/WebCore/page/symbian/WebCoreFrameBridge.cpp	Thu Sep 24 12:53:48 2009 +0300
+++ b/webengine/osswebengine/WebCore/page/symbian/WebCoreFrameBridge.cpp	Mon Oct 26 08:28:45 2009 +0200
@@ -325,7 +325,7 @@
     }
 }
 
-bool WebCoreFrameBridge::getTypeFromElement(Node* node, TBrCtlDefs::TBrCtlElementType& aElType, TRect& aFocusRect) const
+bool WebCoreFrameBridge::getTypeFromElement(Node* node, TBrCtlDefs::TBrCtlElementType& aElType, TRect& aFocusRect, Node*& aRNode) const
 { 
      
     if(node && m_frame) {
@@ -335,6 +335,7 @@
             if( n->isFocusable() ) {
                 aElType = nodeTypeB(n, m_frame);
                 aFocusRect = n->getRect();
+                aRNode = n;
                 return true;
             }
             else {
@@ -347,6 +348,7 @@
                     || etn->getHTMLEventListener(mouseupEvent)) ) {                
                     aFocusRect = n->getRect();
                     aElType = TBrCtlDefs::EElementMouseButtonListener;
+                    aRNode = n;
                     return true;
                 }
                 else if (n->isElementNode() && n->hasTagName(areaTag)) {
@@ -354,6 +356,7 @@
                     if(!e->getAttribute(hrefAttr).isNull()) {
                         aElType = TBrCtlDefs::EElementAreaBox;
                         aFocusRect = n->getRect();
+                        aRNode = n;
                         return true;
                     }
                 }
@@ -366,6 +369,7 @@
                             if(!ep->getAttribute(hrefAttr).isNull()) {
                                 aElType = nodeTypeB(np, m_frame);
                                 aFocusRect = np->getRect();
+                                aRNode = np;
                                 return true;
                             }
                         }
@@ -386,6 +390,7 @@
                         }
                     }
                     aFocusRect = n->getRect().Rect();
+                    aRNode = n;
                     return true;
                 }
                 else if (n->renderer() && n->renderer()->layer()) {