Go to file
Vlad Zahorodnii 127d817aa1 Guard against calling set_size while applying a configure event more explicitly
Depending on code path taken, geometry.size() == m_pendingSize can
produce incorrect results.

If a configure event is applied, it's fine.

If the window is resized by user, m_pendingSize will have outdated value,
and setWindowGeometry() can ignore future size updates that are valid.

In hindsight, we need special hooks in the QWaylandWindow to request and
apply new geometry. Rather than have one function that deals with all cases.
2024-04-03 15:15:37 +03:00
.reuse Include reuse metadata 2021-04-08 18:26:32 +02:00
LICENSES Align layershell-qt with the rest of KDE frameworks at a licence level 2024-02-12 14:15:06 +00:00
src Guard against calling set_size while applying a configure event more explicitly 2024-04-03 15:15:37 +03:00
tests Skip empty parts for stringToEnum template 2023-09-26 17:25:20 +08:00
.gitignore Mark .gitignore file as non-copyrightable 2021-05-21 15:35:56 +02:00
.gitlab-ci.yml GIT_SILENT: Port to new CI template 2023-11-19 16:20:06 +01:00
.kde-ci.yml Add wayland to third-party deps 2023-05-05 10:22:39 +02:00
CMakeLists.txt Update Frameworks version requirement to 6.0.0 2024-02-21 14:33:45 +00:00
LayerShellQtConfig.cmake.in We use Qt6/kf6 only 2023-06-26 20:42:27 +02:00
metainfo.yaml Make fully reuse compliant 2022-08-23 21:52:18 +02:00
README.md Add bugzilla component 2021-04-07 02:46:47 +02:00
README.md.license SPDX, use .license on files where it's awkward to get it inside 2021-04-06 14:32:51 +02:00

LayerShellQt

This component is meant for applications to be able to easily use clients based on wlr-layer-shell.

Here you can read about what the protocol does and how shells work: https://drewdevault.com/2018/07/29/Wayland-shells.html

Report issues in this component here: https://bugs.kde.org/enter_bug.cgi?product=layer-shell-qt

Usage

CMake

To use it from a CMake project you'll need to:

find_package(LayerShellQt REQUIRED)

Then it will offer us the target LayerShellQt::Interface that we can link to to get access to this framework.

C++

You can use LayerShellQt::Shell::useLayerShell(); to enable it before any clients are created.

The class LayerShellQt::Window will give us access to surface-specific settings. We can get it by using LayerShellQt::Window::get(window) on whatever QWindow we need to tweak.