summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-10-20 22:38:49 +0100
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-10-20 22:38:49 +0100
commitce5f025428f4e5adfcbace82a86238dfd0b57959 (patch)
tree04f418d9fa2d53d4ef5a251001d2d7c476fbcce3 /src
parent6df6aea1ba4f120863ed47d61000847ccd547ac3 (diff)
T1C: window dance compat
Diffstat (limited to 'src')
-rw-r--r--src/Window.hpp1
-rw-r--r--src/config/ConfigManager.cpp1
-rw-r--r--src/events/Windows.cpp5
3 files changed, 6 insertions, 1 deletions
diff --git a/src/Window.hpp b/src/Window.hpp
index 05359cf1..236ee47b 100644
--- a/src/Window.hpp
+++ b/src/Window.hpp
@@ -26,6 +26,7 @@ struct SWindowAdditionalConfigData {
bool forceNoAnims = false;
bool forceNoBorder = false;
bool forceNoShadow = false;
+ bool windowDanceCompat = false;
};
class CWindow {
diff --git a/src/config/ConfigManager.cpp b/src/config/ConfigManager.cpp
index 40a36eb3..fd19931e 100644
--- a/src/config/ConfigManager.cpp
+++ b/src/config/ConfigManager.cpp
@@ -761,6 +761,7 @@ bool windowRuleValid(const std::string& RULE) {
&& RULE != "fullscreen"
&& RULE != "pin"
&& RULE != "noanim"
+ && RULE != "windowdance"
&& RULE.find("animation") != 0
&& RULE.find("rounding") != 0
&& RULE.find("workspace") != 0);
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
index 825e24d5..a7c9bd30 100644
--- a/src/events/Windows.cpp
+++ b/src/events/Windows.cpp
@@ -169,6 +169,8 @@ void Events::listener_mapWindow(void* owner, void* data) {
requestsFullscreen = true;
} else if (r.szRule == "opaque") {
PWINDOW->m_sAdditionalConfigData.forceOpaque = true;
+ } else if (r.szRule == "windowdance") {
+ PWINDOW->m_sAdditionalConfigData.windowDanceCompat = true;
} else if (r.szRule == "forceinput") {
PWINDOW->m_sAdditionalConfigData.forceAllowsInput = true;
} else if (r.szRule == "pin") {
@@ -737,7 +739,8 @@ void Events::listener_configureX11(void* owner, void* data) {
PWINDOW->m_bCreatedOverFullscreen = true;
- g_pInputManager->refocus();
+ if (!PWINDOW->m_sAdditionalConfigData.windowDanceCompat)
+ g_pInputManager->refocus();
g_pHyprRenderer->damageWindow(PWINDOW);