summaryrefslogtreecommitdiff
path: root/src/events/Windows.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/events/Windows.cpp')
-rw-r--r--src/events/Windows.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/events/Windows.cpp b/src/events/Windows.cpp
index 63028c91..93ad18e5 100644
--- a/src/events/Windows.cpp
+++ b/src/events/Windows.cpp
@@ -159,6 +159,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 == "forceinput") {
+ PWINDOW->m_sAdditionalConfigData.forceAllowsInput = true;
} else if (r.szRule.find("rounding") == 0) {
try {
PWINDOW->m_sAdditionalConfigData.rounding = std::stoi(r.szRule.substr(r.szRule.find_first_of(' ') + 1));
@@ -271,6 +273,12 @@ void Events::listener_mapWindow(void* owner, void* data) {
const auto PFOCUSEDWINDOWPREV = g_pCompositor->m_pLastWindow;
+ if (PWINDOW->m_sAdditionalConfigData.forceAllowsInput) {
+ PWINDOW->m_bNoFocus = false;
+ PWINDOW->m_bNoInitialFocus = false;
+ PWINDOW->m_bX11ShouldntFocus = false;
+ }
+
if (!PWINDOW->m_bNoFocus && !PWINDOW->m_bNoInitialFocus && PWINDOW->m_iX11Type != 2) {
g_pCompositor->focusWindow(PWINDOW);
PWINDOW->m_fActiveInactiveAlpha.setValueAndWarp(*PACTIVEALPHA);