summaryrefslogtreecommitdiffstats
path: root/src/webengine/render_widget_host_view_qt_delegate_quick.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Adapt to geometryChanged => geometryChange renamingMitch Curtis2020-05-141-2/+2
| | | | | | Task-number: QTBUG-82994 Change-Id: Ie06c326e045f4ed1e73a203f24eab054d64661f4 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
* Fix building dev with newer QtBaseAllan Sandfeld Jensen2020-04-241-0/+1
| | | | | Change-Id: I0d52e4f6684425cb15319760e0001bdb13846997 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Update accessibility focus on FocusIn events for QuickPeter Varga2020-03-021-0/+7
| | | | | | | | | | Without this, an already focused web element might not be read when QQuickWebEngineView gets the active focus. QWidget::setFocus() does this for Widget. Fixes: QTBUG-81539 Change-Id: Iaa418c416871e580583ea05e50b223dea3501fd8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Invalidate accessible interfaces on destruction of view or pagePeter Varga2020-02-271-6/+18
| | | | | | | | | | | | | | | | | | | | | | | The RenderWidgetHostViewQtDelegate(Widget|Quick)Accessible interfaces are forwarding their queries to the WebEngineView. In case of widget, the view also forwards the query to the page. The accessible interfaces may outlive the view and page. The interfaces are not supposed to be used after the destruction of the underlying objects. Thus, set the RenderWidgetHostViewQtDelegate and WebEngineView accessible interfaces invalid if the corresponding pointers are null. Also fix querying the root accessible interface of the web page when the render frame host is not available. This fixes crash when QT_LOGGING_RULES="qt.accessibility.cache.debug=true" is set and logger tries to pretty-print QAccessibleInterfaces during destruction. Task-number: QTBUG-78284 Change-Id: If18af0605061fcd82d019d0042dbf1c9d3a910be Reviewed-by: Kirill Burtsev <kirill.burtsev@qt.io>
* Fix quick accessibility on macOSPeter Varga2020-02-171-0/+49
| | | | | | | | | | | | | Same as the widget fix: ffdf7ece Fix widget accessibility on macOS This patch depends on a focusChild() fix in qtdeclarative: 6420ad91d3 Fix QAccessibleQuickWindow::focusChild() to return focused descendant Task-number: QTBUG-78284 Task-number: QTBUG-81539 Change-Id: If0da937d2c778a158ce02e1433b28ca0888692d8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.13' into 5.14Allan Sandfeld Jensen2019-09-241-0/+4
|\ | | | | | | | | | | | | | | | | | | | | | | | | 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 compilation against 5.9Michal Klocek2019-07-311-0/+4
| | | | | | | | | | Change-Id: Icfe50ba5c60a6e2e588af6cdc07500013b6df9a1 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Remove usage of QSGInternalImageNodeAlexandru Croitor2019-07-231-6/+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-1/+7
| | | | | | | | | | | 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/+7
| | | | | | | Leave it up to hostview delegate to report window geometry. Change-Id: I19a4b911aa493fbc6f66c6169e7fbbb7bf674217 Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Merge remote-tracking branch 'origin/5.12' into 5.13Allan Sandfeld Jensen2019-02-151-1/+1
|\ | | | | | | Change-Id: I0822fb8a10945a252cfd1aacaf0b6d9902cc8831
| * Fix building with -no-opengl on macOSMichael Brüning2018-12-181-1/+1
| | | | | | | | | | | | | | | | Based on a patch Dmitriy Kuminov. Change-Id: I5365b16e3b25fcfc5e8be33e6cdcfb85e3e118e4 Fixes: QTBUG-72540 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | Simplify visual properties handling in RenderWidgetHostViewQtJüri Valdmann2019-02-131-27/+5
|/ | | | | | | | | 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>
* Fix input method updatePeter Varga2018-11-291-5/+2
| | | | | | | | | | | | Do the update after the input properties are changed in RenderWidgetHostViewQt. Moreover, always update on input state changes, like cursor position, surrounding text and text selection (see QInputMethod::update() docs). Task-number: QTBUG-70158 Task-number: QTBUG-71995 Change-Id: I9d5c6e299826fbe66f5285b648013ef79aabed9b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Implement CopyFromSurfaceAllan Sandfeld Jensen2018-11-081-0/+11
| | | | | | | Means we can get screenshots in devtools. Change-Id: I7b50d6ac5a54d236573bcf5f58ae872bd50dccad Reviewed-by: Jüri Valdmann <juri.valdmann@qt.io>
* Fix a FIXMEAllan Sandfeld Jensen2018-11-061-6/+3
| | | | | Change-Id: Idd100dd057944d35ba369ce88dcc32a308c1a6ec Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Stop showing speculative framesJüri Valdmann2018-10-291-13/+3
| | | | | | | | | | | | | | | | | | | | | 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-2/+2
| | | | | | | | 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>
* Fine tune configure and clean up header includesMichal Klocek2018-06-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | Previously configure was generating two config headers qtwebengine-config.h and qtwebengine-config_p.h, however those headers were never installed or included as dependency in Makefiles. Moreover, due to the name clash all features were included into qt_lib_webengine_*.pri which is QtWebEngine QML module. Move configure to core so all features belong now to qt_lib_webenginecore*.pri. Fix global includes to include qtwebenginecore-config*.h. Drop all DEFINES and use QT_CONFIG instead. Cleanup all evil looking includes in headers for webengine and webenginewidgets. Change-Id: Iddbc8bf4487d9a5f0c19a71a9569535083507756 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Use range-based for instead of Q_FOREACHJüri Valdmann2018-06-061-1/+1
| | | | | Change-Id: Ibf016b795ff98fddfa29fb5dc63924a2d2159d71 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-11-151-0/+5
|\ | | | | | | | | | | | | | | | | Conflicts: src/3rdparty tests/auto/quick/qmltests/qmltests.pro tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp Change-Id: I2a1e3a83e29a1d6709f3e98fda3f7b4ab7ab297e
| * Notify Chromium about leaving viewPeter Varga2017-11-091-0/+5
| | | | | | | | | | | | | | | | Forward QEvent::Leave for Widget and QEvent::HoverLeave for Quick. Task-number: QTBUG-64265 Change-Id: Ide32768902956476d24b1d4115e305392b62feb3 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Pass editor shortcuts to Chromium by ForwardKeyboardEventWithCommandsPeter Varga2017-11-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Moreover, extend the list of supported editor shortcuts and stabilize the corresponding auto test. Task-number: QTBUG-54692 Task-number: QTBUG-54812 Task-number: QTBUG-54221 Task-number: QTBUG-59053 Change-Id: I4dd8230519639ea6e3340992dbb54a609ecfcd91 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Disable IME on password inputPeter Varga2017-10-041-4/+6
| | | | | | | | | | | | Task-number: QTBUG-62433 Change-Id: Icdc3355ca9d1ec4fb25d512c56c19aca94ae8928 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Remove unused header includeKai Koehne2017-09-181-1/+0
| | | | | | | | | | | | Task-number: QTBUG-63098 Change-Id: Id5fd1f940c928fd74bdc3c202f3e8b18a086c2d0 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | Merge branch '5.9' into 5.10Allan Sandfeld Jensen2017-09-061-0/+2
|\| | | | | | | Change-Id: I9fe9946ba47f9ef509a861963c83e275a25fffd0
| * Compile with Gestures disabledAlan Alpert2017-09-051-0/+2
| | | | | | | | | | | | Change-Id: Ibad2b8ebb90e79ff8337d994b2234eed5e230daa Reviewed-by: Romain Pokrzywka <romain.pokrzywka@gmail.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Remove support for building with Qt versions < 5.8.0Allan Sandfeld Jensen2017-08-041-18/+0
| | | | | | | | | | Change-Id: I2f2ba754111e198298b7d1a595343fcd773e05e5 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devAllan Sandfeld Jensen2017-07-051-8/+2
|\| | | | | | | Change-Id: Ida702fd5fa05a32d6cd7fc737aa061da74b675a0
| * Override shortcuts only when an HTML input field has focusJoerg Bornemann2017-06-081-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise an application shortcut like Shift+Delete would no longer work when webengine has focus (e.g. "delete mail" in KMail) This removes unconditional calls to editorActionForKeyEvent for ShortcutOverride event handling. We can remove those, because the key sequences that are checked by editorActionForKeyEvent are a subset of the key sequences checked by isCommonTextEditShortcut. This amends commit 3902b27e. Change-Id: I12a98368381edef36f11457c8b864d843efb871a Reviewed-by: David Faure <david.faure@kdab.com> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Add back input method auto tests and test virtual keyboard for QuickPeter Varga2017-06-221-4/+5
|/ | | | | | | | This patch also fixes the update of the ItemAcceptsInputMethod flag of QQuickWebEngineView regarding to the focused element in the view. Change-Id: Ic6e39401bdc7ca5fab9cc03e878aa731f23fc147 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Override shortcuts in HTML input fieldsJoerg Bornemann2017-04-251-3/+5
| | | | | | | | | | | | | | | | | | | When users defined a single-letter short cut it was not possible to type this letter in HTML input fields. Fix this by accepting ShortcutOverride events whenever the web page is editing text. Use QInputControl::isCommonTextEditShortcut for Qt 5.9 and later. For the case where QtWebEngine is built against an older Qt a duplicated code path is used. Also, ensure users do not override web action short cuts. Task-number: QTBUG-59053 Change-Id: Ic26cf2a040a72b118273c6645c00b2913b995b0b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Implement proper touch handling on macOSAlexandru Croitor2017-04-211-0/+3
| | | | | | | | | | | | | | | Use the OS provided QNativeGestureEvents for pinching and smart zooming. This replaces the usage of the Android based gesture recognizer on macOS. This also implements multitouch gestures to work with the Qt Quick implementation of QtWebEngine for macOS, because touch events are ignored by default on macOS in QQuickItem. Task-number: QTBUG-58779 Change-Id: I17399e4e89a57557540b2fd0940a445326b682f3 Reviewed-by: Florian Bruhin <qt-project.org@the-compiler.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Ignore synthetic hover move events if the mouse has not actually movedMichael Brüning2017-02-221-1/+2
| | | | | | | | | | | | | | | 6f84a09dfb and b2501b0bda in qtdeclarative introduced a synthetic hover move event being sent once per frame if the item underneath the mouse is marked as dirty. This triggers a loop when the web contents changes reacting to mouse move events as the item needs to be marked dirty to be rerendered. Ignore hover move events if the position of the mouse has actually not changed to work around this. Task-number: QTBUG-58561 Change-Id: Ic7f3c06e7acf5dfeacc95e347bd026233c957556 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-10-061-0/+14
|\ | | | | | | | | | | | | | | Conflicts: src/3rdparty src/webengine/api/qquickwebenginesettings.cpp Change-Id: Ie4abadb076c51d070cbb05f29b9ebcd9705933ad
| * Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-10-041-0/+14
| |\ | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty Change-Id: I49d99b5ac2cfba243eda1ea705c2a7d71b5542f6
| | * Propagate the view's screen coordinates on global position change in QuickPeter Varga2016-09-271-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | Based on widget solution: 1e83a2d1b61b13323163dfe8cac64dad397cb202 Task-number: QTBUG-55650 Change-Id: I6df45e7e018fa201c50fe81e8679c36f97ddeb1e Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into 5.8Liang Qi2016-09-211-3/+3
|\| | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty src/core/delegated_frame_node.h src/webengine/api/qquickwebenginecontextmenudata.cpp Change-Id: I163488d0d32cd981351608b2886f12e547e24672
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Michal Klocek2016-08-311-3/+3
| |\| | | | | | | | | | Change-Id: Ic739ab9db0851cc13467168840ea2549996432f8
| | * Clicking on a select box option, did not workAdam Kallai2016-08-301-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There was introcuded a new logic which proves that no mouse / keyboard events are forwarded to Chromium if the view has no focus, and activeFocusOnPress is set to false. The selection box get focus when the user click on it, but the popup window never get (focus is on QuickRootItem) in this case these mouse events are ignored to forward to Chromium. Task-number: QTBUG-54795 Change-Id: Id6e81ee39dcde21a6c5c46e302888b9e9478352f Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | Restore ability to build with Qt 5.7v5.8.0-alpha1Allan Sandfeld Jensen2016-08-281-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | Defines the qtConfig() test for older Qt versions, and fix conflict between two QSGRectangle definitions. Change-Id: Icf4ef2f88d9e98e7aea4e88d777827bf69a4c281 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-08-161-1/+1
|\| | | | | | | | | | | Change-Id: Id5f97771be23a4393e8d3be98903c321377ae809
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-161-1/+1
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty src/webengine/api/qquickwebenginecertificateerror.cpp src/webengine/doc/src/webengineview.qdoc tools/qmake/config.tests/libcap/libcap.cpp Change-Id: I2a2cfc904a8d6b561fb71ef7a0cc4bfb860124db
| | * Fix issue where Chromium thought it had active focusAlexandru Croitor2016-08-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, when a WebEngineView's RenderWidgetHostViewQtDelegateQuick had focus, but not activeFocus, Chromium was told that it had keyboard focus. That is not correct, because having focus inside the FocusScope (the WebEngineView), does not mean it has keyboard focus, it just means the RWHVQDQ will receive active focus, when the WebEngineView does. The call path for that erronous check was done when a new page was loaded, specifically going through NavigatorImpl::DidNavigate() -> RenderFrameHostManager::CommitPending() -> render_frame_host_->GetView()->HasFocus() -> RenderWidgetHostViewQtDelegateQuick::hasKeyboardFocus(), which resulted in incorrect display of a blinking caret in an input, when the view actually wasn't focused. The fix consists in checking for the activeFocus rather than the focus property. Change-Id: I97002be3fc8adfec2228a1b5ad62696f8872d3cc Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | | Merge remote-tracking branch 'origin/5.7' into devLiang Qi2016-08-051-0/+12
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also blacklist tst_QWebEnginePage::comboBoxPopupPositionAfterChildMove() and comboBoxPopupPositionAfterMove(). Conflicts: .qmake.conf src/3rdparty src/core/render_widget_host_view_qt.cpp src/core/resources/resources.gyp src/webengine/doc/src/qtwebengine-platform-notes.qdoc src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp src/webenginewidgets/render_widget_host_view_qt_delegate_widget.h tests/auto/widgets/qwebenginepage/BLACKLIST tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp tools/qmake/mkspecs/features/functions.prf Task-number: QTBUG-55158 Change-Id: I1d73ac9b3ca5293ad3c7e3a56f4c395da930e6f4
| * | Merge remote-tracking branch 'origin/5.6' into 5.7Allan Sandfeld Jensen2016-06-271-0/+12
| |\| | | | | | | | | | Change-Id: Ic6686df8f82f710a3441501b7eeaffe69fbcbdf7
| | * Override short-cuts to common editor commandsAllan Sandfeld Jensen2016-06-221-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To ensure Chromium is given a chance to handle editor commands, we must override these short-cuts. On OS X we must also perform the action afterwards as these are not handled internally by the Blink Editor. The patch solves copy/paste in flash plugins and copy/paste on OS X when no application short-cuts have been defined. The handling of short-cut override events is based on how it was handled in Qt WebKit Task-number: QTBUG-54221 Change-Id: I748671c7bfa5662aae16c6a4b9bbe5e2bce1b907 Reviewed-by: Alexandru Croitor <alexandru.croitor@theqtcompany.com>
* | | Switch away from deprecated QSG*Node classesAllan Sandfeld Jensen2016-07-141-0/+23
| | | | | | | | | | | | | | | | | | | | | | | | Use the new public QSG classes meant to replace QSGSimpleRectNode and QSGSimpleTextureNode. Change-Id: Icdfc3b4ba13dd28258defa955d050927abbae95b Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | | Fix build with newer qtdeclarativeAllan Sandfeld Jensen2016-06-271-1/+5
|/ / | | | | | | | | | | | | | | | | | | 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>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Allan Sandfeld Jensen2016-05-311-2/+27
|\| | | | | | | Change-Id: I561c00b3a844ab493a5bf0148a5923662842cf5d