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/xwayland | |
| parent | 2f34ef141b0728857d2a6f777c608dfe4c207733 (diff) | |
core: use new typed signals from hu (#10853)
Diffstat (limited to 'src/xwayland')
| -rw-r--r-- | src/xwayland/XSurface.cpp | 8 | ||||
| -rw-r--r-- | src/xwayland/XSurface.hpp | 20 | ||||
| -rw-r--r-- | src/xwayland/XWM.cpp | 13 |
3 files changed, 20 insertions, 21 deletions
diff --git a/src/xwayland/XSurface.cpp b/src/xwayland/XSurface.cpp index d9419794..3b0615a0 100644 --- a/src/xwayland/XSurface.cpp +++ b/src/xwayland/XSurface.cpp @@ -42,7 +42,7 @@ CXWaylandSurface::CXWaylandSurface(uint32_t xID_, CBox geometry_, bool OR) : m_x free(reply); } - m_events.resourceChange.registerStaticListener([this](void* data, std::any d) { ensureListeners(); }, nullptr); + m_events.resourceChange.listenStatic([this] { ensureListeners(); }); } void CXWaylandSurface::ensureListeners() { @@ -52,7 +52,7 @@ void CXWaylandSurface::ensureListeners() { m_listeners.destroySurface.reset(); m_listeners.commitSurface.reset(); } else if (!connected && m_surface) { - m_listeners.destroySurface = m_surface->m_events.destroy.registerListener([this](std::any d) { + m_listeners.destroySurface = m_surface->m_events.destroy.listen([this] { if (m_mapped) unmap(); @@ -62,7 +62,7 @@ void CXWaylandSurface::ensureListeners() { m_events.resourceChange.emit(); }); - m_listeners.commitSurface = m_surface->m_events.commit.registerListener([this](std::any d) { + m_listeners.commitSurface = m_surface->m_events.commit.listen([this] { if (m_surface->m_current.texture && !m_mapped) { map(); return; @@ -78,7 +78,7 @@ void CXWaylandSurface::ensureListeners() { } if (m_resource) { - m_listeners.destroyResource = m_resource->events.destroy.registerListener([this](std::any d) { + m_listeners.destroyResource = m_resource->events.destroy.listen([this] { unmap(); m_surface.reset(); m_events.resourceChange.emit(); diff --git a/src/xwayland/XSurface.hpp b/src/xwayland/XSurface.hpp index ec71aad3..10eecbaf 100644 --- a/src/xwayland/XSurface.hpp +++ b/src/xwayland/XSurface.hpp @@ -43,20 +43,20 @@ class CXWaylandSurface { WP<CXWaylandSurfaceResource> m_resource; struct { - CSignal stateChanged; // maximized, fs, minimized, etc. - CSignal metadataChanged; // title, appid - CSignal destroy; + CSignalT<> stateChanged; // maximized, fs, minimized, etc. + CSignalT<> metadataChanged; // title, appid + CSignalT<> destroy; - CSignal resourceChange; // associated / dissociated + CSignalT<> resourceChange; // associated / dissociated - CSignal setGeometry; - CSignal configureRequest; // CBox + CSignalT<> setGeometry; + CSignalT<CBox> configureRequest; - CSignal map; - CSignal unmap; - CSignal commit; + CSignalT<> map; + CSignalT<> unmap; + CSignalT<> commit; - CSignal activate; + CSignalT<> activate; } m_events; struct { diff --git a/src/xwayland/XWM.cpp b/src/xwayland/XWM.cpp index 2854647d..a2461bb2 100644 --- a/src/xwayland/XWM.cpp +++ b/src/xwayland/XWM.cpp @@ -984,9 +984,8 @@ CXWM::CXWM() : m_connection(makeUnique<CXCBConnection>(g_pXWayland->m_server->m_ setActiveWindow(XCB_WINDOW_NONE); initSelection(); - m_listeners.newWLSurface = PROTO::compositor->m_events.newSurface.registerListener([this](std::any d) { onNewSurface(std::any_cast<SP<CWLSurfaceResource>>(d)); }); - m_listeners.newXShellSurface = - PROTO::xwaylandShell->m_events.newSurface.registerListener([this](std::any d) { onNewResource(std::any_cast<SP<CXWaylandSurfaceResource>>(d)); }); + m_listeners.newWLSurface = PROTO::compositor->m_events.newSurface.listen([this](const auto& surface) { onNewSurface(surface); }); + m_listeners.newXShellSurface = PROTO::xwaylandShell->m_events.newSurface.listen([this](const auto& surface) { onNewResource(surface); }); createWMWindow(); @@ -1218,12 +1217,12 @@ void CXWM::initSelection() { createSelectionWindow(m_clipboard.window, "CLIPBOARD_MANAGER"); createSelectionWindow(m_clipboard.window, "CLIPBOARD"); - m_clipboard.listeners.setSelection = g_pSeatManager->m_events.setSelection.registerListener([this](std::any) { m_clipboard.onSelection(); }); - m_clipboard.listeners.keyboardFocusChange = g_pSeatManager->m_events.keyboardFocusChange.registerListener([this](std::any) { m_clipboard.onKeyboardFocus(); }); + m_clipboard.listeners.setSelection = g_pSeatManager->m_events.setSelection.listen([this] { m_clipboard.onSelection(); }); + m_clipboard.listeners.keyboardFocusChange = g_pSeatManager->m_events.keyboardFocusChange.listen([this] { m_clipboard.onKeyboardFocus(); }); createSelectionWindow(m_primarySelection.window, "PRIMARY"); - m_primarySelection.listeners.setSelection = g_pSeatManager->m_events.setPrimarySelection.registerListener([this](std::any) { m_primarySelection.onSelection(); }); - m_primarySelection.listeners.keyboardFocusChange = g_pSeatManager->m_events.keyboardFocusChange.registerListener([this](std::any) { m_primarySelection.onKeyboardFocus(); }); + m_primarySelection.listeners.setSelection = g_pSeatManager->m_events.setPrimarySelection.listen([this] { m_primarySelection.onSelection(); }); + m_primarySelection.listeners.keyboardFocusChange = g_pSeatManager->m_events.keyboardFocusChange.listen([this] { m_primarySelection.onKeyboardFocus(); }); createSelectionWindow(m_dndSelection.window, "XdndAware", true); const uint32_t xdndVersion = XDND_VERSION; |
