From af0305718b948ec04aa5ee9b3abfcb773ecf9865 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonatan=20P=C3=A5lsson?= Date: Thu, 13 Mar 2014 15:35:48 +0100 Subject: Fixed bug where text boxes needed un-focus in order to trigger input signal upon re-focus. Click is now enough --- browser/browserview.cpp | 5 +++++ browser/unit-tests/browserdbus/testbrowserdbus.cpp | 17 +++++++++++++++++ browser/unit-tests/browserdbus/testbrowserdbus.h | 1 + 3 files changed, 23 insertions(+) diff --git a/browser/browserview.cpp b/browser/browserview.cpp index 7368ae3..54b1365 100644 --- a/browser/browserview.cpp +++ b/browser/browserview.cpp @@ -117,6 +117,11 @@ void BrowserView::loadFinished(bool ok) " pocCurrentElement = e.target;" " }" "}, true);" + "document.addEventListener('click', function(e){" + " e.target.setAttribute('value', e.target.value);" + " window.inputHandler.setCurrentFocus(e.target);" + " pocCurrentElement = e.target;" + "}, true);" "document.addEventListener('focusout', function(e){" " pocCurrentElement = e.relatedTarget;" "}, true);" diff --git a/browser/unit-tests/browserdbus/testbrowserdbus.cpp b/browser/unit-tests/browserdbus/testbrowserdbus.cpp index 4d60cd9..8a7d77a 100644 --- a/browser/unit-tests/browserdbus/testbrowserdbus.cpp +++ b/browser/unit-tests/browserdbus/testbrowserdbus.cpp @@ -469,4 +469,21 @@ void TestBrowserDBus::testNewTextReplacesOldText() { QVERIFY(prevValue == "New text!"); } +void TestBrowserDBus::testDoesntNeedUnfocusToTriggerInputSignal() { + QSignalSpy spy (m_bdb, SIGNAL (onInputTextReceived(QString, QString, conn::brw::INPUT_ELEMENT_TYPE, int, int, int, int))); + m_bdb->createPageWindow(1,0,0,800,600); + m_bdb->loadurl(testFileUrl()); + QTest::qSleep(300); + QProcess::execute("xdotool mousemove 200 350"); + QProcess::execute("xdotool click 1"); + QVERIFY(spy.wait(1000)); + m_bdb->inputText(conn::brw::DR_OK, "Hello world"); + QTest::qSleep(300); + QProcess::execute("xdotool mousemove 200 350"); + QProcess::execute("xdotool click 1"); + QVERIFY(spy.wait(1000)); + QString prevValue = spy.last().at(1).value(); + QVERIFY(prevValue == "Hello world"); +} + QTEST_MAIN (TestBrowserDBus); diff --git a/browser/unit-tests/browserdbus/testbrowserdbus.h b/browser/unit-tests/browserdbus/testbrowserdbus.h index 3be6fac..e06c65d 100644 --- a/browser/unit-tests/browserdbus/testbrowserdbus.h +++ b/browser/unit-tests/browserdbus/testbrowserdbus.h @@ -58,6 +58,7 @@ private slots: void testCanSelectOptionsInSelectList(); void testGetOldInputText(); void testNewTextReplacesOldText(); + void testDoesntNeedUnfocusToTriggerInputSignal(); private: -- cgit v1.2.1