Update. No, even integrating that patch manually solves the problem of the focus :(
On 4 June 2010 16:12, Ivan De Marino <[email protected]> wrote: > Hy Alan. > I tried building the latest x11-maemo branch, the 4.7 one. > But this didn't solve the problem. > > So I decided to take a look to the history of > /src/imports/webkit/qdeclarativewebview.cpp and your name came out: > http://qt.gitorious.org/qt/qt/commit/f1ba0329a90fe62a850e4b00bf3bd13011dbe4fa > > > <http://qt.gitorious.org/qt/qt/commit/f1ba0329a90fe62a850e4b00bf3bd13011dbe4fa>Seems > like you recently modified event handling for the QML WebView, but that your > modification is ONLY in the 4.7 branch, not in the x11-maemo one. > > What I'm trying to do, is to see if applying your patch to the latest > x11-maemo 4.7 branch solves the problem. > > Will keep posted, as this is now on Bugzilla as well, and I might update > the bug description if I find that this approach works. > > Regards > > > On 3 June 2010 10:50, Ivan De Marino <[email protected]> wrote: > >> Forgot to put here the BUG url: >> http://bugreports.qt.nokia.com/browse/QTBUG-11179 >> >> >> On 2 June 2010 17:23, Ivan De Marino <[email protected]> wrote: >> >>> There you go. I slightly modified the "content/FlickableWebView.qml" to >>> show what's going on with the focus: >>> >>> import Qt 4.7 >>> import org.webkit 1.0 >>> >>> Flickable { >>> property alias title: webView.title >>> property alias icon: webView.icon >>> property alias progress: webView.progress >>> property alias url: webView.url >>> property alias back: webView.back >>> property alias reload: webView.reload >>> property alias forward: webView.forward >>> >>> id: flickable >>> width: parent.width >>> contentWidth: Math.max(parent.width,webView.width) >>> contentHeight: Math.max(parent.height,webView.height) >>> anchors.top: headerSpace.bottom >>> anchors.bottom: parent.top >>> anchors.left: parent.left >>> anchors.right: parent.right >>> pressDelay: 200 >>> >>> onWidthChanged : { >>> // Expand (but not above 1:1) if otherwise would be smaller that >>> available width. >>> if (width > webView.width*webView.contentsScale && >>> webView.contentsScale < 1.0) >>> webView.contentsScale = width / webView.width * >>> webView.contentsScale; >>> } >>> >>> *onFocusChanged: {* >>> * if ( focus == true ) {* >>> * console.log("Flickable got focus");* >>> * }* >>> * else {* >>> * console.log("Flickable lost focus");* >>> * }* >>> * }* >>> >>> WebView { >>> id: webView >>> transformOrigin: Item.TopLeft >>> >>> function fixUrl(url) >>> { >>> if (url == "") return url >>> if (url[0] == "/") return "file://"+url >>> if (url.indexOf(":")<0) { >>> if (url.indexOf(".")<0 || url.indexOf(" ")>=0) { >>> // Fall back to a search engine; hard-code Wikipedia >>> return "http://en.wikipedia.org/w/index.php?search="+url >>> } else { >>> return "http://"+url >>> } >>> } >>> return url >>> } >>> >>> url: fixUrl(webBrowser.urlString) >>> smooth: false // We don't want smooth scaling, since we only scale >>> during (fast) transitions >>> focus: true >>> zoomFactor: 1 >>> >>> onAlert: console.log(message) >>> >>> function doZoom(zoom,centerX,centerY) >>> { >>> if (centerX) { >>> var sc = zoom/contentsScale; >>> scaleAnim.to = zoom; >>> flickVX.from = flickable.contentX >>> flickVX.to = >>> Math.max(0,Math.min(centerX-flickable.width/2,webView.width*sc-flickable.width)) >>> finalX.value = flickVX.to >>> flickVY.from = flickable.contentY >>> flickVY.to = >>> Math.max(0,Math.min(centerY-flickable.height/2,webView.height*sc-flickable.height)) >>> finalY.value = flickVY.to >>> quickZoom.start() >>> } >>> } >>> >>> Keys.onLeftPressed: webView.contentsScale -= 0.1 >>> Keys.onRightPressed: webView.contentsScale += 0.1 >>> >>> preferredWidth: flickable.width >>> preferredHeight: flickable.height >>> contentsScale: 1/zoomFactor >>> onContentsSizeChanged: { >>> // zoom out >>> contentsScale = Math.min(1,flickable.width / contentsSize.width) >>> } >>> onUrlChanged: { >>> // got to topleft >>> flickable.contentX = 0 >>> flickable.contentY = 0 >>> if (url != null) { header.editUrl = url.toString(); } >>> } >>> onDoubleClick: { >>> if (!heuristicZoom(clickX,clickY,2.5)) { >>> var zf = flickable.width / contentsSize.width >>> if (zf >= contentsScale) >>> zf = 2.0/zoomFactor // zoom in (else zooming out) >>> doZoom(zf,clickX*zf,clickY*zf) >>> } >>> } >>> *onFocusChanged: {* >>> * if ( focus == true ) {* >>> * console.log("WebView got focus");* >>> * }* >>> * else {* >>> * console.log("WebView lost focus");* >>> * }* >>> * }* >>> >>> SequentialAnimation { >>> id: quickZoom >>> >>> PropertyAction { >>> target: webView >>> property: "renderingEnabled" >>> value: false >>> } >>> ParallelAnimation { >>> NumberAnimation { >>> id: scaleAnim >>> target: webView >>> property: "contentsScale" >>> // the to property is set before calling >>> easing.type: Easing.Linear >>> duration: 200 >>> } >>> NumberAnimation { >>> id: flickVX >>> target: flickable >>> property: "contentX" >>> easing.type: Easing.Linear >>> duration: 200 >>> from: 0 // set before calling >>> to: 0 // set before calling >>> } >>> NumberAnimation { >>> id: flickVY >>> target: flickable >>> property: "contentY" >>> easing.type: Easing.Linear >>> duration: 200 >>> from: 0 // set before calling >>> to: 0 // set before calling >>> } >>> } >>> // Have to set the contentXY, since the above 2 >>> // size changes may have started a correction if >>> // contentsScale < 1.0. >>> PropertyAction { >>> id: finalX >>> target: flickable >>> property: "contentX" >>> value: 0 // set before calling >>> } >>> PropertyAction { >>> id: finalY >>> target: flickable >>> property: "contentY" >>> value: 0 // set before calling >>> } >>> PropertyAction { >>> target: webView >>> property: "renderingEnabled" >>> value: true >>> } >>> } >>> onZoomTo: doZoom(zoom,centerX,centerY) >>> } >>> } >>> >>> While on the desktop the Focus works as expected, on N900 the WebView >>> gets the focus while clicked/pressed, and releases it on unclicked/released. >>> >>> I was getting weird behaviours because I connected to the WebView.focus >>> property to do some graphics effect, but now everything seems a bit "crazy". >>> >>> This to me starts to look like a real bug *OR* the N900 4.7 branch just >>> needs to be put in sync with the current 4.7. >>> >>> On 2 June 2010 17:00, Ivan De Marino <[email protected]> wrote: >>> >>>> I figured out what was stopping the "scrolling" but this unveiled that >>>> there is something else going on. >>>> What I was doing to "stop" the scrolling was: >>>> >>>> interactive: webView.focus // If the "webView" has focus, then it's >>>> flickable >>>> >>>> In this way there is no scrolling if the WebView that is inside the >>>> Flickable element doesn't have focus. >>>> >>>> Looks like there is an impediment at the WebView from getting a proper >>>> focus. >>>> I removed the above line, and what happens as soon as I start >>>> scrolling/panning, is that the WebView looses focus. >>>> >>>> On 2 June 2010 12:30, Ivan De Marino <[email protected]> wrote: >>>> >>>>> >>>>> >>>>> On 2 June 2010 12:22, Alan Alpert <[email protected]> wrote: >>>>> >>>>>> >>>>>> Onsdag 2. juni 2010 21:01:55 skrev ext Ivan De Marino : >>>>>> >>>>>> > Problem is that I'm a bit stuck now: the latest version of my >>>>>> project works >>>>>> > without any problem (aside from the bugs I didn't discover yet :P), >>>>>> while >>>>>> > on N900 the behaviour is always a bit "flaky". With realease >>>>>> 2010-05-20 of >>>>>> > the packages of "libqt4-experimental" for N900 1.2, I now lost >>>>>> > SCROLLING/PANNING And I can't make my head around on what is the >>>>>> actual >>>>>> > problem. I just use a Flickable element with a WebView inside: don't >>>>>> see >>>>>> > what can go wrong, and only on N900. The QML part of my project >>>>>> here: >>>>>> > >>>>>> http://github.com/OrangeLabsUK/OrangeMobileBrowser/tree/master/orangemobil >>>>>> > ebrowser-1.0/src/qmls/ . >>>>>> >>>>>> The webbrowser demo is working just fine on my n900. You might want to >>>>>> have a >>>>>> look at the differences between your FlickableWebView and the one in >>>>>> demos/declarative/webbrowser. This demo has had a bunch of minor >>>>>> changes >>>>>> recently, so you should have another look even if you've seen it >>>>>> before. >>>>>> >>>>>> I don't think any of those changes relate to this specific problem, >>>>>> but I could >>>>>> be wrong. And the recent webbrowser demo pans just fine on my N900 >>>>>> with those >>>>>> packages installed. >>>>>> >>>>> That's what I just tested and seen. I'm now trying to figure out what >>>>> are the macro differences on how things are laid out. >>>>> I was thinking that could be the "focusAway" black rectangle I apply on >>>>> the WebView when it looses focus. >>>>> The Z axis maybe. >>>>> >>>>> Will check and report. >>>>> >>>>> >>>>>> >>>>>> > >>>>>> > Plus, I can't use OpenGL in my GraphicsView because... no idea! It's >>>>>> slow, >>>>>> > painfully slow. I get much better performance if I "#ifdef" it out. >>>>>> >>>>>> With the PR1.2 packages this is a known issue, and is caused by a bug >>>>>> involving clipping. The next set of Qt 4.7 packages should hopefully >>>>>> resolve >>>>>> it. Until then keep trying without using OpenGL. >>>>>> >>>>> Great! This means I'm not doing something wrong myself. >>>>> I'll wait for the new packages ;) >>>>> >>>>> Thanks a lot. >>>>> >>>>>> >>>>>> -- >>>>>> >>>>>> Alan Alpert >>>>>> Software Engineer >>>>>> Nokia, Qt Development Frameworks >>>>>> _______________________________________________ >>>>>> Qt-qml mailing list >>>>>> [email protected] >>>>>> http://lists.trolltech.com/mailman/listinfo/qt-qml >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Ivan De Marino | Software Engineer | France Telecom R&D UK - Orange >>>>> Labs >>>>> w. +44 20 8849 5806 | m. +44 7515 955 861 | m. +44 7974 156 216 >>>>> ivan[dot]demarino[at]orange-ftgroup.com | >>>>> ivan[dot]de[dot]marino[at]gmail[dot]com >>>>> www.detronizator.org | www.linkedin.com/in/ivandemarino >>>>> >>>> >>>> >>>> >>>> -- >>>> Ivan De Marino | Software Engineer | France Telecom R&D UK - Orange Labs >>>> w. +44 20 8849 5806 | m. +44 7515 955 861 | m. +44 7974 156 216 >>>> ivan[dot]demarino[at]orange-ftgroup.com | >>>> ivan[dot]de[dot]marino[at]gmail[dot]com >>>> www.detronizator.org | www.linkedin.com/in/ivandemarino >>>> >>> >>> >>> >>> -- >>> Ivan De Marino | Software Engineer | France Telecom R&D UK - Orange Labs >>> w. +44 20 8849 5806 | m. +44 7515 955 861 | m. +44 7974 156 216 >>> ivan[dot]demarino[at]orange-ftgroup.com | >>> ivan[dot]de[dot]marino[at]gmail[dot]com >>> www.detronizator.org | www.linkedin.com/in/ivandemarino >>> >> >> >> >> -- >> Ivan De Marino | Software Engineer | France Telecom R&D UK - Orange Labs >> w. +44 20 8849 5806 | m. +44 7515 955 861 | m. +44 7974 156 216 >> ivan[dot]demarino[at]orange-ftgroup.com | >> ivan[dot]de[dot]marino[at]gmail[dot]com >> www.detronizator.org | www.linkedin.com/in/ivandemarino >> > > > > -- > Ivan De Marino | Software Engineer | France Telecom R&D UK - Orange Labs > w. +44 20 8849 5806 | m. +44 7515 955 861 | m. +44 7974 156 216 > ivan[dot]demarino[at]orange-ftgroup.com | > ivan[dot]de[dot]marino[at]gmail[dot]com > www.detronizator.org | www.linkedin.com/in/ivandemarino > -- Ivan De Marino | Software Engineer | France Telecom R&D UK - Orange Labs w. +44 20 8849 5806 | m. +44 7515 955 861 | m. +44 7974 156 216 ivan[dot]demarino[at]orange-ftgroup.com | ivan[dot]de[dot]marino[at]gmail[dot]com www.detronizator.org | www.linkedin.com/in/ivandemarino
_______________________________________________ Qt-qml mailing list [email protected] http://lists.trolltech.com/mailman/listinfo/qt-qml
