Details
-
Epic
-
Resolution: Unresolved
-
P2: Important
-
6.2, 6.3
-
None
-
Qt Quick Window Embedding
-
-
27071a0a3 (dev)
Description
This is a summary of an internal discussion. Posting it to BugReports for tracking and further comments.
The prerequisite for QTBUG-100874 would be a support for being able to place native views into a QML scene and make a native view visible and accessible (events) through the QML Scene. Generally, the native view could be
- a web view component
- a map view component
- some other native window
The first two are mostly asked ATM, since the web view is needed for the Qt Ad team. Supporting native map view with this feature is one of the main reasons to use a native map view at all, since just showing a view on a map w/o an ability to overlay it with some additional information is a serious limitation.
The following aspects have been discussed:
-Stacking, we need to be able to set the WebView and QML scenes stacking order, that is, we need to be able to place one underneath the other. Possibly, there should be code for doing this in the Android platform plugin already. There was a prototype once created for a customer and POC on Gerrit, which uses an environment variable, but we will need a more proper solution if we want to get it into Qt.
-Event forwarding or input mask support. Events cannot be consumed by the top-layer for the region(s) we "punch" a hole for. It looks like there’s no support for this in the platform plugins or the QPA layer. The patch we have for iOS is working around this with that OpenGL readback trick, but we can’t and shouldn’t do it that way, so we need some better way to let the platform plugins know it shouldn’t consume events for certain regions of the window (e.g., by keeping track of those regions).
Once we can position the scenes in relation to each other and get the events through to the underlay, the patch we have for iOS to punch a hole in the QML Scene should more or less work just fine for both platforms.
This task should track works related to this aspect. As soon as this works, we will see what is needed in the WebView.
Please note that the Qt Ad team needs a working prototype before June
Note that this task has been listed for Android and iOS, since the use case in Qt Ad works on other platforms, where Qt WebEngine is used to render ads and so it can be overlayed as needed. Still, we might need this feature on other platforms for other use cases. Please keep this in mind to assure the max cross-platform compability.
Attachments
Issue Links
- is required for
-
QTBUG-75747 Windows: Support WebView2 backend
- Open
- relates to
-
QTBUG-124756 QQuickWindowContainer is not in the right child order
- Open
-
QTBUG-117595 Add mechanism in order to “host” a control with a Tab-focus regime different from QQuickItem
- Reported
- replaces
-
QTBUG-109674 Embed other Applications inside QtQuick
- Withdrawn
- resulted from
-
QTBUG-100874 Support overlays on top of Qt WebView on iOS and Android
- Open
- resulted in
-
QTBUG-122415 Flickering when dragging a sub window
- Reported
-
QTBUG-122592 Property bindings not working for Popup in QML Window Embedding
- Open
Gerrit Reviews
For Gerrit Dashboard: QTBUG-102835 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
512907,18 | Add preliminary support for embedding QWindows into Qt Quick | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |