summaryrefslogtreecommitdiff
path: root/src/render/decorations/IHyprWindowDecoration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/decorations/IHyprWindowDecoration.cpp')
-rw-r--r--src/render/decorations/IHyprWindowDecoration.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/render/decorations/IHyprWindowDecoration.cpp b/src/render/decorations/IHyprWindowDecoration.cpp
index 3ad5591f..a87c334a 100644
--- a/src/render/decorations/IHyprWindowDecoration.cpp
+++ b/src/render/decorations/IHyprWindowDecoration.cpp
@@ -2,12 +2,29 @@
#include "../../Window.hpp"
+IHyprWindowDecoration::IHyprWindowDecoration(CWindow* pWindow) {
+ m_pWindow = pWindow;
+}
+
IHyprWindowDecoration::~IHyprWindowDecoration() {}
SWindowDecorationExtents IHyprWindowDecoration::getWindowDecorationReservedArea() {
return SWindowDecorationExtents{};
}
+CRegion IHyprWindowDecoration::getWindowDecorationRegion() {
+ const SWindowDecorationExtents RESERVED = getWindowDecorationReservedArea();
+ const int BORDERSIZE = m_pWindow->getRealBorderSize();
+ return CRegion(m_pWindow->m_vRealPosition.vec().x - (BORDERSIZE + RESERVED.topLeft.x) * (int)(RESERVED.topLeft.x != 0),
+ m_pWindow->m_vRealPosition.vec().y - (BORDERSIZE + RESERVED.topLeft.y) * (int)(RESERVED.topLeft.y != 0),
+ m_pWindow->m_vRealSize.vec().x + (BORDERSIZE + RESERVED.topLeft.x) * (int)(RESERVED.topLeft.x != 0) +
+ (BORDERSIZE + RESERVED.bottomRight.x) * (int)(RESERVED.bottomRight.x != 0),
+ m_pWindow->m_vRealSize.vec().y + (BORDERSIZE + RESERVED.topLeft.y) * (int)(RESERVED.topLeft.y != 0) +
+ (BORDERSIZE + RESERVED.bottomRight.y) * (int)(RESERVED.bottomRight.y != 0))
+ .subtract(CRegion(m_pWindow->m_vRealPosition.vec().x - BORDERSIZE, m_pWindow->m_vRealPosition.vec().y - BORDERSIZE, m_pWindow->m_vRealSize.vec().x + 2 * BORDERSIZE,
+ m_pWindow->m_vRealSize.vec().y + 2 * BORDERSIZE));
+}
+
bool IHyprWindowDecoration::allowsInput() {
return false;
-} \ No newline at end of file
+}