summaryrefslogtreecommitdiffstats
path: root/src/core/render_widget_host_view_qt.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Close popups when parent window is movedAlexandru Croitor2018-07-271-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When an HTML select box was clicked inside of a QWebEngineView and the parent QWebEngineView window was moved using the mouse (via window decoration toolbar for example) the popup window would stay around instead of being closed. This happened because of the usage of the Qt:Tool window flag for the popup window, which implies a tool that floats near its parent window. The fix is threefold: 1) Use Qt::Popup instead, similarly to how QMenu does it. Whenever the parent window is moved, the popup will now get a CloseEvent. 2) Handle the CloseEvent by telling Chromium to close and destroy the popup. 3) On Windows the OS might send mouse move events to the popup RWHVQD instance after its parent QWebEngineView, RWHVQD, QWebEnginePagePrivate (client adapter) is destroyed. We need to guard the mouse forwarding code not to access the client adapter if it has already been destroyed. The second point is done by telling Chromium that its popup lost focus which it interprets as a sign to hide it, and automatically destroy it. This will destroy the underlying RWHVQtDelegateWidget and RWHVQt instances. Task-number: QTBUG-59891 Change-Id: I47f94a93c495a6caa5de92a6022eaca154994eda Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Compile with -no-feature-tableteventAndy Shaw2018-06-291-0/+4
| | | | | Change-Id: I7e03d6e3347ee9b81a7414574098827b5773b7b4 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Fix WebCursor scaling and hotspotJüri Valdmann2018-06-051-4/+25
| | | | | | | | | | | | | | | Old behavior: - Hotspot always chosen according to 2x devicePixelRatio. - Image always chosen according to 1x devicePixelRatio. New behavior: - Use actual devicePixelRatio. Task-number: QTBUG-68376 Change-Id: I6eef12a7dcf7fde7f8f488d9f2cba99f21e73cc2 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* Fix finishing IME compositionPeter Varga2018-04-261-50/+48
| | | | | | | | | | | | | Call RenderWidgetHostImpl::ImeCommitText() instead of RenderWidgetHostImpl::ImeFinishComposingText() to trigger the necessary JavaScript events on composing. This fixes IME composition (eg. for dead keys) on web pages which use custom JavaScript IME handler like facebook. Task-number: QTBUG-66046 Change-Id: Ibc177995ba6e85eca42ae333decacfe6e788ce41 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Protect against null adapter clientAllan Sandfeld Jensen2018-04-121-3/+7
| | | | | | | Task-number: QTBUG-67653 Change-Id: I07c9dca788ee31f691b05f7647ffbf3f9e0b7260 Reviewed-by: Michal Klocek <michal.klocek@qt.io> Reviewed-by: Viktor Engelmann <viktor.engelmann@qt.io>
* Fix multiple shortcut events being delivered on macOSMichael Brüning2018-03-231-2/+5
| | | | | | | | | | | | | | Commit ef1d61a3516182b0a39330b5ac5988f92c82bc4f introduced a regression where multiple shortcut events where delivered on macOS. Instead of using tryShortcut (which triggers shortcut events) to check if the shortcut needs to be overridden, check if the shortcut map has an entry for the key seqeunce in question. Task-number: QTBUG-66207 Change-Id: I8d277e2ac39de8a1f2d2c43dc8486e042c4ea458 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Basic adaptations for 65-basedAllan Sandfeld Jensen2018-03-151-2/+15
| | | | | Change-Id: I121b14d6a44e80f5eea4b159c58f7010d472926e Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Basic adaptations for 64-basedAllan Sandfeld Jensen2018-03-151-2/+2
| | | | | Change-Id: I11e2da206e4e59872a38c178f57a5879c1bbf229 Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* Make cursor position update more reliablePeter Varga2018-03-021-0/+7
| | | | | | | | | | | | | | | This patch makes the cursor position update independent from the order of calling RenderWidgetHostViewQt::OnUpdateTextInputStateCalled() and RenderWidgetHostViewQt::OnTextSelectionChanged(). This fixes the cursor position update after clearing text selection in 65-based Chromium update. From 65-based RenderWidget::WillBeginCompositorFrame() might not be called after text selection changes thus does not trigger an extra TextInputState update which hid this issue with earlier Chromium versions. Change-Id: I80c07e26b66c3a96cb004b9e3ceb57cd99234237 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Merge remote-tracking branch 'origin/5.10' into devAllan Sandfeld Jensen2018-02-021-1/+2
|\ | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/core/download_manager_delegate_qt.cpp src/core/download_manager_delegate_qt.h src/core/render_widget_host_view_qt.cpp src/core/web_contents_adapter.cpp src/webengine/api/qquickwebengineview.cpp tests/auto/widgets/qwebenginedownloads/tst_qwebenginedownloads.cpp Change-Id: I2308414ce257ae5bb0fc9f6493aa111a267ff39b
| * Deselect text on each fourth clickSzabolcs David2018-01-221-1/+2
| | | | | | | | | | | | | | | | | | | | Triple click selects the entire paragraph and it should be deselected on a quadra click. Task-number: QTBUG-65649 Change-Id: I87c9405a202d8b6eacd7c19dbbcb051756c41220 Reviewed-by: Viktor Engelmann <viktor.engelmann@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Adaptations for Chromium 63Allan Sandfeld Jensen2018-01-251-2/+2
| | | | | | | | | | Change-Id: I551c7091bbc0463bed94180313eb2bfe92f0ad84 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | Adaptations for Chromium 62Allan Sandfeld Jensen2018-01-251-9/+9
| | | | | | | | | | Change-Id: I49cd3c419d4dd1180144c3c07bdd9a628ab73caa Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | Merge remote-tracking branch 'origin/5.10' into devAllan Sandfeld Jensen2017-12-181-6/+5
|\| | | | | | | Change-Id: I9ddd2bdd830a862cd81dc1af5616d43e652a1c0e
| * Merge remote-tracking branch 'origin/5.9' into 5.10Allan Sandfeld Jensen2017-12-051-6/+5
| |\ | | | | | | | | | Change-Id: Ia24d831c2d2b04d13cf6eef2883d2ab2e4cad642
| | * Ensure BeginFrameSource is created before useJüri Valdmann2017-11-291-6/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In RenderWidgetHostViewQt::RenderWidgetHostViewQt we first call m_host->SetView(this) and then initialize the m_beginFrameSource member. However, since Chromium 55, m_host->SetView(this) ends up calling RenderWidgetHostViewQt::SetNeedsBeginFrames which already needs the m_beginFrameSource member. Fix by initializing m_beginFrameSource before calling m_host->SetView(this). Task-number: QTBUG-64560 Change-Id: Idda188977d0eec0656297fb4e3f3b3d2302f5eba Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| | * Fill pointerType member of pointer eventsSzabolcs David2017-11-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix pointerType of the currently supported (mouse and touch) events. Support of pen and eraser types is coming with QTBUG-62975. Backport of 5.10 fix: 64ad0e8b335509970062ba550a06018426b7c285 Task-number: QTBUG-63266 Task-number: QTBUG-64436 Change-Id: Ief32b9680ab5acfb15537aba74c2bcdd6f51c978 Reviewed-by: Viktor Engelmann <viktor.engelmann@qt.io> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | Introduce devtools frontendAllan Sandfeld Jensen2017-12-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes it possible to use devtools without using the remote-debugger Task-number: QTBUG-47899 Task-number: QTBUG-50725 Task-number: QTBUG-50766 Change-Id: Id32e13f773372d9917599ebbb64ab4af61bbf1d8 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | | Merge remote-tracking branch 'origin/5.10' into devAllan Sandfeld Jensen2017-11-291-1/+107
|\| | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/core/web_event_factory.cpp src/core/web_event_factory.h src/webengine/render_widget_host_view_qt_delegate_quick.h Change-Id: Ic43787e2689c81b501ed395a990190eb67d83a2b
| * | Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-11-151-0/+4
| |\| | | | | | | | | | | | | | | | | | | | | | | | | 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/+4
| | | | | | | | | | | | | | | | | | | | | | | | 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>
| * | Fill pointerType member of pointer eventsSzabolcs David2017-11-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fix pointerType of the currently supported (mouse and touch) events. Support of pen and eraser types is coming with QTBUG-62975. Task-number: QTBUG-63266 Change-Id: Ief32b9680ab5acfb15537aba74c2bcdd6f51c978 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
| * | Pass editor shortcuts to Chromium by ForwardKeyboardEventWithCommandsPeter Varga2017-11-031-0/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | | Merge remote-tracking branch 'origin/5.10' into devLiang Qi2017-11-031-1/+23
|\| | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty Change-Id: Ie6b1922db2269e0e0561022162228a7c8609c9ba
| * | Coalesce wheel events when possibleAllan Sandfeld Jensen2017-10-271-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Combine wheel events if we are getting more than Chromium can handle. This improves latency and perceived performance when scrolling with touchpads or fine-grained mouse, on a slow machine or with a debug build. Change-Id: Id847c8e7782e155c28067b6051ce92896b68ca7a Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | | Support tablet devicesSzabolcs David2017-11-031-43/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | Process QTabletEvents and forward them to Chromium in order to support pressure, tilting, rotation, eraser and similar features of tablet devices. Change-Id: I763d9e6e7036c29715a0b5531d3c6363eb4fcd8c Reviewed-by: Michael Brüning <michael.bruning@qt.io>
* | | Merge remote-tracking branch 'origin/5.10' into devAllan Sandfeld Jensen2017-10-271-30/+24
|\| | | | | | | | | | | Change-Id: Ibc1c881a67bf088ba6fb044e2553c74c7e9e24ca
| * | Adaptations to 61-basedAllan Sandfeld Jensen2017-10-251-30/+24
| | | | | | | | | | | | | | | Change-Id: I5cb198445f283c6cea8187a1a2883896df0ee918 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
* | | Merge branch '5.10' into devAllan Sandfeld Jensen2017-10-131-3/+32
|\| | | | | | | | | | | Change-Id: I3a411e4019a5ec2f7d1a967b62a00ad7cf92f6f4
| * | Stabilize navigation after render process terminationv5.10.0-beta1Peter Varga2017-10-041-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When renderProcessTerminated signal is emitted the invalid view of the corresponding RenderWidgetHost is not destructed yet. Having this invalid view during navigation leads to a crash. The proper way to navigate on renderProcessTerminated is to schedule the navigation with QTimer::singleShot(). Otherwise, warn the user and ignore navigation to avoid crash. Task-number: QTBUG-58478 Change-Id: I54ff62f5d306c8cb1fa17e29f349d1e02c4c8cec Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * | Disable IME on password inputPeter Varga2017-10-041-3/+17
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-62433 Change-Id: Icdc3355ca9d1ec4fb25d512c56c19aca94ae8928 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * | Merge remote-tracking branch 'origin/5.9' into 5.10Allan Sandfeld Jensen2017-09-291-0/+13
| |\| | | | | | | | | | Change-Id: I7094e85a7770303a2ae30baccbc484c04f33600e
| | * Commit the done-so-far IME composition on touch eventPeter Varga2017-09-171-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix is based on afc9e2d9674f7ab5800df4803cc68c71d1ae691a Moreover, new quick auto test has been added to check that the commit happens in case mouse and touch input events. Task-number: QTBUG-62942 Change-Id: Ie9d55e0bb5b3bbc34c099502e735b94f37c5d5f8 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | | Implement geometryChangeRequested signal in the Quick APISzabolcs David2017-10-051-0/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Chromium includes the size of the frame in the requested geometry, but QWindow::setGeometry() and the related properties of QML Window expect a size without frame. This patch - fixes the geometry handling in Demobrowser example. - implements a new signal in the QML API which sends both frameless and extended geometries to the application, because QML doesn't have capability to determine the size of the frame and handle extended geometry correctly. Task-number: QTBUG-51181 Change-Id: I8595593aecca33d7cd46986c7abbad0cc7c18ec2 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Adaptations for Chromium 60Alexandru Croitor2017-09-111-13/+26
| | | | | | | | | | | | Change-Id: I536258e22c2ec143f2fd3f1cbda229e0611b6af4 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* | Adaptations for Chromium 59Allan Sandfeld Jensen2017-09-111-69/+91
| | | | | | | | | | Change-Id: I472053e316bfa782d0a6fb8903f4901be12247ae Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge branch '5.9' into 5.10Allan Sandfeld Jensen2017-09-061-3/+15
|\| | | | | | | Change-Id: I9fe9946ba47f9ef509a861963c83e275a25fffd0
| * Compile with Gestures disabledAlan Alpert2017-09-051-0/+4
| | | | | | | | | | | | Change-Id: Ibad2b8ebb90e79ff8337d994b2234eed5e230daa Reviewed-by: Romain Pokrzywka <romain.pokrzywka@gmail.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * [macOS] Warn about sending simulated touch events not working on macOSAlexandru Croitor2017-08-291-1/+11
| | | | | | | | | | | | | | | | | | | | Chromium itself does not really support processing touch events on macOS, but rather uses native gestures sent by the OS. Warn the user in case they send simulated QTouchEvents. Task-number: QTBUG-62130 Change-Id: If47f25bc06f3d6f99ba70164a585182354ed9b5a Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
| * Stop forwarding HoverEnter and HoverLeave QEventsJüri Valdmann2017-08-111-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With QtWidgets the QHoverEvent handling is slightly incorrect (HoverEnter and HoverLeave triggering Q_ASSERT), quite unnecessary (Chromium works fine with just MouseMove events when mouse tracking is enabled), and mostly unused (QHoverEvents are only delivered if the WA_Hover widget attribute is set, which it usually is not). QtQuick however does not have the equivalent of QtWidgets mouse tracking, so to get mouse movement information into Chromium we have to use HoverMove QEvents. But the HoverEnter and HoverLeave QEvents are not used or useful for QtQuick either. Task-number: QTBUG-62200 Change-Id: I333de2b6adcc24544935d36645036aedb07e51ac Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devAllan Sandfeld Jensen2017-08-141-2/+3
|\| | | | | | | | | | | Includes sha1 bump of src/3rdparty to head of 58-based. Change-Id: I37743c3979c1b6fb21f71eab7048e82f7aa5d78b
| * Fix propagation of unhandled key press eventsJoerg Bornemann2017-07-141-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Unhandled key presses for printable keys were not received by the parent widget anymore. This was a regression from 5.8.0. The propagation is suppressed if NativeWebKeyboardEvent::skip_in_browser is true. Commit 4501b9d8 accidentally removed the wrong skip_in_browser assignment. Task-number: QTBUG-61621 Change-Id: I7eafa1fac5fb9a7edc4af2bc1aac21c106264713 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | Fix emitting selectionChanged signal for non-user text selection changePeter Varga2017-07-201-8/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes the case when the text selection is triggered by JavaScript. Text selection changes triggered by IME composition text replecement are ignored. Test has been added for mouse selection clipboard: non-user text selection should not update the clipboard. Pulls in Chromium changes: 3deea95 Update TextSelection for non-user initiated events Task-number: QTBUG-53134 Task-number: QTBUG-60381 Change-Id: Ib94f57a2aa61248fba75f595245fb388b9609b6c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devAllan Sandfeld Jensen2017-07-051-5/+11
|\| | | | | | | Change-Id: Ida702fd5fa05a32d6cd7fc737aa061da74b675a0
| * Fix location of IME window on WindowsKai Koehne2017-06-271-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | SelectionRegion::caret_rect is only documented to be supported on macOS, so use anchor, focus instead. Also make sure that the rect always has a width > 0; Both the Windows QPA and the native API require this. Task-number: QTBUG-60334 Change-Id: I8436fbfaa204d243578b33cbcaa3f28871b462ee Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
| * Fix cancelling IME compositionPeter Varga2017-06-221-1/+0
| | | | | | | | | | | | Task-number: QTBUG-61429 Change-Id: I936f1c924ae8158a5243fdf20d12e6c5508b684a Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Simple adaptations for Chromium 58Allan Sandfeld Jensen2017-06-141-33/+5
| | | | | | | | | | Change-Id: I7c2c85973b03fdbd2eafb5339f33a3758d53e924 Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* | Adaptations for Chromium 57Allan Sandfeld Jensen2017-06-141-11/+9
|/ | | | | Change-Id: Ia2756c1e9b13839c2330bd98cf953d47cbdac0dd Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
* Fix selectionChanged signal out of input fieldPeter Varga2017-05-171-6/+27
| | | | | | Task-number: QTBUG-60688 Change-Id: I6d0b78e6b8df54c40ae30d5f0909c631c440a9cd Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Disable accessibility support on Linux by defaultAlexandru Croitor2017-05-081-3/+18
| | | | | | | | | | | | | | | | | | | | | For very big HTML pages, accessibility support can slow down the loading and rendering of pages due to creation of many AXNodes for every DOM node, and a lot of serializing and deserializing between processes. Because accessibility is almost always enabled on Linux, and there is no way to query if an accessibility feature was explicitly requested, Qt WebEngine accessibility support on Linux will be disabled by default. Users can set the QTWEBENGINE_ENABLE_LINUX_ACCESSIBILITY environment variable to re-enable accessibility support on Linux. [ChangeLog][Accessibility][Linux] Accessibility is disabled by default for Qt WebEngine on Linux. Task-number: QTBUG-59922 Task-number: QTBUG-54650 Change-Id: Ib0454f6f753043838e4ecf2227d2249afc15a6ef Reviewed-by: Kai Koehne <kai.koehne@qt.io>