mirror of
https://github.com/hyprwm/Hyprland
synced 2024-12-22 23:29:48 +01:00
added a forceinput rule
This commit is contained in:
parent
aaa834d0c3
commit
5d63152219
3 changed files with 10 additions and 0 deletions
|
@ -21,6 +21,7 @@ struct SWindowAdditionalConfigData {
|
||||||
int rounding = -1; // -1 means no
|
int rounding = -1; // -1 means no
|
||||||
bool forceNoBlur = false;
|
bool forceNoBlur = false;
|
||||||
bool forceOpaque = false;
|
bool forceOpaque = false;
|
||||||
|
bool forceAllowsInput = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
class CWindow {
|
class CWindow {
|
||||||
|
|
|
@ -742,6 +742,7 @@ void CConfigManager::handleWindowRule(const std::string& command, const std::str
|
||||||
&& RULE != "noblur"
|
&& RULE != "noblur"
|
||||||
&& RULE != "center"
|
&& RULE != "center"
|
||||||
&& RULE != "opaque"
|
&& RULE != "opaque"
|
||||||
|
&& RULE != "forceinput"
|
||||||
&& RULE != "fullscreen"
|
&& RULE != "fullscreen"
|
||||||
&& RULE.find("animation") != 0
|
&& RULE.find("animation") != 0
|
||||||
&& RULE.find("rounding") != 0
|
&& RULE.find("rounding") != 0
|
||||||
|
|
|
@ -159,6 +159,8 @@ void Events::listener_mapWindow(void* owner, void* data) {
|
||||||
requestsFullscreen = true;
|
requestsFullscreen = true;
|
||||||
} else if (r.szRule == "opaque") {
|
} else if (r.szRule == "opaque") {
|
||||||
PWINDOW->m_sAdditionalConfigData.forceOpaque = true;
|
PWINDOW->m_sAdditionalConfigData.forceOpaque = true;
|
||||||
|
} else if (r.szRule == "forceinput") {
|
||||||
|
PWINDOW->m_sAdditionalConfigData.forceAllowsInput = true;
|
||||||
} else if (r.szRule.find("rounding") == 0) {
|
} else if (r.szRule.find("rounding") == 0) {
|
||||||
try {
|
try {
|
||||||
PWINDOW->m_sAdditionalConfigData.rounding = std::stoi(r.szRule.substr(r.szRule.find_first_of(' ') + 1));
|
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;
|
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) {
|
if (!PWINDOW->m_bNoFocus && !PWINDOW->m_bNoInitialFocus && PWINDOW->m_iX11Type != 2) {
|
||||||
g_pCompositor->focusWindow(PWINDOW);
|
g_pCompositor->focusWindow(PWINDOW);
|
||||||
PWINDOW->m_fActiveInactiveAlpha.setValueAndWarp(*PACTIVEALPHA);
|
PWINDOW->m_fActiveInactiveAlpha.setValueAndWarp(*PACTIVEALPHA);
|
||||||
|
|
Loading…
Reference in a new issue