diff options
| author | outfoxxed <outfoxxed@outfoxxed.me> | 2025-07-08 09:56:40 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-08 18:56:40 +0200 |
| commit | 78e9eddfb6bfbc6b103fc60c9831b23ef252886b (patch) | |
| tree | 4daf06580d89dec717a282c4ec8729285241c8e8 /src/desktop | |
| parent | 2f34ef141b0728857d2a6f777c608dfe4c207733 (diff) | |
core: use new typed signals from hu (#10853)
Diffstat (limited to 'src/desktop')
| -rw-r--r-- | src/desktop/LayerSurface.cpp | 8 | ||||
| -rw-r--r-- | src/desktop/Popup.cpp | 20 | ||||
| -rw-r--r-- | src/desktop/Subsurface.cpp | 17 | ||||
| -rw-r--r-- | src/desktop/WLSurface.cpp | 2 | ||||
| -rw-r--r-- | src/desktop/WLSurface.hpp | 2 | ||||
| -rw-r--r-- | src/desktop/Window.cpp | 34 | ||||
| -rw-r--r-- | src/desktop/Window.hpp | 2 | ||||
| -rw-r--r-- | src/desktop/Workspace.cpp | 2 | ||||
| -rw-r--r-- | src/desktop/Workspace.hpp | 8 |
9 files changed, 45 insertions, 50 deletions
diff --git a/src/desktop/LayerSurface.cpp b/src/desktop/LayerSurface.cpp index 135b06a3..36ec030b 100644 --- a/src/desktop/LayerSurface.cpp +++ b/src/desktop/LayerSurface.cpp @@ -59,10 +59,10 @@ void CLayerSurface::registerCallbacks() { } CLayerSurface::CLayerSurface(SP<CLayerShellResource> resource_) : m_layerSurface(resource_) { - m_listeners.commit = m_layerSurface->m_events.commit.registerListener([this](std::any d) { onCommit(); }); - m_listeners.map = m_layerSurface->m_events.map.registerListener([this](std::any d) { onMap(); }); - m_listeners.unmap = m_layerSurface->m_events.unmap.registerListener([this](std::any d) { onUnmap(); }); - m_listeners.destroy = m_layerSurface->m_events.destroy.registerListener([this](std::any d) { onDestroy(); }); + m_listeners.commit = m_layerSurface->m_events.commit.listen([this] { onCommit(); }); + m_listeners.map = m_layerSurface->m_events.map.listen([this] { onMap(); }); + m_listeners.unmap = m_layerSurface->m_events.unmap.listen([this] { onUnmap(); }); + m_listeners.destroy = m_layerSurface->m_events.destroy.listen([this] { onDestroy(); }); m_surface = CWLSurface::create(); } diff --git a/src/desktop/Popup.cpp b/src/desktop/Popup.cpp index b647bed5..702ebdf9 100644 --- a/src/desktop/Popup.cpp +++ b/src/desktop/Popup.cpp @@ -53,24 +53,22 @@ void CPopup::initAllSignals() { if (!m_resource) { if (!m_windowOwner.expired()) - m_listeners.newPopup = - m_windowOwner->m_xdgSurface->m_events.newPopup.registerListener([this](std::any d) { this->onNewPopup(std::any_cast<SP<CXDGPopupResource>>(d)); }); + m_listeners.newPopup = m_windowOwner->m_xdgSurface->m_events.newPopup.listen([this](const auto& resource) { this->onNewPopup(resource); }); else if (!m_layerOwner.expired()) - m_listeners.newPopup = - m_layerOwner->m_layerSurface->m_events.newPopup.registerListener([this](std::any d) { this->onNewPopup(std::any_cast<SP<CXDGPopupResource>>(d)); }); + m_listeners.newPopup = m_layerOwner->m_layerSurface->m_events.newPopup.listen([this](const auto& resource) { this->onNewPopup(resource); }); else ASSERT(false); return; } - m_listeners.reposition = m_resource->m_events.reposition.registerListener([this](std::any d) { this->onReposition(); }); - m_listeners.map = m_resource->m_surface->m_events.map.registerListener([this](std::any d) { this->onMap(); }); - m_listeners.unmap = m_resource->m_surface->m_events.unmap.registerListener([this](std::any d) { this->onUnmap(); }); - m_listeners.dismissed = m_resource->m_events.dismissed.registerListener([this](std::any d) { this->onUnmap(); }); - m_listeners.destroy = m_resource->m_surface->m_events.destroy.registerListener([this](std::any d) { this->onDestroy(); }); - m_listeners.commit = m_resource->m_surface->m_events.commit.registerListener([this](std::any d) { this->onCommit(); }); - m_listeners.newPopup = m_resource->m_surface->m_events.newPopup.registerListener([this](std::any d) { this->onNewPopup(std::any_cast<SP<CXDGPopupResource>>(d)); }); + m_listeners.reposition = m_resource->m_events.reposition.listen([this] { this->onReposition(); }); + m_listeners.map = m_resource->m_surface->m_events.map.listen([this] { this->onMap(); }); + m_listeners.unmap = m_resource->m_surface->m_events.unmap.listen([this] { this->onUnmap(); }); + m_listeners.dismissed = m_resource->m_events.dismissed.listen([this] { this->onUnmap(); }); + m_listeners.destroy = m_resource->m_surface->m_events.destroy.listen([this] { this->onDestroy(); }); + m_listeners.commit = m_resource->m_surface->m_events.commit.listen([this] { this->onCommit(); }); + m_listeners.newPopup = m_resource->m_surface->m_events.newPopup.listen([this](const auto& resource) { this->onNewPopup(resource); }); } void CPopup::onNewPopup(SP<CXDGPopupResource> popup) { diff --git a/src/desktop/Subsurface.cpp b/src/desktop/Subsurface.cpp index 1c5d5c70..d13a1344 100644 --- a/src/desktop/Subsurface.cpp +++ b/src/desktop/Subsurface.cpp @@ -52,19 +52,16 @@ UP<CSubsurface> CSubsurface::create(SP<CWLSubsurfaceResource> pSubsurface, WP<CP void CSubsurface::initSignals() { if (m_subsurface) { - m_listeners.commitSubsurface = m_subsurface->m_surface->m_events.commit.registerListener([this](std::any d) { onCommit(); }); - m_listeners.destroySubsurface = m_subsurface->m_events.destroy.registerListener([this](std::any d) { onDestroy(); }); - m_listeners.mapSubsurface = m_subsurface->m_surface->m_events.map.registerListener([this](std::any d) { onMap(); }); - m_listeners.unmapSubsurface = m_subsurface->m_surface->m_events.unmap.registerListener([this](std::any d) { onUnmap(); }); - m_listeners.newSubsurface = - m_subsurface->m_surface->m_events.newSubsurface.registerListener([this](std::any d) { onNewSubsurface(std::any_cast<SP<CWLSubsurfaceResource>>(d)); }); + m_listeners.commitSubsurface = m_subsurface->m_surface->m_events.commit.listen([this] { onCommit(); }); + m_listeners.destroySubsurface = m_subsurface->m_events.destroy.listen([this] { onDestroy(); }); + m_listeners.mapSubsurface = m_subsurface->m_surface->m_events.map.listen([this] { onMap(); }); + m_listeners.unmapSubsurface = m_subsurface->m_surface->m_events.unmap.listen([this] { onUnmap(); }); + m_listeners.newSubsurface = m_subsurface->m_surface->m_events.newSubsurface.listen([this](const auto& resource) { onNewSubsurface(resource); }); } else { if (m_windowParent) - m_listeners.newSubsurface = m_windowParent->m_wlSurface->resource()->m_events.newSubsurface.registerListener( - [this](std::any d) { onNewSubsurface(std::any_cast<SP<CWLSubsurfaceResource>>(d)); }); + m_listeners.newSubsurface = m_windowParent->m_wlSurface->resource()->m_events.newSubsurface.listen([this](const auto& resource) { onNewSubsurface(resource); }); else if (m_popupParent) - m_listeners.newSubsurface = m_popupParent->m_wlSurface->resource()->m_events.newSubsurface.registerListener( - [this](std::any d) { onNewSubsurface(std::any_cast<SP<CWLSubsurfaceResource>>(d)); }); + m_listeners.newSubsurface = m_popupParent->m_wlSurface->resource()->m_events.newSubsurface.listen([this](const auto& resource) { onNewSubsurface(resource); }); else ASSERT(false); } diff --git a/src/desktop/WLSurface.cpp b/src/desktop/WLSurface.cpp index a7b9e620..d1483db2 100644 --- a/src/desktop/WLSurface.cpp +++ b/src/desktop/WLSurface.cpp @@ -159,7 +159,7 @@ void CWLSurface::init() { m_resource->m_hlSurface = m_self.lock(); - m_listeners.destroy = m_resource->m_events.destroy.registerListener([this](std::any d) { destroy(); }); + m_listeners.destroy = m_resource->m_events.destroy.listen([this] { destroy(); }); Debug::log(LOG, "CWLSurface {:x} called init()", (uintptr_t)this); } diff --git a/src/desktop/WLSurface.hpp b/src/desktop/WLSurface.hpp index d0da546c..3aed5046 100644 --- a/src/desktop/WLSurface.hpp +++ b/src/desktop/WLSurface.hpp @@ -91,7 +91,7 @@ class CWLSurface { CRegion m_visibleRegion; struct { - CSignal destroy; + CSignalT<> destroy; } m_events; WP<CWLSurface> m_self; diff --git a/src/desktop/Window.cpp b/src/desktop/Window.cpp index a7b0cdab..8cdb5ceb 100644 --- a/src/desktop/Window.cpp +++ b/src/desktop/Window.cpp @@ -89,30 +89,30 @@ PHLWINDOW CWindow::create(SP<CXDGSurfaceResource> resource) { CWindow::CWindow(SP<CXDGSurfaceResource> resource) : m_xdgSurface(resource) { m_wlSurface = CWLSurface::create(); - m_listeners.map = m_xdgSurface->m_events.map.registerListener([this](std::any d) { Events::listener_mapWindow(this, nullptr); }); - m_listeners.ack = m_xdgSurface->m_events.ack.registerListener([this](std::any d) { onAck(std::any_cast<uint32_t>(d)); }); - m_listeners.unmap = m_xdgSurface->m_events.unmap.registerListener([this](std::any d) { Events::listener_unmapWindow(this, nullptr); }); - m_listeners.destroy = m_xdgSurface->m_events.destroy.registerListener([this](std::any d) { Events::listener_destroyWindow(this, nullptr); }); - m_listeners.commit = m_xdgSurface->m_events.commit.registerListener([this](std::any d) { Events::listener_commitWindow(this, nullptr); }); - m_listeners.updateState = m_xdgSurface->m_toplevel->m_events.stateChanged.registerListener([this](std::any d) { onUpdateState(); }); - m_listeners.updateMetadata = m_xdgSurface->m_toplevel->m_events.metadataChanged.registerListener([this](std::any d) { onUpdateMeta(); }); + m_listeners.map = m_xdgSurface->m_events.map.listen([this] { Events::listener_mapWindow(this, nullptr); }); + m_listeners.ack = m_xdgSurface->m_events.ack.listen([this](uint32_t d) { onAck(d); }); + m_listeners.unmap = m_xdgSurface->m_events.unmap.listen([this] { Events::listener_unmapWindow(this, nullptr); }); + m_listeners.destroy = m_xdgSurface->m_events.destroy.listen([this] { Events::listener_destroyWindow(this, nullptr); }); + m_listeners.commit = m_xdgSurface->m_events.commit.listen([this] { Events::listener_commitWindow(this, nullptr); }); + m_listeners.updateState = m_xdgSurface->m_toplevel->m_events.stateChanged.listen([this] { onUpdateState(); }); + m_listeners.updateMetadata = m_xdgSurface->m_toplevel->m_events.metadataChanged.listen([this] { onUpdateMeta(); }); } CWindow::CWindow(SP<CXWaylandSurface> surface) : m_xwaylandSurface(surface) { m_wlSurface = CWLSurface::create(); - m_listeners.map = m_xwaylandSurface->m_events.map.registerListener([this](std::any d) { Events::listener_mapWindow(this, nullptr); }); - m_listeners.unmap = m_xwaylandSurface->m_events.unmap.registerListener([this](std::any d) { Events::listener_unmapWindow(this, nullptr); }); - m_listeners.destroy = m_xwaylandSurface->m_events.destroy.registerListener([this](std::any d) { Events::listener_destroyWindow(this, nullptr); }); - m_listeners.commit = m_xwaylandSurface->m_events.commit.registerListener([this](std::any d) { Events::listener_commitWindow(this, nullptr); }); - m_listeners.configureRequest = m_xwaylandSurface->m_events.configureRequest.registerListener([this](std::any d) { onX11ConfigureRequest(std::any_cast<CBox>(d)); }); - m_listeners.updateState = m_xwaylandSurface->m_events.stateChanged.registerListener([this](std::any d) { onUpdateState(); }); - m_listeners.updateMetadata = m_xwaylandSurface->m_events.metadataChanged.registerListener([this](std::any d) { onUpdateMeta(); }); - m_listeners.resourceChange = m_xwaylandSurface->m_events.resourceChange.registerListener([this](std::any d) { onResourceChangeX11(); }); - m_listeners.activate = m_xwaylandSurface->m_events.activate.registerListener([this](std::any d) { Events::listener_activateX11(this, nullptr); }); + m_listeners.map = m_xwaylandSurface->m_events.map.listen([this] { Events::listener_mapWindow(this, nullptr); }); + m_listeners.unmap = m_xwaylandSurface->m_events.unmap.listen([this] { Events::listener_unmapWindow(this, nullptr); }); + m_listeners.destroy = m_xwaylandSurface->m_events.destroy.listen([this] { Events::listener_destroyWindow(this, nullptr); }); + m_listeners.commit = m_xwaylandSurface->m_events.commit.listen([this] { Events::listener_commitWindow(this, nullptr); }); + m_listeners.configureRequest = m_xwaylandSurface->m_events.configureRequest.listen([this](const CBox& box) { onX11ConfigureRequest(box); }); + m_listeners.updateState = m_xwaylandSurface->m_events.stateChanged.listen([this] { onUpdateState(); }); + m_listeners.updateMetadata = m_xwaylandSurface->m_events.metadataChanged.listen([this] { onUpdateMeta(); }); + m_listeners.resourceChange = m_xwaylandSurface->m_events.resourceChange.listen([this] { onResourceChangeX11(); }); + m_listeners.activate = m_xwaylandSurface->m_events.activate.listen([this] { Events::listener_activateX11(this, nullptr); }); if (m_xwaylandSurface->m_overrideRedirect) - m_listeners.setGeometry = m_xwaylandSurface->m_events.setGeometry.registerListener([this](std::any d) { Events::listener_unmanagedSetGeometry(this, nullptr); }); + m_listeners.setGeometry = m_xwaylandSurface->m_events.setGeometry.listen([this] { Events::listener_unmanagedSetGeometry(this, nullptr); }); } CWindow::~CWindow() { diff --git a/src/desktop/Window.hpp b/src/desktop/Window.hpp index 3f73c468..1c4d3c67 100644 --- a/src/desktop/Window.hpp +++ b/src/desktop/Window.hpp @@ -148,7 +148,7 @@ class CWindow { SP<CWLSurface> m_wlSurface; struct { - CSignal destroy; + CSignalT<> destroy; } m_events; WP<CXDGSurfaceResource> m_xdgSurface; diff --git a/src/desktop/Workspace.cpp b/src/desktop/Workspace.cpp index 1e5fbfa6..b6320f05 100644 --- a/src/desktop/Workspace.cpp +++ b/src/desktop/Workspace.cpp @@ -644,7 +644,7 @@ void CWorkspace::rename(const std::string& name) { g_pCompositor->ensurePersistentWorkspacesPresent(std::vector<SWorkspaceRule>{WORKSPACERULE}, m_self.lock()); g_pEventManager->postEvent({.event = "renameworkspace", .data = std::to_string(m_id) + "," + m_name}); - m_events.rename.emit(); + m_events.renamed.emit(); } void CWorkspace::updateWindows() { diff --git a/src/desktop/Workspace.hpp b/src/desktop/Workspace.hpp index 5bf38489..fa23966b 100644 --- a/src/desktop/Workspace.hpp +++ b/src/desktop/Workspace.hpp @@ -85,10 +85,10 @@ class CWorkspace { void updateWindows(); struct { - CSignal destroy; - CSignal rename; - CSignal monitorChange; - CSignal activeChange; + CSignalT<> destroy; + CSignalT<> renamed; + CSignalT<> monitorChanged; + CSignalT<> activeChanged; } m_events; private: |
