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

Reply via email to