summaryrefslogtreecommitdiff
path: root/src/Compositor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Compositor.cpp')
-rw-r--r--src/Compositor.cpp137
1 files changed, 57 insertions, 80 deletions
diff --git a/src/Compositor.cpp b/src/Compositor.cpp
index 3c0a4ec3..8873d7f2 100644
--- a/src/Compositor.cpp
+++ b/src/Compositor.cpp
@@ -405,90 +405,67 @@ void CCompositor::initServer(std::string socketName, int socketFd) {
}
void CCompositor::initAllSignals() {
- m_aqBackend->events.newOutput.registerStaticListener(
- [this](void* p, std::any data) {
- auto output = std::any_cast<SP<Aquamarine::IOutput>>(data);
- Debug::log(LOG, "New aquamarine output with name {}", output->name);
- if (m_initialized)
- onNewMonitor(output);
- else
- pendingOutputs.emplace_back(output);
- },
- nullptr);
-
- m_aqBackend->events.newPointer.registerStaticListener(
- [](void* data, std::any d) {
- auto dev = std::any_cast<SP<Aquamarine::IPointer>>(d);
- Debug::log(LOG, "New aquamarine pointer with name {}", dev->getName());
- g_pInputManager->newMouse(dev);
- g_pInputManager->updateCapabilities();
- },
- nullptr);
-
- m_aqBackend->events.newKeyboard.registerStaticListener(
- [](void* data, std::any d) {
- auto dev = std::any_cast<SP<Aquamarine::IKeyboard>>(d);
- Debug::log(LOG, "New aquamarine keyboard with name {}", dev->getName());
- g_pInputManager->newKeyboard(dev);
- g_pInputManager->updateCapabilities();
- },
- nullptr);
-
- m_aqBackend->events.newTouch.registerStaticListener(
- [](void* data, std::any d) {
- auto dev = std::any_cast<SP<Aquamarine::ITouch>>(d);
- Debug::log(LOG, "New aquamarine touch with name {}", dev->getName());
- g_pInputManager->newTouchDevice(dev);
- g_pInputManager->updateCapabilities();
- },
- nullptr);
+ m_aqBackend->events.newOutput.listenStatic([this](const SP<Aquamarine::IOutput>& output) {
+ Debug::log(LOG, "New aquamarine output with name {}", output->name);
+ if (m_initialized)
+ onNewMonitor(output);
+ else
+ pendingOutputs.emplace_back(output);
+ });
- m_aqBackend->events.newSwitch.registerStaticListener(
- [](void* data, std::any d) {
- auto dev = std::any_cast<SP<Aquamarine::ISwitch>>(d);
- Debug::log(LOG, "New aquamarine switch with name {}", dev->getName());
- g_pInputManager->newSwitch(dev);
- },
- nullptr);
+ m_aqBackend->events.newPointer.listenStatic([](const SP<Aquamarine::IPointer>& dev) {
+ Debug::log(LOG, "New aquamarine pointer with name {}", dev->getName());
+ g_pInputManager->newMouse(dev);
+ g_pInputManager->updateCapabilities();
+ });
- m_aqBackend->events.newTablet.registerStaticListener(
- [](void* data, std::any d) {
- auto dev = std::any_cast<SP<Aquamarine::ITablet>>(d);
- Debug::log(LOG, "New aquamarine tablet with name {}", dev->getName());
- g_pInputManager->newTablet(dev);
- },
- nullptr);
+ m_aqBackend->events.newKeyboard.listenStatic([](const SP<Aquamarine::IKeyboard>& dev) {
+ Debug::log(LOG, "New aquamarine keyboard with name {}", dev->getName());
+ g_pInputManager->newKeyboard(dev);
+ g_pInputManager->updateCapabilities();
+ });
- m_aqBackend->events.newTabletPad.registerStaticListener(
- [](void* data, std::any d) {
- auto dev = std::any_cast<SP<Aquamarine::ITabletPad>>(d);
- Debug::log(LOG, "New aquamarine tablet pad with name {}", dev->getName());
- g_pInputManager->newTabletPad(dev);
- },
- nullptr);
+ m_aqBackend->events.newTouch.listenStatic([](const SP<Aquamarine::ITouch>& dev) {
+ Debug::log(LOG, "New aquamarine touch with name {}", dev->getName());
+ g_pInputManager->newTouchDevice(dev);
+ g_pInputManager->updateCapabilities();
+ });
- if (m_aqBackend->hasSession()) {
- m_aqBackend->session->events.changeActive.registerStaticListener(
- [this](void*, std::any) {
- if (m_aqBackend->session->active) {
- Debug::log(LOG, "Session got activated!");
+ m_aqBackend->events.newSwitch.listenStatic([](const SP<Aquamarine::ISwitch>& dev) {
+ Debug::log(LOG, "New aquamarine switch with name {}", dev->getName());
+ g_pInputManager->newSwitch(dev);
+ });
+
+ m_aqBackend->events.newTablet.listenStatic([](const SP<Aquamarine::ITablet>& dev) {
+ Debug::log(LOG, "New aquamarine tablet with name {}", dev->getName());
+ g_pInputManager->newTablet(dev);
+ });
- m_sessionActive = true;
+ m_aqBackend->events.newTabletPad.listenStatic([](const SP<Aquamarine::ITabletPad>& dev) {
+ Debug::log(LOG, "New aquamarine tablet pad with name {}", dev->getName());
+ g_pInputManager->newTabletPad(dev);
+ });
- for (auto const& m : m_monitors) {
- scheduleFrameForMonitor(m);
- m->applyMonitorRule(&m->m_activeMonitorRule, true);
- }
+ if (m_aqBackend->hasSession()) {
+ m_aqBackend->session->events.changeActive.listenStatic([this] {
+ if (m_aqBackend->session->active) {
+ Debug::log(LOG, "Session got activated!");
- g_pConfigManager->m_wantsMonitorReload = true;
- g_pCursorManager->syncGsettings();
- } else {
- Debug::log(LOG, "Session got deactivated!");
+ m_sessionActive = true;
- m_sessionActive = false;
+ for (auto const& m : m_monitors) {
+ scheduleFrameForMonitor(m);
+ m->applyMonitorRule(&m->m_activeMonitorRule, true);
}
- },
- nullptr);
+
+ g_pConfigManager->m_wantsMonitorReload = true;
+ g_pCursorManager->syncGsettings();
+ } else {
+ Debug::log(LOG, "Session got deactivated!");
+
+ m_sessionActive = false;
+ }
+ });
}
}
@@ -1973,7 +1950,7 @@ void CCompositor::swapActiveWorkspaces(PHLMONITOR pMonitorA, PHLMONITOR pMonitor
const auto PWORKSPACEB = pMonitorB->m_activeWorkspace;
PWORKSPACEA->m_monitor = pMonitorB;
- PWORKSPACEA->m_events.monitorChange.emit();
+ PWORKSPACEA->m_events.monitorChanged.emit();
for (auto const& w : m_windows) {
if (w->m_workspace == PWORKSPACEA) {
@@ -1998,7 +1975,7 @@ void CCompositor::swapActiveWorkspaces(PHLMONITOR pMonitorA, PHLMONITOR pMonitor
}
PWORKSPACEB->m_monitor = pMonitorA;
- PWORKSPACEB->m_events.monitorChange.emit();
+ PWORKSPACEB->m_events.monitorChanged.emit();
for (auto const& w : m_windows) {
if (w->m_workspace == PWORKSPACEB) {
@@ -2178,7 +2155,7 @@ void CCompositor::moveWorkspaceToMonitor(PHLWORKSPACE pWorkspace, PHLMONITOR pMo
// move the workspace
pWorkspace->m_monitor = pMonitor;
- pWorkspace->m_events.monitorChange.emit();
+ pWorkspace->m_events.monitorChanged.emit();
for (auto const& w : m_windows) {
if (w->m_workspace == pWorkspace) {
@@ -2227,9 +2204,9 @@ void CCompositor::moveWorkspaceToMonitor(PHLWORKSPACE pWorkspace, PHLMONITOR pMo
pMonitor->m_activeWorkspace = pWorkspace;
if (oldWorkspace)
- oldWorkspace->m_events.activeChange.emit();
+ oldWorkspace->m_events.activeChanged.emit();
- pWorkspace->m_events.activeChange.emit();
+ pWorkspace->m_events.activeChanged.emit();
g_pLayoutManager->getCurrentLayout()->recalculateMonitor(pMonitor->m_id);