[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75

eric at webkit.org eric at webkit.org
Thu Oct 29 20:34:54 UTC 2009


The following commit has been merged in the webkit-1.1 branch:
commit ea1510612d5374d3449ffc328e5515680bf4258b
Author: eric at webkit.org <eric at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sun Sep 27 21:33:42 2009 +0000

    2009-09-27  Joe Ligman  <joseph.ligman at mindspring.com>
    
            Reviewed by Simon Hausmann.
    
            [Qt] Adding API setFocus and hasFocus to QWebElement. This API is needed for
            clients that want to check/set the focus node of the document.
            https://bugs.webkit.org/show_bug.cgi?id=29682
    
            * Api/qwebelement.cpp:
            (QWebElement::hasFocus):
            (QWebElement::setFocus):
            * Api/qwebelement.h:
            * tests/qwebelement/tst_qwebelement.cpp:
            (tst_QWebElement::hasSetFocus):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48805 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/qt/Api/qwebelement.cpp b/WebKit/qt/Api/qwebelement.cpp
index fcf61b4..939d881 100644
--- a/WebKit/qt/Api/qwebelement.cpp
+++ b/WebKit/qt/Api/qwebelement.cpp
@@ -463,6 +463,33 @@ bool QWebElement::hasAttributes() const
 }
 
 /*!
+    Returns true if the element has keyboard input focus; otherwise, returns false
+
+    \sa setFocus()
+*/
+bool QWebElement::hasFocus() const
+{
+    if (!m_element)
+        return false;
+    if (m_element->document())
+        return m_element == m_element->document()->focusedNode();
+    return false;
+}
+
+/*!
+    Gives keyboard input focus to this element
+
+    \sa hasFocus()
+*/
+void QWebElement::setFocus()
+{
+    if (!m_element)
+        return;
+    if (m_element->document() && m_element->isFocusable())
+        m_element->document()->setFocusedNode(m_element);
+}
+
+/*!
     Returns the geometry of this element, relative to its containing frame.
 
     \sa tagName()
diff --git a/WebKit/qt/Api/qwebelement.h b/WebKit/qt/Api/qwebelement.h
index c00e30f..3db4637 100644
--- a/WebKit/qt/Api/qwebelement.h
+++ b/WebKit/qt/Api/qwebelement.h
@@ -74,6 +74,9 @@ public:
     void removeClass(const QString& name);
     void toggleClass(const QString& name);
 
+    bool hasFocus() const;
+    void setFocus();
+
     QRect geometry() const;
 
     QString tagName() const;
diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog
index c98821f..d1c3618 100644
--- a/WebKit/qt/ChangeLog
+++ b/WebKit/qt/ChangeLog
@@ -1,3 +1,18 @@
+2009-09-27  Joe Ligman  <joseph.ligman at mindspring.com>
+
+        Reviewed by Simon Hausmann.
+
+        [Qt] Adding API setFocus and hasFocus to QWebElement. This API is needed for
+        clients that want to check/set the focus node of the document.
+        https://bugs.webkit.org/show_bug.cgi?id=29682
+
+        * Api/qwebelement.cpp:
+        (QWebElement::hasFocus):
+        (QWebElement::setFocus):
+        * Api/qwebelement.h:
+        * tests/qwebelement/tst_qwebelement.cpp:
+        (tst_QWebElement::hasSetFocus):
+
 2009-09-25  Csaba Osztrogonac  <oszi at inf.u-szeged.hu>
 
         Reviewed by Simon Hausmann.
diff --git a/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp b/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp
index 778c35b..00783d1 100644
--- a/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp
+++ b/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp
@@ -86,6 +86,7 @@ private slots:
     void nullSelect();
     void firstChildNextSibling();
     void lastChildPreviousSibling();
+    void hasSetFocus();
 
 private:
     QWebView* m_view;
@@ -805,5 +806,24 @@ void tst_QWebElement::lastChildPreviousSibling()
     QVERIFY(p.previousSibling().isNull());
 }
 
+void tst_QWebElement::hasSetFocus()
+{
+    m_mainFrame->setHtml("<html><body>" \
+                            "<input type='text' id='input1'/>" \
+                            "<br>"\
+                            "<input type='text' id='input2'/>" \
+                            "</body></html>");
+
+    QList<QWebElement> inputs = m_mainFrame->documentElement().findAll("input");
+    QWebElement input1 = inputs.at(0);
+    input1.setFocus();
+    QVERIFY(input1.hasFocus());
+
+    QWebElement input2 = inputs.at(1);
+    input2.setFocus();
+    QVERIFY(!input1.hasFocus());
+    QVERIFY(input2.hasFocus());
+}
+
 QTEST_MAIN(tst_QWebElement)
 #include "tst_qwebelement.moc"

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list