summaryrefslogtreecommitdiff
path: root/src/xwayland
diff options
context:
space:
mode:
authoroutfoxxed <outfoxxed@outfoxxed.me>2025-07-08 09:56:40 -0700
committerGitHub <noreply@github.com>2025-07-08 18:56:40 +0200
commit78e9eddfb6bfbc6b103fc60c9831b23ef252886b (patch)
tree4daf06580d89dec717a282c4ec8729285241c8e8 /src/xwayland
parent2f34ef141b0728857d2a6f777c608dfe4c207733 (diff)
core: use new typed signals from hu (#10853)
Diffstat (limited to 'src/xwayland')
-rw-r--r--src/xwayland/XSurface.cpp8
-rw-r--r--src/xwayland/XSurface.hpp20
-rw-r--r--src/xwayland/XWM.cpp13
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;