summaryrefslogtreecommitdiffstats
path: root/src/webengine/render_widget_host_view_qt_delegate_quickwindow.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix 'WebEngine' ambiguity for Qt6Michal Klocek2021-04-131-132/+0
| | | | | | | | | 'WebEngine' is a qml module, however name itself is ambiguous. Thefore now with Qt6 and with cmake port name the module as WebEngineQuick. Change-Id: I948672dd5d389a01c6a31ec871459164fd989c0f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.15' into devAllan Sandfeld Jensen2021-03-161-31/+19
|\ | | | | | | Change-Id: I0dd7c64669f4b130047a4a3836f62f7ee5b5f8d9
| * Fix popup positionMichal Klocek2021-02-161-28/+16
| | | | | | | | | | | | | | | | | | This patch fixes popup position when popup have parent window. Make simple offset calculation and add rotated pupups support in another patch. Change-Id: Id53524375eeecbc316dc6f6bef7f32669a72beb3 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * Fix mad popup qquickwindows on waylandMichal Klocek2021-02-161-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On wayland with weston the popup quickwindow should have parent otherwise it gets into 'mad' mode and jumps around the screen. This also fixes similar issue on some embedded x11 setups. Adding parent brakes positioning of popups, but the fix is done in followup patch. This patch also has a regression, closing application during opened comobox will cause crash, however before this patch application simply did not remove render process or "hanged" on exit. This issue is also handled in follow up patches. Change-Id: I876b9a5b58a731eee95f30a52a3c2705730631da Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * Remove more leftovers of the old compositorAllan Sandfeld Jensen2021-02-081-10/+0
| | | | | | | | | | | | | | Also removes another private dependency Change-Id: Ie0a671c66f9aa49e7001c44e69bf94e11ab058a5 Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* | Merge remote-tracking branch 'origin/5.15' into devAllan Sandfeld Jensen2021-01-251-2/+1
|\| | | | | | | | | | | Including update to 87-based Change-Id: I36b6054e00de97ab055d0bc800cff08d0408fac6
| * Fix position of popup on qmlMichal Klocek2021-01-181-2/+1
| | | | | | | | | | | | | | | | | | | | | | In case there is no window system with qml simply use screen rect. This will also work well with rotated view (for non windowing system). Task-number: QTBUG-86034 Task-number: QTBUG-89358 Change-Id: Ic042d766d661c8322422b194c08b58609992961b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Move scenegraph handling out of coreJüri Valdmann2020-07-061-26/+0
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace Display{Producer,Consumer,FrameSink} with the new classes Compositor and Compositor::Observer. The Compositor subclasses are implemented by the OutputSurfaces, replacing DisplayProducer in this role. Unlike DisplayProducer, the new classes do not use QtQuick scenegraph types, but rather give access to the software QImage or OpenGL texture directly. The connection to the "other half" is simplified by replacing DisplayConsumer with Compositor::Observer, which is no longer implemented by RenderWidgetHostViewQt, but directly by its delegates in the quick and widgets libraries. RenderWidgetHostViewQt now only provides the delegate with a Compositor::Id which is used to connect the corresponding Compositor and Observer. The delegates are responsible for generating QtQuick scenegraph nodes from the information provided by the Compositor subclasses. Behavior with software and old OpenGL scenegraph backends is unchanged: both continue to work. As for the RHI scenegraph backend, the code here is correct but nonetheless not working: changes are needed in qtbase to make RHI use the global share context for its OpenGL context. Fixes: QTBUG-78682 Change-Id: I837da8860a18ec366ed33f6ecc44c147245e1101 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Keep HTML dropdown always on topPeter Varga2020-03-261-1/+1
| | | | | | | | | | | | It worked properly when RenderWidgetHostViewQtDelegateQuickWindow had Qt::ToolTip flag because tooltips are forced to be on top by QPA. Force RenderWidgethostViewQtDelegateQuickWindow to stay on top by the Qt::WindowStaysOnTopHint flag. Fixes: QTBUG-82993 Change-Id: Iccc48d6bf3570fee09af6d713f6f0bcd56e22b9b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.13' into 5.14Allan Sandfeld Jensen2019-09-241-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: config.tests/glibc/glibc.cpp src/3rdparty src/core/configure.json src/core/profile_io_data_qt.cpp src/webengine/configure.json src/webenginewidgets/api/qwebenginepage.cpp tests/auto/widgets/qwebenginepage/BLACKLIST Change-Id: I3e1781048c3cb09bfbf7427dfc5dd1fec11a2b97
| * Fix WebEngineView flashing when closing popupPeter Varga2019-09-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Closing a popup (eg. HTML select element) might cause WebEngineView to flash on macOS. This seems to be related to the window's NSPanel destruction and seems to appear only if the Qt::ToolTip window flag is set. Fixes: QTBUG-77072 Fixes: QTBUG-78084 Change-Id: I72af67ee97304278870b312482f8f9058ecd1233 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* | Remove usage of QSGInternalImageNodeAlexandru Croitor2019-07-231-5/+0
|/ | | | | | | | | | | | | Since 1f01b44d20471a7f4a5029a4c0049e8296749fef landed in qtdeclarative, the internal API createInternalImageNode() takes one required argument. However due to the following commit in qtdeclarative cf24651b550752fbf9bd3afb02aee5d722164658 we no longer need to use internal image nodes. Remove their usage, and use the regular image nodes instead. Change-Id: Ie0cc2a2c1e365bb7fae564ad3c9d880c3a0bf0d9 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Place popups in correct locations for transformed webengine viewsAllan Sandfeld Jensen2019-05-141-5/+37
| | | | | | | | | | | Transform between global coordinates have the relative position to the window transforms and coordinates where they are not. Note, the content of the popup is not transformed yet. Task-number: QTBUG-73244 Change-Id: I74b75771e8b60b409ab82c6238308b2497c435ef Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Introduce RenderWidgetHostViewQtDelegateQuick::windowGeometry()Allan Sandfeld Jensen2019-05-071-0/+5
| | | | | | | Leave it up to hostview delegate to report window geometry. Change-Id: I19a4b911aa493fbc6f66c6169e7fbbb7bf674217 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Simplify visual properties handling in RenderWidgetHostViewQtJüri Valdmann2019-02-131-7/+2
| | | | | | | | | Replace separate notifications from delegate with one combined notification and change detection. Store view rect, window rect and screen info in RWHVQ to ensure the properties are in a consistent state. Change-Id: Icef8a17e72882f56db249f5553b6cf554e1f91dc Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Stop showing speculative framesJüri Valdmann2018-10-291-7/+0
| | | | | | | | | | | | | | | | | | | | | Chromium creates "speculative" frames (RenderFrameHost and company) for pending cross-process navigations (and maybe other navigations too). For example, a redirect from http://qt.io to https://qt.io will trigger this, as described in the bug report. These speculative frames are loading in the background and only shown once they are officially ready (as decided by the RenderFrameHostManager and signaled to WebContentsObserver::RenderViewHostChanged). At least, this is how it's supposed to work and how it works in Chrome. In WebEngine, however, we actually show these speculative frames as soon as they are created and before they are ready. This runs into the problem that the if the speculative frame is dropped (instead of committed), then Chromium will not ask us to re-show the old frame (since it hasn't actually asked to us to show the new frame, it naturally assumes we are still showing the old one). Fixes: QTBUG-68727 Change-Id: I9d53035ce60e3a002d5412d4473d940a32644b5d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Cleanup scenegraph integrationAllan Sandfeld Jensen2018-10-021-4/+4
| | | | | | | | Get rid of old QSG type names, and also remove redundant setupTiledNode call. Change-Id: Ifbd83f6bdc0e029eb52899b20562ef6606f5562b Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Switch away from deprecated QSG*Node classesAllan Sandfeld Jensen2016-07-141-0/+10
| | | | | | | | Use the new public QSG classes meant to replace QSGSimpleRectNode and QSGSimpleTextureNode. Change-Id: Icdfc3b4ba13dd28258defa955d050927abbae95b Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Move toolTip handling to WebContentsAdapterClientAdam Kallai2016-07-141-5/+0
| | | | | | | | | This is essential for set tooltip in Qt Quick part because the setToolTip function should not be public. Change-Id: I1ebd0c811504fded8edff1a5a6110ce3512bab4f Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Fix build with newer qtdeclarativeAllan Sandfeld Jensen2016-06-271-1/+1
| | | | | | | | | | What was previous called QSGImageNode is now QSGInternalImageNode Task-number: QTBUG-54312 Change-Id: Iec286765bea5598d86932c81bfd122461a2e9884 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Unify license header usage.Jani Heikkinen2016-02-011-11/+14
| | | | | | | | | Update files using old header.LGPL3 to use header.LGPL Update files using old header.FLD to use new header.FDL Update files using old header.BSD to use new header.BSD Change-Id: I36a67aaa8c3ca6c7946308defc9c03c3571a7d23 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* WebEngineView does not load a url while invisibleAndras Becsi2015-04-221-0/+2
| | | | | | | | | | Notify the RenderWidgetHost about visibility changes so that we receive updates with non-empty DelegatedFrameData when a page was loaded in an invisible WebEngineView and then made visible. Task-number: QTBUG-42789 Change-Id: I4856efcd9c0ce44b66a228d5a414198df46b95eb Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
* Add namespace to internal QtWebEngine APIAllan Sandfeld Jensen2015-03-021-0/+3
| | | | | | | | Adds the QtWebEngineCore namespace to all internal core API. This ensures we don't export any internal symbols in the global namespace. Change-Id: I26af888ea7c6c4c4d0f04c24a377c1a9d3c92751 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
* Update copyright headersJani Heikkinen2015-02-161-7/+7
| | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: Ieb6bac7a1be5c25eb7cb917495b58b6a870ca6d4 Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
* Support TransferableResource::is_softwareJocelyn Turcotte2014-11-251-0/+5
| | | | | | | | | | | | | | When the GPU process fails to initialize, or when the --disable-gpu switch is provided, the delegating renderer will transfer resource mailboxes through shared memory pixel data instead of through shared texture IDs in the GPU process. Handle this by uploading the pixel data ourselves with createTextureFromImage, also allowing us to render tiles in the QtQuick 2D Renderer. Change-Id: I70ad7122cd0e52dd5ab435ae01e7f032b8e1194e Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Avoid relying on QOpenGL classes to handle RenderPassesJocelyn Turcotte2014-11-251-0/+10
| | | | | | | | | | | | | | | | | | | Use QSGLayer and get rid of RenderPassTexture so that we can render intermediate layers with the QtQuick 2D Renderer. This reintroduces the private dependency on QtQuick since the QSGLayer factory methods aren't available publically, and also that we need to use QSGImageNode instead of QSGSimpleTextureNode to use them. Since we can't subclass QSGLayer to hold a reference to SG objects directly in the nodes that use them, store them all in the wrapping DelegatedFrameNode in a SGObjects structs. This works assuming that the DelegatedFrameNode will always be at the root of our nodes, layers and textures; if the scene graph destroys the DelegatedFrameNode all child nodes will be destroyed with it. Change-Id: Iedeceb8f98eb54fd8228a677c366d6df9a270e11 Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
* Update License Headers for Qt WebEngine to LGPLv3.Zeno Albisser2014-08-211-14/+9
| | | | | | | Change-Id: Idbe0eafb51d77cc00e3a93179b81770724d5bfaa Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com> Reviewed-by: Tuukka Turunen <tuukka.turunen@digia.com> Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
* Fix RenderWidgetHostViewQt::GetViewBoundsFrederik Gladhorn2014-07-141-0/+5
| | | | | | | | | | GetViewBounds should return the bounds of the view, not the screen rect. The view bounds are for example used to calculate the screen position of accessible objects (which gets fixed with this patch). Change-Id: I5b342113af737847c1756a13183cd2b8b8db648a Reviewed-by: Andras Becsi <andras.becsi@digia.com> Reviewed-by: Michael Bruning <michael.bruning@digia.com>
* Remove the RenderWidgetHostViewQtDelegateQuickBase templateJocelyn Turcotte2014-04-081-0/+1
| | | | | | | We now only have a QQuickItem subclass and this isn't needed anymore. Change-Id: I3a10943e54f52d1554dc76ccc1841aaacd5171e2 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Get rid of the BackingStore rendering pathJocelyn Turcotte2014-04-081-2/+1
| | | | | | | | | Now that the widgets view is also using the delegated renderer, there are no supported configuration that use the BackingStore rendering path, itself on the way of deprecation in Chromium. Change-Id: I4ab889f6a7c65e8447c259faf2c7a98b88c1acf5 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Revert part of the RenderWidgetHostViewQtDelegate refactoringJocelyn Turcotte2014-04-081-13/+7
| | | | | | | | | | | This reverts parts of commit 9c198939be1ef064d1a2430a4b9991f2fe16f359. This does keeps the popup fixes and removes support for QWebEnginePage::setViewportSize and QWebEnginePage::render until we can evaluate the needs vs the cost of such feature. Change-Id: I1b55b751d463717b1462393ea8cd353422f8fdbb Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Make WebUI popups work with QtQuickPierre Rossi2014-04-021-0/+129
This is used by popups for select elements and date pickers among other things. We can keep using the same RenderWidgetHostViewQtDelegate implementations for that purpose, and query QPA to decide if they should be wrapped into their own QQuickWindow. Longer term, we might want to optionally delegate that functionality to QML. Change-Id: I88540ca32a9a707d380dfbf486b7f7806b5b65ff Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>