| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
Send window geometry every time the window is resized.
[ChangeLog][QPA plugin] Send window geometry every time the
window is resized.
Change-Id: I8f3824c31455345be2b582e7d3a55077b47851b6
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Send minimum and maximum size hints to compositors.
[ChangeLog][QPA plugin] Implement minimum and maximum size in
the xdg-shell and xdg-shell-v6 shell integrations.
Change-Id: I631c3348c8333d7a246b21228a92c436f5adb5dc
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][QPA plugin] A window menu is now shown when the window decorations
are right-clicked (if supported by the compositor).
Change-Id: I13bf0c8cd91a6e5a3b44e47114dfdc2ff0e97f3a
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
README
src/hardwareintegration/client/xcomposite_share/xcomposite_share.pri
Change-Id: I7cbbf39916821f0f1749e3ccab3151f68f4aa1ac
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The xkbcommon configure logic was refactored in
qtbase/c3a963da1f9e7b1d37e63eedded61da4fbdaaf9a.
For more details see the relevant commit.
Change-Id: Ic1aa26846ab8266c589f6e92dc8b81aba36df58a
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][Compositor] Added support for linux-dmabuf-unstable-v1.
Implement client side DMABUF buffer sharing support by supporting the
linux-dmabuf-unstable-v1 (version 3) protocol. For enabling DMABUF,
set the following environment variables for the compositor:
QT_QPA_PLATFORM=eglfs
QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=linux-dmabuf-unstable-v1
The current implementation supports the following DRM buffer formats:
- RGB and RGBA
- YUYV
This implementation requires Mesa with the following patch applied.
Otherwise, textures are not updated. The patch is contained in Mesa 18.1.5.
See https://patchwork.freedesktop.org/patch/238080/
Fixes: QTBUG-66288
Fixes: QTBUG-67845
Change-Id: Id4d90337dbe0be956b0f964426ebed3f281c6c30
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/compositor/compositor_api/qwaylandquickitem.cpp
Change-Id: I5e01a0731e880e3eb8eab349043756a5993e3050
|
| |\
| | |
| | |
| | | |
Change-Id: Ica38060e6d624a7534660eabec604f6795970c95
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Avoids printing deprecation warnings for shells that are available by
default but not actually used. In particular, avoids warning about
wl-shell when using ivi-shell.
Change-Id: Id075e97572e6ec876ad24f369808c61a479e9b07
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Before 88a0246a46c30e08e9730d16cf8739773447d058 we would always call
QWaylandWindow::applyConfigure which in turn sends an expose event.
Without that clients do not commit their initial buffer.
This adds back the expose event on the first received configure.
Fixes: QTBUG-71509
Change-Id: Ica39bb23245957948e1e1f75caf4f16f7b086ef7
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\| |
| | |
| | |
| | | |
Change-Id: I6cc70da737d07a87e2b396e35f64adfeffc565bd
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is used when creating new grabbed popups to ensure they are only
created on the topmost grabbing popup as per the specification.
Non-grabbing popups don't have this restriction.
Change-Id: I8e2b8cd0f091688c847f81f2e5d33ce2f0df96a1
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It's valid to create a non-grabbing XDG-popup, such as a tooltip, before an input event.
The current guard should only apply for grabbing popups, otherwise tooltips created early
are turned into XDG-toplevels resulting in incorrect positioning.
Change-Id: I5bb59a68964ef2375c81e8b4e1a73361b9d2cbcc
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][QPA plugin] Added support for fullscreen-shell unstable v1.
The fullscreen_shell_unstable_v1 interface displays a single surface
per output and it is used for nested compositors, where each output
is rendered in a surface that is then displayed by the main
compositor.
For example weston could be the main compositor and a QML compositor
could be launched as a client using this shell integration to
display it inside weston.
Change-Id: I037679a283ff03cb4bdf4b3fed59945090ec9250
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I1d9281750b06f7584e55759994dc6fcbcc5b2455
|
| |\
| | |
| | |
| | | |
Change-Id: Ic7b7999f42b1867982b9410efb5224d68e9443f8
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QBackingStore::flush is sometimes called with an unxeposed window, in that
case, don't attach the buffer to the wl_surface immediately, as that causes
protocol errors with xdg_shell.
Flushed buffers are instead stored until we get the first configure event.
[ChangeLog][QPA plugin][xdg-shell] Fixed a bug where buffers were sometimes
attached and committed before the first configure event, causing protocol
errors.
Fixes: QTBUG-71345
Change-Id: If9409d97bd25f6b13940c56141920a664c349c8e
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The code for isNormal was wrong, so set_toplevel (which clears fullscreen
state) would be sent unless the window was both maximized and fullscreen. Fixed
it and made it a little bit more readable.
Change-Id: Icaa52d3a058df064a0bd1164119af3f511cb4220
Fixes: QTBUG-71350
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|\|
| |
| |
| | |
Change-Id: Ib4c65db63c2f3119fc7c157d4353c4e0ecebefb0
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
kwin and perhaps other compositors sometimes send questionable configure events
with state set to maximized and size == {0,0}.
Previously, we would then restore the m_normalSize, which would give us a
maximized window with the size of a windowed (normal) one.
A size of zero usually means that it's up to the client to decide, which makes
sense for non-maximized windows, but not so much for maximized ones. This is
what the protocol spec says about the maximized state:
The surface is maximized. The window geometry specified in the configure
event must be obeyed by the client.
It's fixed in the dev version of kwin, but until then, let's be on the safe
side and only resize the window if things make sense.
[ChangeLog][QPA plugin] Fixed a bug where maximized windows would resize to
their unmaximized size if the compositor sent an invalid configure event.
Change-Id: I2371b29c82426ac48cd1c18c14c3dd0fe4f2250e
Reviewed-by: David Edmundson <davidedmundson@kde.org>
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
wayland-client.h and wayland-server.h includes protocol generated for the
version of wayland.xml corresponding to the libwayland version. This becomes a
problem when we want to support a version of wayland.xml that's newer than the
system libwayland.
The solution is to include wayland-client-core.h and wayland-client-server.h
instead. These headers don't include any wayland-scanner generated code, so we
can safely compile and link code generated against the version of wayland.xml
that we ship.
[ChangeLog] Code generated by qtwaylandscanner now includes
wayland-client-core.h and wayland-server-core.h instead of wayland-client.h and
wayland-server.h. This might break source compatibility for code using custom
wayland extensions.
Fixes: QTBUG-70553
Change-Id: Ice0cdb60ecc4f936acc0e158b96f7978549f62c1
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I66c91dfde14a7c252a02777cfcf0396b1d05e854
|
| |
| |
| |
| |
| |
| | |
Fixes: QTBUG-70494
Change-Id: Iaa4990fe9d39a1f9fb81f5e5f19039aa2e52dcac
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][QPA plugin] Shell integrations are now features that can be enabled
or disabled at build time.
Change-Id: I1c48bb5d444074ac25331cb1ca8a9f49ebcd9805
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][QPA plugin] The private window decoration API method,
QWaylandAbstractDecoration::startResize, now takes Qt::Edges argument instead
of a wl_shell_surface_resize enum. This will break window decoration plugins
written for older versions of Qt Wayland.
Change-Id: I4fc9aab949e91efd48a4943f8e116f51dfc373b8
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|
|
|
|
|
|
|
| |
The pregenerated header for xdg-shell was generated using wayland-scanner 1.13
which uses wl_proxy_get_version which was introduced in 1.10.
Change-Id: I19507ff6e543d4b0aa53e0d022d680090c34ab50
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
| |
And make OpenGL a requirement, in order to make builds without OpenGL work
again.
Fixes: QTBUG-69779
Change-Id: Iff1153b0aaca8e115f47c59c2ceb028e638e3fe9
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][Compositor] Features for server buffer integrations have
been renamed. "drm-egl-server" is now "wayland-drm-egl-server-buffer"
and "libhybris-egl-server" is "wayland-libhybris-egl-server-buffer".
Change-Id: I06a9d1b1c9219c88045fe966be134ff072cd756e
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
| |
Change-Id: Idcb2220237b3dba0a296fbb9a86497a3d0022d5f
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Check in qtwaylandscanner and wayland-scanner generated files with renamed
symbols to avoid conflicts with xdg-shell stable.
When this was done on the compositor side, we thought we didn't have to do it
for the client side because the conflicting symbols are used in separate
plugins. Turns out this breaks static builds, though.
Task-number: QTBUG-69896
Change-Id: I461df8e136b741063eafe13e858734a3aafdf020
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][QPA plugin] Deprecated the shell integrations for
xdg-shell-unstable-v5 and wl-shell. The stable version of xdg-shell
should be used instead.
Task-number: QTBUG-68838
Change-Id: Iab89059ec13efc2f72c3317a26439d7683e03e79
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
We can't trust QWindow::isActive, because it relies on focusWindow, which may
be updated too late, and there might also be multiple active toplevel windows
at once on Wayland. Even though Qt doesn't support multiple seats, we should
still draw the decorations of active windows correctly.
This implements QPlatformWindow::isActive and uses it in the decorations.
Change-Id: I34d79b354e2d26694533e2319a26f24085212243
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
| |
Avoids protocol errors on Weston, gnome-shell and wlroots-based compositors.
This is the same fix as 75c996e7, but for the stable version of xdg shell.
Change-Id: Ic998fb920a8b1b131e42833a61e663704c8663e4
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[ChangeLog][QPA plugin] Added client-side support for the
xdg-decoration-unstable-v1 Wayland extension. Qt clients will now let the
compositor draw the window decorations if configured through this extension.
Note: The env var QT_WAYLAND_DISABLE_WINDOWDECORATION is still supported, but
works on a higher level, and for all shell integrations, while xdg-decoration
only works with xdg-shell stable.
Task-number: QTBUG-69746
Change-Id: I9dd0331bbd8d624c6be54ed23ee3b96446d5820d
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|\
| |
| |
| | |
Change-Id: Ia9584a185a3d7a68a4333890ade535585ba33fee
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
States are not visible in WAYLAND_DEBUG output since array values are not
printed there. Logging the states to the Wayland QPA logging category gives us
a convenient way of seeing what states are configured.
Change-Id: If71c6df3180eba3f8efb08135a67b417940c3ffe
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I561e2af0cdc812ea4f499525b4af0a4ab7ad8182
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I4c25009c207ab36219976e75343a9b6398d3a42d
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There was a naming conflict between the client buffer integration, wayland-egl,
and the system library libwayland-egl.so
Rename the plugin binary to qt-plugin-wayland-egl to avoid the issue.
This commit appends commit 83db09bd0acaafb256880e3a217ed9df0641a00a
which did the same for the client plugin
Task-number: QTBUG-65652
Change-Id: I245192a9f844945200209cc2e3a9f419c541d33b
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-68834
Change-Id: Iced478d12b56fc360c0d824cf5876855d887f9a2
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/client/qwaylandxdgsurface.cpp
src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgsurfacev5.cpp
src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp
src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6_p.h
Done-with: Johan Klokkhammer Helsing <johan.helsing@qt.io>
Change-Id: Ia39be6254a95af1c4efa831358cc06a697da3423
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
[ChangeLog][QPA plugin] The window decorations have had a redesign,
they now use the window background color instead of the blue gradient.
Changes:
- Removed the gradient
- Used QPalette::Window for color instead of QPalette::Highlight
- Removed the xpm buttons as they look bad on high-dpi
- Redid the non-xpm buttons, removing their border
- Used anti-aliasing for cross icon (diagonal lines)
- Size of buttons have been increased, to be easier to click
- The position of the buttons have been shifted slightly
- Reduced rounding of the corners slightly
- Switched to non-bold and increased the font size for the window title
Task-number: QTBUG-68834
Change-Id: I17b2464c5e2518294d795512493bfe93e9a2f550
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
They use QtWaylandClient's private headers.
In file included from qwaylandinputdevice_p.h:1,
from qwaylandxdgshellv6.cpp:45:
qwaylandinputdevice_p.h:69:10: fatal error: xkbcommon/xkbcommon.h: No such file or directory
Change-Id: I6efb28c3145047559ec0fffd1538a642167da67f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
qwaylandxdgsurfacev5.cpp:77:97: warning: type qualifiers ignored on cast result type [-Wignored-qualifiers]
Change-Id: I6efb28c3145047559ec0fffd1538a5ce04f2721b
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
To avoid them covering for the edges of the window
Change-Id: Id8a1362ec11bd25f54cb2c9fbcbd562af8f283d8
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This shouldn't change any behavior, but lets the shell integrations choose
if they want to use the extremely hacky QWaylandWindow::transientParent().
Hint: Not all shells need the hacks, and not all shells need them in all cases,
and some shells may need even more hacks.
Change-Id: Id105e4feb83cc9c14dcf07dcca55fcd5e63d4a2b
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The window title bar's height is given in device pixels, so the font
size should be as well.
Task-number: QTBUG-68834
Change-Id: I5a82deb39439088dd55152fb8bae5c2d19d8b33e
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@liri.io>
|
| |
| |
| |
| |
| | |
Change-Id: I8cbe939352713f643474d383da95b6d13be798a8
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
It's just dead code, we can add it back in the unlikely event that we should
need it.
Change-Id: I209fe92fb160e022c992384d731964e774596f74
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Eventhough, according to the protocol spec, it should work perfectly fine
without setting the geometry, gnome-shell 3.28.2 chokes on it and
applications get stuck in the upper right corner and can't be moved.
Qt seems to be the only toolkit left that doesn't set the window geometry, so
let's just do it the simple, though somewhat incorrect, way.
The downside of this patch, is that the unset window geometry used to include
subsurfaces that extended outside the parent surface, but here we just set it
to the frameGeometry of the window.
Task-number: QTBUG-68575
Change-Id: I8a9d029ff6d57bd33294658e3bfd69ff08cd38c1
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
|