From 1b56cc4e99c391a94fc05a24e1f71c8e425168f1 Mon Sep 17 00:00:00 2001 From: Vaxry <43317083+vaxerski@users.noreply.github.com> Date: Sun, 19 Feb 2023 20:54:53 +0000 Subject: Added an Event Hook System (#1578) * added an eventHookSystem * Add all socket2 events to hooks --- src/layout/DwindleLayout.cpp | 1 + src/layout/IHyprLayout.cpp | 1 + src/layout/MasterLayout.cpp | 3 ++- 3 files changed, 4 insertions(+), 1 deletion(-) (limited to 'src/layout') diff --git a/src/layout/DwindleLayout.cpp b/src/layout/DwindleLayout.cpp index 85993676..9e2a6012 100644 --- a/src/layout/DwindleLayout.cpp +++ b/src/layout/DwindleLayout.cpp @@ -741,6 +741,7 @@ void CHyprDwindleLayout::fullscreenRequestForWindow(CWindow* pWindow, eFullscree PWORKSPACE->m_bHasFullscreenWindow = !PWORKSPACE->m_bHasFullscreenWindow; g_pEventManager->postEvent(SHyprIPCEvent{"fullscreen", std::to_string((int)on)}); + EMIT_HOOK_EVENT("fullscreen", pWindow); if (!pWindow->m_bIsFullscreen) { // if it got its fullscreen disabled, set back its node if it had one diff --git a/src/layout/IHyprLayout.cpp b/src/layout/IHyprLayout.cpp index 24e76035..d62556d5 100644 --- a/src/layout/IHyprLayout.cpp +++ b/src/layout/IHyprLayout.cpp @@ -322,6 +322,7 @@ void IHyprLayout::changeWindowFloatingMode(CWindow* pWindow) { // event g_pEventManager->postEvent(SHyprIPCEvent{"changefloatingmode", getFormat("%x,%d", pWindow, (int)TILED)}); + EMIT_HOOK_EVENT("changeFloatingMode", pWindow); if (!TILED) { const auto PNEWMON = g_pCompositor->getMonitorFromVector(pWindow->m_vRealPosition.vec() + pWindow->m_vRealSize.vec() / 2.f); diff --git a/src/layout/MasterLayout.cpp b/src/layout/MasterLayout.cpp index 94d26c29..e349d650 100644 --- a/src/layout/MasterLayout.cpp +++ b/src/layout/MasterLayout.cpp @@ -228,7 +228,7 @@ void CHyprMasterLayout::calculateWorkspace(const int& ws) { if (getNodesOnWorkspace(PWORKSPACE->m_iID) < 2) { PMASTERNODE->position = PMONITOR->vecReservedTopLeft + PMONITOR->vecPosition; PMASTERNODE->size = Vector2D(PMONITOR->vecSize.x - PMONITOR->vecReservedTopLeft.x - PMONITOR->vecReservedBottomRight.x, - PMONITOR->vecSize.y - PMONITOR->vecReservedBottomRight.y - PMONITOR->vecReservedTopLeft.y); + PMONITOR->vecSize.y - PMONITOR->vecReservedBottomRight.y - PMONITOR->vecReservedTopLeft.y); applyNodeDataToWindow(PMASTERNODE); return; } else if (PWORKSPACEDATA->orientation == ORIENTATION_LEFT || PWORKSPACEDATA->orientation == ORIENTATION_RIGHT) { @@ -524,6 +524,7 @@ void CHyprMasterLayout::fullscreenRequestForWindow(CWindow* pWindow, eFullscreen PWORKSPACE->m_bHasFullscreenWindow = !PWORKSPACE->m_bHasFullscreenWindow; g_pEventManager->postEvent(SHyprIPCEvent{"fullscreen", std::to_string((int)on)}); + EMIT_HOOK_EVENT("fullscreen", pWindow); if (!pWindow->m_bIsFullscreen) { // if it got its fullscreen disabled, set back its node if it had one -- cgit v1.2.3