From 00423bb738d568f4903412fdabdf53e2c63fde7c Mon Sep 17 00:00:00 2001 From: jmanc3 Date: Tue, 2 Sep 2025 04:49:24 -0500 Subject: plugins: expose csd functionality (#11551) --- src/protocols/XDGDecoration.cpp | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'src/protocols/XDGDecoration.cpp') diff --git a/src/protocols/XDGDecoration.cpp b/src/protocols/XDGDecoration.cpp index b093fbb8..0339db6b 100644 --- a/src/protocols/XDGDecoration.cpp +++ b/src/protocols/XDGDecoration.cpp @@ -17,15 +17,35 @@ CXDGDecoration::CXDGDecoration(SP resource_, wl_resou } LOGM(LOG, "setMode: {}. {} MODE_SERVER_SIDE as reply.", modeString, (mode == ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE ? "Sending" : "Ignoring and sending")); - m_resource->sendConfigure(ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE); + auto sendMode = xdgModeOnRequestCSD(mode); + m_resource->sendConfigure(sendMode); + mostRecentlySent = sendMode; + mostRecentlyRequested = mode; }); m_resource->setUnsetMode([this](CZxdgToplevelDecorationV1*) { LOGM(LOG, "unsetMode. Sending MODE_SERVER_SIDE."); - m_resource->sendConfigure(ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE); + auto sendMode = xdgModeOnReleaseCSD(); + m_resource->sendConfigure(sendMode); + mostRecentlySent = sendMode; + mostRecentlyRequested = 0; }); - m_resource->sendConfigure(ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE); + auto sendMode = xdgDefaultModeCSD(); + m_resource->sendConfigure(sendMode); + mostRecentlySent = sendMode; +} + +zxdgToplevelDecorationV1Mode CXDGDecoration::xdgDefaultModeCSD() { + return ZXDG_TOPLEVEL_DECORATION_V1_MODE_SERVER_SIDE; +} + +zxdgToplevelDecorationV1Mode CXDGDecoration::xdgModeOnRequestCSD(uint32_t modeRequestedByClient) { + return xdgDefaultModeCSD(); +} + +zxdgToplevelDecorationV1Mode CXDGDecoration::xdgModeOnReleaseCSD() { + return xdgDefaultModeCSD(); } bool CXDGDecoration::good() { @@ -71,4 +91,4 @@ void CXDGDecorationProtocol::onGetDecoration(CZxdgDecorationManagerV1* pMgr, uin m_decorations.erase(xdgToplevel); return; } -} \ No newline at end of file +} -- cgit v1.2.3