Window: add destroy signal

This commit is contained in:
Vaxry 2024-04-21 16:28:50 +01:00
parent e69bc5b870
commit e823b5d693
3 changed files with 8 additions and 1 deletions

View file

@ -26,6 +26,8 @@ CWindow::~CWindow() {
g_pCompositor->m_pLastWindow = nullptr;
}
events.destroy.emit();
if (!g_pHyprOpenGL)
return;

View file

@ -12,6 +12,7 @@
#include "../macros.hpp"
#include "../managers/XWaylandManager.hpp"
#include "DesktopTypes.hpp"
#include "../helpers/signal/Signal.hpp"
enum eIdleInhibitMode {
IDLEINHIBIT_NONE = 0,
@ -216,6 +217,10 @@ class CWindow {
CWLSurface m_pWLSurface;
struct {
CSignal destroy;
} events;
union {
wlr_xdg_surface* xdg;
wlr_xwayland_surface* xwayland;

View file

@ -9,7 +9,7 @@
class CSignal {
public:
void emit(std::any data);
void emit(std::any data = {});
//
[[nodiscard("Listener is unregistered when the ptr is lost")]] CHyprSignalListener registerListener(std::function<void(std::any)> handler);