mirror of
https://invent.kde.org/plasma/layer-shell-qt.git
synced 2025-05-28 02:50:21 -04:00
QWaylandLayerShellIntegration has virtual hooks for Xdg Activation. This is important to hook up in layer shell because activation using requestActivate in Qt will go through this path. It also means we have support for us to drop the implementation in KWindowSystem in favour of calling into Qt.
66 lines
1.8 KiB
C++
66 lines
1.8 KiB
C++
/*
|
|
* SPDX-FileCopyrightText: 2021 Aleix Pol Gonzalez <aleixpol@blue-systems.com>
|
|
* SPDX-FileCopyrightText: 2018 Drew DeVault <sir@cmpwn.com>
|
|
*
|
|
* SPDX-License-Identifier: LGPL-3.0-or-later
|
|
*/
|
|
|
|
#ifndef _LAYERSURFACE_H
|
|
#define _LAYERSURFACE_H
|
|
|
|
#include <wayland-client.h>
|
|
|
|
#include "qwaylandlayershellintegration_p.h"
|
|
|
|
#include "layershellqt_export.h"
|
|
#include <QtWaylandClient/private/qwaylandshellsurface_p.h>
|
|
#include <qwayland-wlr-layer-shell-unstable-v1.h>
|
|
|
|
namespace LayerShellQt
|
|
{
|
|
|
|
class Window;
|
|
|
|
class LAYERSHELLQT_EXPORT QWaylandLayerSurface : public QtWaylandClient::QWaylandShellSurface, public QtWayland::zwlr_layer_surface_v1
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
QWaylandLayerSurface(QWaylandLayerShellIntegration *shell, QtWaylandClient::QWaylandWindow *window);
|
|
~QWaylandLayerSurface() override;
|
|
|
|
bool isExposed() const override
|
|
{
|
|
return m_configured;
|
|
}
|
|
#if QT_VERSION >= QT_VERSION_CHECK(6, 6, 0)
|
|
void attachPopup(QtWaylandClient::QWaylandShellSurface *popup) override;
|
|
#endif
|
|
|
|
void setAnchor(uint32_t anchor);
|
|
void setExclusiveZone(int32_t zone);
|
|
void setMargins(const QMargins &margins);
|
|
void setKeyboardInteractivity(uint32_t interactivity);
|
|
void setLayer(uint32_t layer);
|
|
|
|
void applyConfigure() override;
|
|
void setWindowGeometry(const QRect &geometry) override;
|
|
|
|
bool requestActivate() override;
|
|
void setXdgActivationToken(const QString &token) override;
|
|
void requestXdgActivationToken(quint32 serial) override;
|
|
|
|
private:
|
|
void zwlr_layer_surface_v1_configure(uint32_t serial, uint32_t width, uint32_t height) override;
|
|
void zwlr_layer_surface_v1_closed() override;
|
|
|
|
QWaylandLayerShellIntegration *m_shell;
|
|
LayerShellQt::Window *m_interface;
|
|
QSize m_pendingSize;
|
|
QString m_activationToken;
|
|
bool m_configured = false;
|
|
};
|
|
|
|
}
|
|
|
|
#endif
|