Store QWaylandLayerShell using a QScopedPointer
This is to ensure that the QWaylandLayerShell will be eventually destroyed.
This commit is contained in:
parent
93f3ed2c07
commit
8d1aeb7bf1
|
@ -18,6 +18,10 @@ QWaylandLayerShellIntegration::QWaylandLayerShellIntegration()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QWaylandLayerShellIntegration::~QWaylandLayerShellIntegration()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
bool QWaylandLayerShellIntegration::initialize(QtWaylandClient::QWaylandDisplay *display)
|
bool QWaylandLayerShellIntegration::initialize(QtWaylandClient::QWaylandDisplay *display)
|
||||||
{
|
{
|
||||||
QWaylandShellIntegration::initialize(display);
|
QWaylandShellIntegration::initialize(display);
|
||||||
|
@ -35,7 +39,7 @@ void QWaylandLayerShellIntegration::registryLayer(void *data, struct wl_registry
|
||||||
QWaylandLayerShellIntegration *shell = static_cast<QWaylandLayerShellIntegration *>(data);
|
QWaylandLayerShellIntegration *shell = static_cast<QWaylandLayerShellIntegration *>(data);
|
||||||
|
|
||||||
if (interface == zwlr_layer_shell_v1_interface.name)
|
if (interface == zwlr_layer_shell_v1_interface.name)
|
||||||
shell->m_layerShell = new QWaylandLayerShell(registry, id, std::min(version, 4u));
|
shell->m_layerShell.reset(new QWaylandLayerShell(registry, id, std::min(version, 4u)));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ class LAYERSHELLQT_EXPORT QWaylandLayerShellIntegration : public QtWaylandClient
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QWaylandLayerShellIntegration();
|
QWaylandLayerShellIntegration();
|
||||||
|
~QWaylandLayerShellIntegration() override;
|
||||||
|
|
||||||
bool initialize(QtWaylandClient::QWaylandDisplay *display) override;
|
bool initialize(QtWaylandClient::QWaylandDisplay *display) override;
|
||||||
QtWaylandClient::QWaylandShellSurface *createShellSurface(QtWaylandClient::QWaylandWindow *window) override;
|
QtWaylandClient::QWaylandShellSurface *createShellSurface(QtWaylandClient::QWaylandWindow *window) override;
|
||||||
|
@ -28,7 +29,7 @@ public:
|
||||||
private:
|
private:
|
||||||
static void registryLayer(void *data, struct wl_registry *registry, uint32_t id, const QString &interface, uint32_t version);
|
static void registryLayer(void *data, struct wl_registry *registry, uint32_t id, const QString &interface, uint32_t version);
|
||||||
|
|
||||||
QWaylandLayerShell *m_layerShell = nullptr;
|
QScopedPointer<QWaylandLayerShell> m_layerShell;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue