| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Change-Id: Icfb0c2bcbf6ae9705da93480c8113fe5baccf33a
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
| |
Change-Id: I5c9a25629d55b97d839904f73b3bf5cf91ce337e
|
|
|
|
|
|
|
|
| |
Was shadowed in 11f2e7df5 when fixing QTBUG-78969.
Task-number: QTBUG-78969
Change-Id: I933373b5233ae8b45cdab7c3ffd14a1502486ae8
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|
|
|
|
|
| |
Fixes: QTBUG-78969
Change-Id: I4ecde3725b5307251070e331c97d96df328a3772
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, we set the max length in QString character length, which means
UTF-16 characters (of potentially three bytes) counts as one character. The max
limit of libwayland, however, is in bytes (and the string itself is converted
to UTF-8).
Fix it by dividing the character limit by three because in the worst case each
UTF-16 character will use three bytes when UTF-8 encoded.
Fixes: QTBUG-78478
Change-Id: Idf4721894e0fe6f3cd92bdc6ada7b0ea4199ea63
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-78177
Change-Id: I123e129f09ce8599e68be710147b07235ae9462a
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-78177
Change-Id: Id44794523511241b408e79383e438e52f769d62a
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|
|
|
|
|
|
|
|
|
| |
We use a hand edited version for xdg-shell-v5, which is added through
src/plugins/shellintegration/xdg-shell-v5/pregenerated/xdg-shell-v5.pri so we
shouldn't need to add it through sync.profile.
Fixes: QTBUG-78210
Change-Id: Ida60f98c950b74132bd526cf44a4bf667cdce730
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
| |
Because they were checked in at 618d5093d5de082f9aaf32cca778c5eae6a8548d.
Fixes: QTBUG-76439
Change-Id: I1809b1424262dfe39e6cc177eec487d9ca364337
(cherry picked from commit b90a57a66f0862d8953d0b858d4e11007172cc79)
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We get around the "private" symbol found in wayland-kms.h by
substituting it with "priv", but doing that breaks the "private:"
keyword in type_traits.h.
So this patch forcibly includes math.h prior to s/private/priv/.
main.cpp:3:17: error: ‘priv’ does not name a type
#define private priv
^
In file included from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/cmath:43:0,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/math.h:36,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-util.h:34,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-server-core.h:32,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-kms.h:38,
from main.cpp:4:
/opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/ext/type_traits.h:71:24: error: ‘__if_type’ has not been declared
typedef typename __if_type::__type __type;
^~~~~~~~~
main.cpp:3:17: error: ‘priv’ does not name a type
#define private priv
^
In file included from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/cmath:43:0,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/math.h:36,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-util.h:34,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-server-core.h:32,
from /opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/wayland-kms.h:38,
from main.cpp:4:
/opt/poky-agl/5.0.3/sysroots/aarch64-agl-linux/usr/include/c++/6.3.0/ext/type_traits.h:114:24: error: ‘__if_type’ has not been declared
typedef typename __if_type::__type __type;
^~~~~~~~~
Change-Id: I2b42f37d5565833adcc065725119ab4912da82b0
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
| |
Since xcomposite-egl depends on the egl_x11 feature in qtbase, then this
should be explicit.
Change-Id: Ic1dce9526fb50f6f56e18abd58b69bcaed6d204e
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
| |
Change-Id: Ia7cfb1bc86945e08a2ff2c794afb405110e819f9
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
| |
Touch now accounts for fractional input in the same way as for pointer
input.
Task-number: QTBUG-77457
Change-Id: I18e633bf7c7033187a641f757b8b24f52479971a
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
| |
This used to crash the client.
Task-number: QTBUG-76368
Change-Id: I855f3bda15b4b2bccbdb2aa8239e26c0eecf7cb3
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\ |
|
| |\
| | |
| | |
| | | |
Change-Id: I5d587b79b96d2b44f1975419a658c259c63fa30d
|
| | |\ |
|
| | | |\
| | |/ /
| | | |
| | | | |
Change-Id: Ic73262146f51a9e7f4ffab46511654ad70c4f514
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
+ e008c69e231169425e2ae602deabc0eb749376ab Fix compile error with -no-opengl
+ cde2fe3fba31b9b8d258f0663bc34009fd769efd Compositor: Map touch ids to contiguous ids
+ af9ec8a76d7e62444fadb518256fc58723fe5186 Client: Don't add all windows to activePopups
+ af00b80178138e55be7ea892a118e6357798e0f2 Don't crash if we start a drag without dragFocus
+ ec9057081f1094fbfeb11449bc533997731e4079 Client: Fix stuttering when the GUI thread is busy
+ a4e6f88f50d1a1dd56df77ce8b07b98aceb20ddc Client: Reset frame callback timer when hiding a window
+ acba020f1b6725e2d431636b1a2cfb075672ddcb Bump version
+ 5ca9f28f4b272d3265b97c16029071a0070195a6 Fix compilation with C++20
+ 25a46893782979c74f57ab725b1ce55fbfc4fa2f Fix the build when libs didn't get built
+ 3d5cec736ce17c6b40c52bb8966f8fc40b742664 Fix expose event compression
+ 43d8a3091894ceb4ab934167b2f3eda27564eb6d Backport texture sharing for NVIDIA
+ 86b0d64b6c44fd8c3c3dd133bf52239f5520e524 Client: Add safer fromObject function to scanner
+ 2838c7f33a0b2f40b026d00b3e00139f94c358e7 Fix incorrect conversion to straight alpha pixel formats
+ 3e96fa1df8d2bc0ec8ab66abae1f20439b786b40 Client: Fix large clipboard pasting
Change-Id: Ie61a19a3adb04e1280b2f70839778cf2c708a85b
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | | |\ |
|
| | | | |\
| | | |/ /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
src/client/qwaylandwindow.cpp
Change-Id: I89fefe5bfc247eeaad3981850efa0faaab3cb145
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The wl_surface can be destroyed whilst a render is happening. Calling
wl_surface::frame after the window is reset can crash as wl_surface is
null.
Fixes: QTBUG-77747
Change-Id: I139a9b234cb6acba81d6c1d5fa58629904a25053
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
QPointF::toPoint (which is what the QPoint versions of the events use
internally) uses qRound, which is not the right kind of rounding to
use with the QRegion we use for the input region.
This switches to use QPointF variants instead of QPoint wherever
possible, and then the correct conversion (with qFloor) is done once in
the new QPointF version of QWaylandSurface::inputRegionContains().
The compositor inputRegion test has now been updated to test the new
API.
[ChangeLog][Compositor] Fixed various rounding errors related to touch
and mouse input.
Fixes: QTBUG-77457
Change-Id: Ife2365abd56a239c34eee91310ab0e698a50d4ff
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit 7f189ec10a9b3e9825dda30d3a8f86ee2e07b97f)
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Calling the QOpenGLContext::swapBuffers from
QGuiApplicationPrivate::processExposeEvent in some cases leads to
recursive calls of QWaylandWindow::waitForFrameSync. Since the
mWaitingForFrameCallback check in WaylandWindow::waitForFrameSync
is performed after the mutex is locked, the QMutexLocker tries to lock the
mFrameSyncMutex mutex in every recursive call, that leads to a deadlock.
This patch moves the performing of the mWaitingForFrameCallback check
before locking the mutex.
Change-Id: Ia2d834b7dd03fcd91bbe29a3a897b4db2d155527
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Rename mTouchPoints to mPendingTouchPoints, to clarify that they're the
accumulated state so far, which will be applied with the wl_touch.frame
event. QWaylandInputDevice::Touch::mPrevTouchPoints is no longer needed
and has been removed.
Fixes the following issues with the old approach:
- touchPointsReleased() only checked mTouchPoints, which was cleared on
touch_frame and populated again on touch_motion and touch_down, which
meant that it could return true even though there were still touch
points left. Leading to the workaround for missing wl_touch.frame events
on Weston being triggered to often.
- Touch focus was cleared on any wl_touch.up event, not just the last
one.
- The order of the touch events was not stable and relied on the order
of the events (QTBUG-77014).
Fixes: QTBUG-77014
Change-Id: Ic3ecdc87e77b0e0276afefd127ad2b965142cbd4
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
af00b801 fixed a crash when starting a drag without a valid focus, but
there is still a problem, because QDrag::exec will never return because
it's waiting indefinitely in an event loop.
- QWaylandDataDevice::startDrag can now fail by returning false.
- When starting a drag fails, we cancel the drag through
QWaylandDrag::cancelDrag wrapped in invokeMethod.
- Also, don't unnecessarily create a data_source if we cannot start a
drag.
[ChangeLog][QPA plugin] Fixed a freeze that happened when starting a
drag-and-drop operation without a valid source surface.
Change-Id: Iea19b0c92c196a44d1274a966bee4ff519632d34
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | | |/
| | |/|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The define was only set when building Qt, not when including public
headers in application code. Therefore, the sizes of objects did not
match between the client code that calls new and the constructor inside
Qt.
Unfortunately, adding the additional members breaks binary
compatibility. This has already happened between 5.11 and 5.12. It just
wasn't apparent from the headers. If we removed the members again now,
we would break binary compatibility again. Therefore, the best course of
action seems to be acknowledging the break and adding the members also
in the headers.
[ChangeLog][Compositor][Important Behavior Changes] Between
version 5.11 and 5.12 binary compatibility for the wayland compositor
module was broken by adding an additional member to various classes.
This was not apparent from user code as the member was behind an #ifdef
which would only be set while compiling Qt. As several versions of Qt
incompatible to 5.11 have already been released now, rolling back the
incompatible change would introduce further incompatibility. Therefore,
the change is made consistent by unconditionally adding the member to
the headers.
Fixes: QTBUG-75677
Change-Id: I3c1ee309ad8e0cd0b6389a76fd1d91e6e2be495c
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
From the docs of repeat_info:
"A rate of zero will disable any repeating (regardless of the value of
delay)."
Avoiding starting the initial timer effectively disables everything
Change-Id: I7489f61b2bc0e000efddb4255f1968072eeff2b8
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\ \ \ |
|
| |\ \ \
|/ / / /
| | | |
| | | | |
Change-Id: I171c1cfd19ef5311917ab1fd1aac5172d25a7e00
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
+ e008c69e231169425e2ae602deabc0eb749376ab Fix compile error with -no-opengl
+ cde2fe3fba31b9b8d258f0663bc34009fd769efd Compositor: Map touch ids to contiguous ids
+ 07ec3a37bd6bf28a96b8ff228eea86a09550db51 Bump version
+ 21a5038f8a2a6acc6dd1cc2f6bb0318d2c17f741 Avoid creating decoration whilst Xdg Decoration is pending configure
+ 06cccc30c09830fe75f5757d9eae74f326af03e9 Add changes file for Qt 5.12.4
+ af9ec8a76d7e62444fadb518256fc58723fe5186 Client: Don't add all windows to activePopups
+ 2e4246ee71dd6689d3731e380f393185a1e3bd8e Client: Don't add all windows to activePopups
+ af00b80178138e55be7ea892a118e6357798e0f2 Don't crash if we start a drag without dragFocus
+ 640d60c4de4137aa9093093fc047dccd37d7eb13 Doc: Fix link errors
+ ec9057081f1094fbfeb11449bc533997731e4079 Client: Fix stuttering when the GUI thread is busy
+ a4e6f88f50d1a1dd56df77ce8b07b98aceb20ddc Client: Reset frame callback timer when hiding a window
+ a640a8d46afa6c096013c8656c3ebebe1701e551 Bump version
+ acba020f1b6725e2d431636b1a2cfb075672ddcb Bump version
+ 5ca9f28f4b272d3265b97c16029071a0070195a6 Fix compilation with C++20
+ 05359c5bb6cd0e5adc23b2de3890df4af93bdf7c Fix compilation with C++20
+ c12c6712305883eff72d8da3f5cab837c5997f70 Doc: Replace example file lists with links to code.qt.io
+ f4636b934f90b2a07b09f1925a86440cf1944d08 Fix use of private dependency
Change-Id: Ifb2d513dea873c297b2246b6e7f7fc67453b3da8
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QPointF::toPoint (which is what the QPoint versions of the events use
internally) uses qRound, which is not the right kind of rounding to
use with the QRegion we use for the input region.
This switches to use QPointF variants instead of QPoint wherever
possible, and then the correct conversion (with qFloor) is done once in
the new QPointF version of QWaylandSurface::inputRegionContains().
The compositor inputRegion test has now been updated to test the new
API.
[ChangeLog][Compositor] Fixed various rounding errors related to touch
and mouse input.
Fixes: QTBUG-77457
Change-Id: Ife2365abd56a239c34eee91310ab0e698a50d4ff
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Since it is not supported by the protocol, neither we, nor the
application developer can do anything about it.
Change it from warning to debug so it only shows up when enabled.
Task-number: QTBUG-76061
Change-Id: I81420e0c72a9e9652f6592d65c70c7df1e5725b9
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
set_cursor_rectangle takes wl_surface coordinates, but we sent window
coordinates.
Fixes: QTBUG-77987
Change-Id: Ia0bf98f9749723128bec27c3c607d1ccde2d5fd3
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
And verify that we don't create decorations prematurely.
Change-Id: I621631f0c355529e5afb6a615f909f18c2a4b509
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\ \ \ \ |
|
| |\ \ \ \
| | | |/ /
| | |/| |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
src/client/qwaylandinputdevice.cpp
src/client/qwaylandintegration.cpp
src/client/qwaylandwindow_p.h
src/shared/qwaylandxkb.cpp
Change-Id: Ibac7998502351e93c71c9b786536298657afe3d0
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Qt applications should not call exit.
Task-number: QTBUG-75779
Change-Id: I91190b10f8c8e111996cd73283061e6ceaa6b1f6
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
When Key_Return is sent from Qt VirtualKeyboard it will send it as \n
and not \r which means it will be interpreted as an unknown key. So since
we know it will be able to map it in this case, we explicitly account
for it so it can be mapped to the right key.
Change-Id: Id5d8d9653e78975203f80790b7a3d332f0e011fa
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This race happened because QWaylandIntegration::clientBufferIntegration (which
lazily initializes the integration) was called from numerous places including
code that may run on different threads without any kind of syncrhonization.
An example of this is Qt3D, which indirectly and simultaneously calls
createPlatformWindow (from the GUI thread) and createPlatformOpenGLContext
(from its render thread), both of which needs to use the client buffer
integration.
In this patch, we fix it by first checking if the integration is initialized.
In that case, it's safe to use it. Otherwise we lock a mutex, re-check if
initialization has happened on another thread in the meantime, and then finally
we initialize it.
This way we should avoid the expense of mutex locking after initialization is
complete, while still staying race free during initialization.
Fixes: QTBUG-76504
Change-Id: I327840ebf41e014882cb659bc3e4fafb7bdb7a98
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| | | |/
| | |/|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Recent changes in QtBase means QtWayland will have to follow the convention of
the rest of the QPA plugins and have QPlatformSurfaceEvent::SurfaceCreated and
SurfaceAboutToBeDestroyed follow the QPlatformWindow (QWaylandWindow) lifetime
and not the lifetime of wl_surface.
Some users were depending on those events to get notified about wl_surface
changes and used QPlatformNativeInterface in order to get the window's
underlying wl_surfaces in responses to the events.
The good news is that QPlatformNativeInterface is private (QPA) API, so we can
provide an alternative by exposing new private API, which is what this patch
does.
The QWaylandWindow::wlSurfaceDestroyed signal already exists in the dev branch
(introduced in eb66211ea9), so this is a backport of that signal as well as an
addition of a new QWaylandWindow::wlSurfaceCreated signal.
Task-number: QTBUG-76324
Change-Id: Ibc5748474cd52f5b9461fd1ad6cef973491174b1
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
With the non-blocking file opening, when no data was available in the
pipe, read could return 0 even though we were not at the end of the
file. This resulted in truncated data when pasting the clipboard.
This patch uses select to block until a file is available, removing the
polling sleep. This means the file can be safely opened in blocking mode
whilst keeping the timeout feature allowing read to work as intended.
Change-Id: I936aa85e9f25197e7abe6fb3fa729b618c00924d
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously, QWaylandSharedMemoryFormatHelper::fromWaylandShmFormat(WL_SHM_FORMAT_ARGB8888) would
return Format_ARGB32, i.e. the non-premultiplied version, while, according to the wayland-devel
mailing list (https://lists.freedesktop.org/archives/wayland-devel/2017-August/034791.html), all
Wayland RGB-based pixel formats with alpha should have premultiplied alpha.
This patch makes sure we return the premultiplied variants for ARGB8888, as well as for ABGR8888.
Using a switch instead of the array also allows us more freedom to choose the preferred format in
other cases where multiple QImage formats map to the same wl_shm format.
While being wrapped and exported as QtWaylandClient::QWaylandShm::fromFormat (private API), this
conversion function doesn't seem to be used anywhere, so this patch shouldn't cause any changes in
behavior for projects that only use public API.
Change-Id: Ie09f9a339b4540dd0383a72b3c951eb8c93e3ab4
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Makes the scanner produce generated static functions such as
QtWaylandClient::wl_surface *wl_surface::fromObject(struct ::wl_surface *object);
Which casts from the wayland-scanner generated types, such as struct ::wl_surface *,
to types types generated by qtwaylandscanner, but performs a check to see if
the listener is set to the wrapper class first (at least for interfaces with events).
This lets us easily fix crashes in a couple of places where we receive events
with wayland objects that we didn't create.
Also adds nullptr checks whenever we use the fromWlSurface() and fromWlOutput()
functions to handle failed conversions.
Task-number: QTBUG-73801
Fixes: QTBUG-74085
Change-Id: I9f33c31c7d1a939ccb3ebbbcb0eb67af10037237
Reviewed-by: Jaroslaw Kubik <jarek@froglogic.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit 3eea45e31ef796ab6f1363f8fd2882c151becc20)
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the client tests are run from within a desktop environment, the
XDG_CURRENT_DESKTOP variable may be set, causing the client to try to
load a platform theme for the user's desktop.
The tests, however, are running against a mock Wayland compositor, so
launching a platform theme that expects to connect to a certain
compositor implementation is probably not a good idea.
And furthermore, if the gtk3 platform theme is used, it will start
binding to interfaces and create wayland objects, confusing our existing
test code.
Setting XDG_CURRENT_DESKTOP to qtwaylandtests will prevent detection of
the (outer) desktop environment, making tests more predictable.
Change-Id: I57fa76e51cecdd0cbe8be6bd075ce67e9d2892bc
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\ \ \ |
|
| |\ \ \
|/ / / /
| | _ /
| | /
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/compositor/configure.json
sync.profile
tests/auto/auto.pro
Change-Id: Ia6d1512aa9ad49ac7f92ae88f23026dc0ee2ccc5
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This commit backports the Vulkan server buffer and texture sharing code
from Qt 5.14 to Qt 5.12 as an opt-in feature. To enable, configure with
"-feature-wayland-client-texture-sharing-experimental
-feature-wayland-compositor-texture-sharing-experimental"
Contains code from the following commits:
Add server buffer integration based on Vulkan
(commit df3a1761af2f20d59ae09a7adaa2f5b959047687)
Compressed texture support for vulkan server buffers
(commit f710489a341713c675cfd91d22ccd7bf8f29f4dd)
Implement server-side toOpenGlTexture for Vulkan
(commit 19361e7259f04b08925b1e8e99faf9460770ee7b)
New texture sharing protocol and infrastructure
(commit 80001cbf0451f4ba2a971fb20b80dc8e25ac604d)
Change-Id: I6c36ef7fddcd4db39e80d03a822d89f15eae3434
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
For shells that do not send configure events when exposed:
If setGeometry() was called before the window was initialized, Qt would
not mark the window as mapped, and the window would never become
visible.
Change-Id: Ic933cbbff20702424129c11264215181330cc7d1
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I641a1a80edd0861049d079422eef28b095fc26b3
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
|