summaryrefslogtreecommitdiff
path: root/src/desktop/view/Window.hpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2026-04-29 17:25:21 +0100
committerVaxry <43317083+vaxerski@users.noreply.github.com>2026-04-29 22:05:32 +0100
commit55a1611fd8150d7bb8d1b6e2b8cc95ffccf31ea2 (patch)
tree88ae2d9bcee6d327c6af97e2afb920020f16432b /src/desktop/view/Window.hpp
parenta92dae5af7bad3af53f6d6b689d71ee900077569 (diff)
desktop/window: expand hidden into proper states
Diffstat (limited to 'src/desktop/view/Window.hpp')
-rw-r--r--src/desktop/view/Window.hpp22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/desktop/view/Window.hpp b/src/desktop/view/Window.hpp
index 0a468ee3..a5d89c58 100644
--- a/src/desktop/view/Window.hpp
+++ b/src/desktop/view/Window.hpp
@@ -89,6 +89,13 @@ namespace Desktop::View {
WINDOW_ALPHA_LAST,
};
+ enum eWindowInputBlockReason : uint32_t {
+ INPUT_BLOCK_NONE = 0,
+ INPUT_BLOCK_GROUP_INACTIVE = 1 << 0,
+ INPUT_BLOCK_MONOCLE_INACTIVE = 1 << 1,
+ INPUT_BLOCK_BELOW_FULLSCREEN = 1 << 2,
+ };
+
struct SWindowActiveEvent {
PHLWINDOW window = nullptr;
eFocusReason reason = sc<eFocusReason>(0) /* unknown */;
@@ -304,13 +311,19 @@ namespace Desktop::View {
void onUnmap();
void onMap();
void setHidden(bool hidden);
- bool isHidden();
+ bool isHidden() const;
+ void setInputBlocked(eWindowInputBlockReason reason, bool blocked);
+ bool isInputBlocked() const;
+ bool isInputBlocked(eWindowInputBlockReason reason) const;
+ bool acceptsInput() const;
PHLANIMVAR<float>& alpha(eWindowAlpha type);
const PHLANIMVAR<float>& alpha(eWindowAlpha type) const;
float alphaValue(eWindowAlpha type) const;
float alphaGoal(eWindowAlpha type) const;
float alphaTotal() const;
float alphaTotalWithout(eWindowAlpha type) const;
+ float effectiveAlpha() const;
+ bool visibleByAlpha() const;
void updateDecorationValues();
SBoxExtents getFullWindowReservedArea();
Vector2D middle();
@@ -414,9 +427,10 @@ namespace Desktop::View {
void unmanagedSetGeometry();
// For hidden windows and stuff
- bool m_hidden = false;
- bool m_suspended = false;
- WORKSPACEID m_lastWorkspace = WORKSPACE_INVALID;
+ bool m_hidden = false;
+ bool m_suspended = false;
+ WORKSPACEID m_lastWorkspace = WORKSPACE_INVALID;
+ uint32_t m_inputBlockReasons = INPUT_BLOCK_NONE;
};
inline bool valid(PHLWINDOW w) {