| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/3rdparty
src/webengine/api/qquickwebenginesettings.cpp
Change-Id: Ie4abadb076c51d070cbb05f29b9ebcd9705933ad
|
| |\
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/3rdparty
Change-Id: I49d99b5ac2cfba243eda1ea705c2a7d71b5542f6
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/3rdparty
src/core/delegated_frame_node.h
src/webengine/api/qquickwebenginecontextmenudata.cpp
Change-Id: I163488d0d32cd981351608b2886f12e547e24672
|
| |\|
| | |
| | |
| | | |
Change-Id: Ic739ab9db0851cc13467168840ea2549996432f8
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
|\| |
| | |
| | |
| | | |
Change-Id: Id5f97771be23a4393e8d3be98903c321377ae809
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/3rdparty
src/webengine/api/qquickwebenginecertificateerror.cpp
src/webengine/doc/src/webengineview.qdoc
tools/qmake/config.tests/libcap/libcap.cpp
Change-Id: I2a2cfc904a8d6b561fb71ef7a0cc4bfb860124db
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| |\|
| | |
| | |
| | | |
Change-Id: Ic6686df8f82f710a3441501b7eeaffe69fbcbdf7
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Use the new public QSG classes meant to replace QSGSimpleRectNode and
QSGSimpleTextureNode.
Change-Id: Icdfc3b4ba13dd28258defa955d050927abbae95b
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| | |
Change-Id: I561c00b3a844ab493a5bf0148a5923662842cf5d
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If a QQuickWebEngineView does not have focus, and activeFocusOnPress is
set to false, a user can still partially interact with the view. For
instance hovering the mouse over a link would change the cursor, a link
can be clicked to go to a different page.
Clicking on a text input field would focus the text field, but entering
characters will not be possible, because the view does not have QtQuick
keyboard focus, and clicking does not give the focus (because
activeFocusOnPress is set to false) and this leads to confusing
behavior.
Thus the fix is to make sure no mouse / keyboard events are forwarded
to Chromium if the view has no focus, and activeFocusOnPress is set
to false, in order to maintain a more user-friendly behavior.
Manually forcing the focus via some user-provided method that calls
forceActiveFocus() would allow further proper interaction.
Change-Id: I72c3ff69438972b9a93ee2d415fa1d4b44b86cd9
Reviewed-by: Michael Brüning <michael.bruning@theqtcompany.com>
|
|\|
| |
| |
| | |
Change-Id: I53645ee5405b1c43807123fd3c196e314cfd1ce9
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently if a < 3.2 OpenGL Compatibility profile is requested on OSX,
a webengine application would crash saying that the global profile
does not match the default profile. That happens because in the Cocoa
QPA any requested OpenGL Compatibility profile or Core profile with
version smaller than 3.2 gets reset to QSurfaceFormat::NoProfile and
version 2.1.
Fix consists in making sure that the QSurfaceFormat check only
considers Core profile with versions >= 3.2. All other combinations
would result in NoProfile 2.1 and thus not cause any issues for
webengine.
Change-Id: I7c9866d761c052e52389022abe8e213d062db41f
Task-number: QTBUG-51058
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
tests/auto/widgets/qwebengineprofile/tst_qwebengineprofile.cpp
tests/auto/widgets/widgets.pro
Change-Id: Id9444359ed2e35d469331db96a355c9ea2d095d5
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Setting a new default QSurfaceFormat after
QtWebEngineCore::initialize() is called, might lead to a crash.
This happens when the new surface format has a different OpenGL profile,
compared to the profile created by web engine in the
RenderWidgetHostViewQtDelegateWidget constructor. The default
constructed QSurfaceFormat has an OpenGL Compatibility profile.
Inside the Cocoa platform plugin when a new shared OpenGL context is
created, it fails to initialize the new context because of the
difference in profiles, and thus ultimately creates an unshared
context, which leads to a crash.
Fix consists in using the shared context QSurfaceFormat in the
RenderWidgetHostViewQtDelegateWidget constructor, and also printing
a fatal warning to notify the developer only to set the new
QSurfaceFormat before the application instance is declared.
Bottom line, if the QSurfaceFormat OpenGL profile has to be
changed, it should be done before QtWebEngineCore::initialize() is
called. Doing so after initialize() is called, will lead to a crash.
Change-Id: I8a07211b592143d736b001556b944d4759802396
Task-number: QTBUG-50665
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Michal Klocek <michal.klocek@theqtcompany.com>
|
|/
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch deactivates the web view with a FocusOut event when it turns
to invisible and Chromium closes its WebUI popups.
In case when the window is closing, we can't always rely on the destroyed()
signal or the visibility state of the WebEngineView, since we have multiple
top level windows and the destroying order of the items is not so trivial
as in the single-window case.
Task-number: QTBUG-49099
Change-Id: I802a47c72eed3ed6352f1ba24998622fc95bb48a
Reviewed-by: Alexandru Croitor <alexandru.croitor@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
| |
This allows to use a WebEngineView to make a UI element that should not
get focus, which can be useful inthe case of hybrid UIs.
[ChangeLog][QtWebEngineQML][QQuickWebEngineView] Add activeFocusOnPress
Change-Id: I0666f81badd135db0049e0dd7b0fc30d0765b1c9
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
|
|
|
|
|
|
|
| |
This can come in handy to make an HTML based input method keyboard
Change-Id: Ieaf49a676262f40b0f250dc67e2f1cd0eeb08d82
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
| |
While the mouse is locked, the cursor is hidden from the user and
mouse events are still generated. The movement which is reported
by the event indicates what would be the position change if the
mouse would not have been locked.
Change-Id: I79b3df5d7d644cd675a27e6c5a0da54e00b69da3
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
src/3rdparty
src/core/content_browser_client_qt.h
src/core/core_module.pro
Change-Id: Ia05a6564a4d17ca14ff9b76ae018c3f4ef33d535
|
| |
| |
| |
| |
| |
| |
| | |
This fixes the focusing issues on touch devices.
Change-Id: I26c0080ea70aeabbd608e15fbd3705b907bdb68e
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes a regression after the 37 upgrade where the select popups
would have the wrong position. Adjust to the new behavior and also
avoid doing a mapToGlobal of the position received in InitAsPopup.
RWHV::SetBounds has been giving us screen coordinates since the
Chromium 33 update, but popup locations somehow managed to work
properly through some side-effect sorcery.
This also fixes the value of window.screen[XY] in JavaScript which
wasn't updated when the window was moved.
Change-Id: I544499bafedccfb7d389b4abc48f1386c398473f
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
|
|
|
|
|
|
|
|
|
| |
QSGEngine was added in Qt 5.4 to allow using the scene graph
without QQuickWindow. Use it for our FBO as well as for the
QOpenGLWidget rendering.
Change-Id: If4665d4f33c9dad69d2d4269309163bb5ffbd8e3
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Do the d_ptr magic ourselves to avoid having to include private
headers from qtcore, qtgui and qtdeclarative.
It is hackish to hide QObject's d_ptr member to have the macros
working in a public class, but if anything goes wrong we just
need to replace the private macro convenience while maintaining
the binary compatibility of the stored extra opaque pointer.
Change-Id: Idb92f4f902826bef9068a5c2ef6ea31fc3fa15b2
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes:
- Make sure that we call SetInitialFocus when giving focus through Tab
This does the same as would WebContents::FocusThroughTabTraversal
- Implement QWebEnginePagePrivate::passOnFocus
- Set each new RWHVQtDelegate as the focus proxy of the QWebEngineView
- Make sure that the widgets delegate accepts the tab focus policy
Cleaups:
- RenderWidgetHostViewQtDelegateQuick doesn't need to be a focus scope,
it doesn't have any children
- We don't need to reimplement QQuickWebEngineView::forceActiveFocus
since the view is now a focus scope
- Do not explicitly setFocus(true) on the QQuickWebEngineView,
the application should decide this through the API
Change-Id: I817dc2c895d4fff4aa3536c71ecc5d306bb3bee0
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
| |
Change-Id: I50e3a2ba95b3c0b49af2139f763f11154defe503
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Michael Bruning <michael.bruning@digia.com>
|
|
|
|
|
|
|
|
|
| |
QRectF takes either two points (top left / bottom right),
or separate coordinates (x/y) together with dimensions for width
and height.
Change-Id: Iac20e2abaa4a273ddf7605ffa306220717ae283a
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since Qt 5.3 QWidget has the same behavior as Qt 4 where it will
replace a second MouseButtonPress event with a MouseButtonDblClick
instead of sending both.
Fix the issue by moving the MouseButtonDblClick ignore code up to the
QtQuick code, assume that upper layers will not send
MouseButtonDblClick events, and re-replace the MouseButtonDblClick
event with a MouseButtonPress in the QtWidgets code.
Change-Id: I529dad2de538f486b00eb900ea6d2ed849a3b1f0
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
| |
We now only have a QQuickItem subclass and this isn't needed anymore.
Change-Id: I3a10943e54f52d1554dc76ccc1841aaacd5171e2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This means that widgets application now need to setup the GL context
sharing as well. QWebEngineWidgets::initialize() must be called,
which has the same effect as QWebEngine::initialize().
The QtWebEngineWidgets now depends on the QtWebEngine module to make
this happen.
Since QOpenGLWidget is only available in Qt 5.3, this patch also
disables the webenginewidgets module completely when building using
Qt 5.2.
Change-Id: I0e99a779d1eb080f2ccf5a338ff0763ad64e6eba
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
Cleanup version ifdefs and v8-private dependencies.
Change-Id: Iac393c06dfba02499e60d713d9f4d04ef0c9e617
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Andras Becsi <andras.becsi@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To support reparenting, we make the compositing surface independent of
the window by using gfx::TEXTURE_TRANSPORT. We also need to be able to
keep frame data across window changes so we can reconstruct the QSGNode
tree in a new context, so extract that data into DelegatedFrameNodeData
class. Any context-specific data is still stored in DelegatedFrameNode.
Also hook up window changes to WebContents::WasShown/Hidden for Quick.
Remove checking of Qt isVisible state, this mechanism is used to sync
Chromium with Qt, not the other way around. WasShown/Hidden is
orthogonal to Show/Hide, and can use different triggers. However for
Widgets it probably makes sense to hook both up to widget visibility.
Change-Id: I1ef4b50cd61b8e54b791e03f0b41929c42fec8bf
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
|