Commit Graph
18 Commits
Author SHA1 Message Date
Vlad Zahorodnii 721c0ae334 Remove an inappropriate log message 2023-09-06 14:52:55 +03:00
Vlad Zahorodnii 9750fd8be7 Avoid emitting excessive changed signals
If the layer shell surface properties don't change, don't emit the
changed signals and issue wayland requests.
2023-05-17 14:57:09 +03:00
Vlad Zahorodnii 5e88f449b0 Introduce Window::closeOnDismissed() flag
This can be used to control the sending of QEvent::Close event.
2023-05-16 17:58:48 +03:00
Vlad Zahorodnii 497d50c4df Emit Window::layerChanged signal
Otherwise it's not possible to change layers at runtime.
2023-05-13 12:18:12 +03:00
Vlad Zahorodnii 511b92f4ab Port to QWaylandShellSurface::attachPopup() 2023-04-22 12:11:04 +03:00
Vlad Zahorodnii fdab1544fb Add a (temporary) way to attach popups to layer surfaces
The new API is temporary. It's needed to help us with porting plasma to
the layer shell protocol until Qt 6.6 is released, which includes
QWaylandShellSurface::attachPopup().
2023-04-22 12:11:04 +03:00
Vlad Zahorodnii 2985398375 Port to QWaylandWindow::setShellIntegration()
With QWaylandWindow::setShellIntegration(), it's possible to use
xdg-shell and layer-shell protocols in the same process. It's important
for plasmashell, where we want to use the layer shell protocol for
special surfaces such as the desktop background, and the xdg shell
protocol for dialogs.

In order to make a QWindow use the layer shell protocol, you need to
call LayerShellQt::Window::get() before the window is mapped.
2023-04-22 12:11:01 +03:00
Vlad ZahorodniiandAleix Pol Gonzalez 8d1aeb7bf1 Store QWaylandLayerShell using a QScopedPointer
This is to ensure that the QWaylandLayerShell will be eventually
destroyed.
2021-04-20 16:02:33 +00:00
Vlad ZahorodniiandAleix Pol Gonzalez 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
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
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 ZahorodniiandAleix Pol Gonzalez 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 ZahorodniiandAleix Pol Gonzalez 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
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