| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Change-Id: I69f4d36c0779e730fadcccc8f6b474a5721c1056
|
|
|
|
|
|
|
| |
Task-number: QTBUG-62701
Change-Id: Ia56244d29c1c60f74f736ac091fdfae68b25eae7
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit bde5619e2090efdc16823de21ff5cb76805204bd)
|
|
|
|
| |
Change-Id: I8d94853cb5bffcf7f41946afb6ecebaf91c2278a
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes an issue where dragging with the mouse would cause the next touch event
to not generate a synthesized mouse press event.
The touchDrag test can now be run directly after the mouseDrag test without
failing.
Task-number: QTBUG-56187
Change-Id: I53cc5f90fc8d8672936b23f54a017687d41c31fc
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
| |
wl_touch.up is not sent by compositors when dragging, so release all touch
points when the drag ends.
Task-number: QTBUG-56187
Change-Id: I1c3d03c72e75a551355c50bb5d82433f5e2e35f0
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
| |
Change-Id: I1644a75269fec40644f02eeb275d9e6b98995c0e
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Make QtWaylandClient compile when Qt is configured with:
-no-opengl -no-accessibility -D QT_NO_CLIPBOARD -D QT_NO_DRAGANDDROP -D QT_NO_SESSIONMANAGER
Task-number: QTBUG-56192
Change-Id: Idc6aae6b36a35515109a27bed31a22e3e909ef27
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
| |
the CI obtains them from the qt5 super repo nowadays.
Change-Id: I93b3231e94c15b93544b53bcfe72a18e4309903c
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Calling setPosition on a child window would not send the appropriate commit
request after the wl_subsurface.set_position request.
Task-number: QTBUG-52118
Change-Id: I792016ce7e0a5a2efd3a32a98727b43ee0275b0e
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes the undefined behavior in tst_WaylandClient::touchDrag and mouseDrag
Note: The test still fails if run twice in a row, but it appears to be
deterministic.
Task-number: QTBUG-56187
Change-Id: Ib45d82224f004d1324f2ce4d6b7df05ee36c04f5
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit 0049240a2b7d8691f09224e1542919ddbbb0d864)
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The documentation for QClipboard::mimeData() doesn't say that the returned
value can be null, and some clients just dereference that without checking.
So instead return an empty QMimeData.
Change-Id: Ieec3140af4e7f33cde98ed96fd96b2674d0d0f9f
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@hawaiios.org>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\
| |
| |
| | |
Change-Id: I011101285c6aa594aea81271c86887c669a41e9e
|
| |
| |
| |
| |
| |
| | |
Change-Id: Ibb98081ddd226187212936949ca70bf1339c05aa
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
The accessibility() function is ifdef'd in the base class,
which makes build fail when Q_DECL_OVERRIDE is used here.
Change-Id: Ic3d800ccf32b39f5bc8d3f94d222bc0d34457057
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|/
|
|
|
|
| |
Task-number: QTBUG-55343
Change-Id: I38e94a70585ba93d40de22698fda80530cf2156d
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\
| |
| |
| | |
Change-Id: Ie6ec1ae90396619214cf1f29ae9595c5f1915e10
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The previous solution did not check for nullptr before dereferencing, which
caused a crash. Furthermore, it checked the new ShellSurface's
shellManagesActiveState before deciding whether to unfocus the old one.
Task-number: QTBUG-55526
Change-Id: I410b6200a5b7b86806f70970730045a4a25f21db
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
| |
When setting a transient window also evaluate the state of the window
attribute WA_ShowWithoutActivating. If that flag is set the transient
should get the inactive flag as well.
Task-number: QTBUG-55403
Change-Id: I757e5527e78f730a440e26abb52e84c9b2bb2f3a
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
| |
The client and server parts are separate modules, so they need separate
top-level directories under tests/auto. This also makes it easier to add
new tests later.
Change-Id: I393341b6f4e8fc3afa480653f3482192e002e425
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
| |
This is a backported fix from the 5.7 branch.
Original patches: 93ca929fb9caf347150 and d6fe7b6165859e17f03
Change-Id: Iaec5acb314d3bbc199e962a5dc27a70f0d2df655
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Popups used xdg_surface instead of xdg_popup. It's not possible to set a
position for an xdg_surface, because it's supposed to be a top level window (in
xdg shell v5). Consequently, popups were treated as top level windows and
positioned randomly on Weston.
Using xdg_popup instead solves the problem.
Task-number: QTBUG-55063
Change-Id: I223348677ef8a1ef1eee6a4c389276a6c802bcb5
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
| |
This simplifies the code in QWaylandDisplay and hopefully makes it easier to
implement a prioritized shell selection mechanism later.
Change-Id: I2bb3a13f8acedb60a6606cb3a8b5b228095eadf9
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
| |
Let shell surface implementations decide if they manage activated state. Moves
the logic out of QWaylandDisplay.
Change-Id: I75c86df68a1a93f9b1d2bf378b6603215d0b0128
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
| |
Also add drag-and-drop tests for both touch and mouse.
Task-number: QTBUG-54756
Change-Id: Ibfff48b1f2377022a8624e28e9f638076187ddca
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
| |
Only lock the client autotest compositor mutex when necessary. This allows
compositor commands to be queued while a command is being processed.
Change-Id: Ib2ca6b4942f57f56f56a055cbe6ce6d876695529
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
| |
Change-Id: Ic66faf02f7d4eb82aa898a2858a0271a007460a0
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@hawaiios.org>
|
|
|
|
|
|
|
| |
Following the same pattern as for mouse and keyboard, also test touch events.
Change-Id: Ie84aa0ffe0b0f4f66e9f40207c63d94e32f6dbaf
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
| |
Change-Id: I6833ab86ffdb4e37dad5108baddb7a54cfb5e9fa
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to the xdg_shell protocol, the compositor is allowed to set multiple
active windows. Qt's model, however, allows only a single active window.
In order to map between the models, a list of the compositor's active windows
is kept in QWaylandDisplay in the order they were activated. Hence, the front
of this list will always be the most recently activated window, and it will be
mapped as Qt's active window.
Previously keyboard focus was used to determine the active window, this method
has been disabled for xdg_shell.
Functionality for delaying the call to
QWindowSystemInterface::handleWindowActivated has been moved from
QWaylandInputDevice::Keyboard to QWaylandDisplay so the implementations can
share the workaround.
Task-number: QTBUG-53702
Change-Id: I878151f9c52ed09a8d6571c6208920436c3ca8fc
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
| |
Change-Id: Iee19b36ae2032112e0097dc6eb2e4592697c2a1c
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@hawaiios.org>
|
|
|
|
|
|
| |
Change-Id: I10e550a25ce498bbeedc242ac73059cc6fdcef30
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@hawaiios.org>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
| |
The previous code seems to have been written under the impression that
QWindow::width() included frame margins, causing the resizing areas of the
window decoration to be too large.
Change-Id: Ia13f12afd88a4017d01853798226455b84290d01
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
| |
See http://comments.gmane.org/gmane.comp.lib.qt.devel/25771
Change-Id: Ie9bd394e87f58eb1049e004fd13a80a62e7ab6ff
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When maximizing xdg_shell clients, the clients would call
QPlatformWindow::setGeometry() with frame margins included, resulting in a
window that was bigger than what was requested by the compositor.
The reason for this, was that QWaylandXdgSurface would subtract the frame
margins from the width and height only when the resizing state was set, not
when the maximized state was set.
Later, margins were added again before QWaylandWindow::configure was called.
This resulted in margins being subtracted and then added back for the resizing
state, while for the maximized state margins were only added and never
subtracted.
This behavior has now been simplified so only size including window frame is
tracked. This is what we receive in the XdgSurface::configure event anyway, and
also what QWaylandWindow::configure expects.
Change-Id: I0629e7e79a5367fa872743c6d025bfab8a4f2866
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
| |
Change-Id: I40d96362131124effd9405cdad4e3dea79e6ebe3
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|
|
|
|
|
|
|
|
| |
Only the width and height were scaled previously, causing an incorrect
offset from the lower left corner, resulting in a small transparent gap
to form between the decoration and the content on the right and top.
Change-Id: I0b253c05c9b260d9ff3a6ab5f8aea42370561959
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Weston stopped sending the wl_data_device.drop event if the data offer
was not accepted, which was the case when it was coming from the same
client that was receiving the offer. So now always accept the offer
even if we will bypass the offer when retrieving the data.
Change-Id: If825f4dbc962a7812e379f36a42ceabe3eb3096f
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
|
|
|
| |
Change-Id: Idd975dc68f9f924cf89bfb9cbc1e476032ce6c23
|
|
|
|
|
|
|
|
|
| |
this actually includes removing the install targets for the sources -
this is automated now.
Change-Id: I736958d70baabfa4db816abbfc50acacbf2ee23c
Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
| |
Change-Id: I24ca4854aa6756f4cea4f4f5a471ffd9bf33c620
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Erik Larsson <erik@ortogonal.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
This fixes a protocol error the compositor would send when a window
changes its parent, because we were creating a new subsurface without
destroying the old one.
Change-Id: I0855d0582153e0aff37be508d9fb43d22c9ad0b5
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|
|
|
|
| |
Change-Id: I69c8fa49baebc29d8a22426394ce0a72627b9ad6
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
QShapedPixmapWindow is used as a drag-and-drop icon. This caused two roles
(wl_data_device-icon and wl_shell_surface) to be assigned to the same surface,
resulting in a protocol error.
This bug hasn't been encountered before because QShapedPixmapWindow sets
X11BypassWindowManagerHint, which was previously used to determine whether to
create a shell surface or not.
Task-number: QTBUG-52052
Change-Id: I1d79f3ec8ad08e0be1551c39df6232876dc2ac2e
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Reviewed-by: Erik Larsson <erik@ortogonal.com>
|
|
|
|
|
|
|
|
|
| |
The implementation of attached() method was removed in commit 'Fix SHM
drawing logic' (19260d9846861212881e374229798b3863d1a78d) but the
definition in the header file was not.
Change-Id: Ib850bc7101a661882078be95011d75660f621622
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
... or equivalent.
QtBase 5.6 headers already compile that way, so let the other
modules follow suit.
Change-Id: Iddf561087189ece6dd34b42605842dfafdbd8b4e
Task-number: QTBUG-45291
Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
|\
| |
| |
| | |
Change-Id: If2caca2463ef6815d2cc9a8f05ccd78c867c95d2
|
| |
| |
| |
| |
| |
| |
| | |
qwaylandinputdeviceintegration_p.h:64:85: error: ‘uint32_t’ has not been declared
Change-Id: Ic747cc2ab45e4dc6bb70ffff143843d1ed4a341b
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
So far QtWayland did not support custom bitmap/pixmap QCursors.
This change adds support for them by creating a QWaylandShmBuffer and
copying the pixmap data into that buffer. The internal API to set
cursors images is changed to not only rely on wl_cursor_image, but also
allow to just set the buffer with a specific size and a hot spot.
The created WaylandShmBuffer is passed around as a shared pointer, so
that it can be automatically cleaned up once the cursor image is no
longer used on any seat.
Task-number: QTBUG-51604
Change-Id: I1f1ee87f03186c3d564468d3e8ea2a3141d7e2fb
Reviewed-by: Giulio Camuffo <giulio.camuffo@kdab.com>
Reviewed-by: Johan Helsing <johan.helsing@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| | |
The code used sizeof(state) when it should have been sizeof(*state).
Change-Id: Id1714a5e90e6c58850023424726de26719a69046
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The old logic didn't care to listen for wl_buffer.release events
so it always drew in the same buffer, potentially resulting in
tearing if the compositor was scanning out the buffer at the same time.
Instead properly cycle between a few buffers and don't reuse the same
one until the release event was received.
The old code also used to throttle the redraws, unless the buffer was
changing, that is unless the window was getting resized. This is now
lost, and no throttling is ever done. Doing it properly, by waiting
for the frame callback before committing the new buffer shows very
noticeable lags with many applications when resizing, because they
paint many times per resize event, so they fall behind the cursor.
A proper fix will be to implement the support for requestUpdate(),
and using it in the applications.
Change-Id: I02732c34769a5c75a6ad68c095bae916e4b274d3
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|