Commit Graph

83 Commits

Author SHA1 Message Date
Vlad Zahorodnii 93f3ed2c07 Fix a memory leak
The dynamically allocated QtWayland::zwlr_layer_shell_v1 object in
QWaylandLayerShellIntegration::registryLayer() isn't deleted anywhere.
2021-04-20 16:02:33 +00:00
Vlad Zahorodnii efd32eed53 Add missing parenthesis
This is to make the compiler happier.
2021-04-20 18:38:24 +03:00
Vlad Zahorodnii 11a811061f Introduce KeyboardInteractivity enum 2021-04-20 15:27:43 +03:00
Nicolas Fella 549f5ad682 Link against xkbcommon
Otherwise the build fails with missing xkbcommon headers
2021-04-15 20:46:25 +02:00
David Edmundson cd409ed50e Add width and height to test
This is needed if we are not anchoring to the full screen
2021-04-15 09:59:18 +01:00
David Edmundson 2b1219cfdd Ensure we can set per-window properties before the intial commit
In the current implementation we cannot use a LayerShellQt before the
shell surface is created.

At the moment a shell surface is created, the constructor is run and
then QtWayland commits the current state. This means the compositor
configures the window before a client has any chance to set anchors or
margins.

This works whilst we're just being a simple fullscreen window, but won't
scale for plasmashell in the future.

This patch makes LayerShellQt::Window always creatable, and we can set
and cache properties before the platform window is created, just like
one can on QWindow and XDGShell properties.

This also makes it less potentially crashy as ::get always returns a
valid result, and
sets up the public API to be QML-able as an attached property in future.

Co-authored on Aleix's patch for the unit test
2021-04-15 09:58:57 +01:00
David Edmundson 29d0078909 Ensure we can set per-window properties before the intial commit
In the current implementation we cannot use a LayerShellQt before the
shell surface is created.

At the moment a shell surface is created, the constructor is run and
then QtWayland commits the current state. This means the compositor
configures the window before a client has any chance to set anchors or
margins.

This works whilst we're just being a simple fullscreen window, but won't
scale for plasmashell in the future.

This patch makes LayerShellQt::Window always creatable, and we can set
and cache properties before the platform window is created, just like
one can on QWindow and XDGShell properties.

This also makes it less potentially crashy as ::get always returns a
valid result, and
sets up the public API to be QML-able as an attached property in future.

Co-authored on Aleix's patch for the unit test
2021-04-14 23:49:30 +01:00
Vlad Zahorodnii f684097c0f Properly guard zwlr_layer_shell_v1 destructor request
The destructor request was added in version 3.
2021-04-09 12:49:49 +00:00
Vlad Zahorodnii b4c62f7926 Expose set_layer
The set_layer request allows to move a surface to another layer after
creating it.
2021-04-09 12:49:49 +00:00
Aleix Pol 4ff7cf23c9 Include reuse metadata
Both for the project and for it to ignore .kdev4 files.
2021-04-08 18:26:32 +02:00
Aleix Pol 154741bb47 Add wlr-layer-shell-unstable-v1.xml protocol file's licence
This way "reuse lint" outputs clean
2021-04-08 18:26:32 +02:00
Vlad Zahorodnii 31ce504f99 Fix layer-shell version selection logic
If an app blindly binds a global, it may crash if the compositor
supports slightly newer version of the protocol.
2021-04-08 09:26:16 +03:00
Vlad Zahorodnii 9816f32bc4 Remove redundant includes
qwayland-wlr-layer-shell-unstable-v1.h is already included in
corresponding header files.
2021-04-07 16:49:31 +00:00
Vlad Zahorodnii c46249bba0 Remove Q_NULLPTR usage
This project requires C++17, which has the nullptr keyword.
2021-04-07 16:05:02 +00:00
Vlad Zahorodnii 834551f6b7 Remove hard-coded zwlr_layer_shell_v1 interface name
This makes code more neater.
2021-04-07 18:19:43 +03:00
Aleix Pol 95d5c5bea8 Add bugzilla component 2021-04-07 02:46:47 +02:00
Aleix Pol 09be37e17c SPDX, use .license on files where it's awkward to get it inside 2021-04-06 14:32:51 +02:00
Aleix Pol 6c75bae88b Warn when qputenv returns false as the whole component won't work 2021-04-06 13:54:52 +02:00
Aleix Pol efa32dfbe3 Use unversioned Qt targets 2021-04-06 13:54:43 +02:00
Aleix Pol 86efa88e22 More SPDX 2021-04-06 13:47:24 +02:00
Aleix Pol cd9b1a6fd3 Address code formatting 2021-04-06 13:39:27 +02:00
Aleix Pol 1bf7276d53 Add SPDX 2021-04-06 13:05:53 +02:00
Vlad Zahorodnii 840f40db73 Fix clang warning
The warning itself:

> /home/tsdgeos/devel/kde/layer-shell-qt/src/qwaylandlayershell_p.h:23:24: note: did you mean class here?
>      QWaylandLayerShell(struct QtWayland::zwlr_layer_shell_v1 *shell);
2021-04-05 09:23:52 +03:00
Fabian Vogt 82fec33fc6 Move COPYING.LIB into LICENSES 2021-04-01 22:36:37 +02:00
Fabian Vogt 4a3d27d0be Fix build of the layer-shell plugin
It's missing a dependency on Wayland::Client.
Also, it uses LayerShellQtInterface, which is only defined later, move it.
2021-04-01 22:36:29 +02:00
Aleix Pol 81e2bf553c ++README 2021-04-01 18:45:49 +02:00
Aleix Pol 5c48e7baab Add a README.md with some basic documentation 2021-04-01 18:43:43 +02:00
Aleix Pol c0541e496a Add COPYING.LIB file 2021-04-01 17:56:06 +02:00
Aleix Pol cffdab8c33 Use debug logging categories 2021-04-01 17:55:58 +02:00
Aleix Pol be966dbeb6 Install headers in the right directory 2021-04-01 14:06:10 +02:00
Aleix Pol 53a97fc89e Make sure it's findable 2021-04-01 03:12:40 +02:00
Aleix Pol 41704f8d15 Fixes 2021-04-01 02:45:31 +02:00
Aleix Pol ea3e4b3139 Initial commit 2021-04-01 02:28:01 +02:00