diff options
| author | Vaxry <vaxry@vaxry.net> | 2025-03-30 22:34:46 +0100 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2025-03-30 22:38:30 +0100 |
| commit | 79b526a04199a05d1e9b0bbb035ba20b652a7a2b (patch) | |
| tree | b77501dc75a8d6d6fd44dd23a5d9989229ed341a /src | |
| parent | 075bbecabd6d41c02ebb823d91774a95cc9d50da (diff) | |
socket2: add minimized event for foreign-wlr
ref #995
Diffstat (limited to 'src')
| -rw-r--r-- | src/protocols/ForeignToplevelWlr.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/protocols/ForeignToplevelWlr.cpp b/src/protocols/ForeignToplevelWlr.cpp index e50c85d9..945d802d 100644 --- a/src/protocols/ForeignToplevelWlr.cpp +++ b/src/protocols/ForeignToplevelWlr.cpp @@ -4,6 +4,7 @@ #include "protocols/core/Output.hpp" #include "render/Renderer.hpp" #include "../managers/HookSystemManager.hpp" +#include "../managers/EventManager.hpp" CForeignToplevelHandleWlr::CForeignToplevelHandleWlr(SP<CZwlrForeignToplevelHandleV1> resource_, PHLWINDOW pWindow_) : resource(resource_), pWindow(pWindow_) { if UNLIKELY (!resource_->resource()) @@ -95,6 +96,30 @@ CForeignToplevelHandleWlr::CForeignToplevelHandleWlr(SP<CZwlrForeignToplevelHand g_pCompositor->changeWindowFullscreenModeClient(PWINDOW, FSMODE_MAXIMIZED, false); }); + resource->setSetMinimized([this](CZwlrForeignToplevelHandleV1* p) { + const auto PWINDOW = pWindow.lock(); + + if UNLIKELY (!PWINDOW) + return; + + if UNLIKELY (!PWINDOW->m_bIsMapped) + return; + + g_pEventManager->postEvent(SHyprIPCEvent{.event = "minimized", .data = std::format("{:x},1", (uintptr_t)PWINDOW.get())}); + }); + + resource->setUnsetMinimized([this](CZwlrForeignToplevelHandleV1* p) { + const auto PWINDOW = pWindow.lock(); + + if UNLIKELY (!PWINDOW) + return; + + if UNLIKELY (!PWINDOW->m_bIsMapped) + return; + + g_pEventManager->postEvent(SHyprIPCEvent{.event = "minimized", .data = std::format("{:x},0", (uintptr_t)PWINDOW.get())}); + }); + resource->setClose([this](CZwlrForeignToplevelHandleV1* p) { const auto PWINDOW = pWindow.lock(); |
