mirror of
https://github.com/hyprwm/Hyprland
synced 2024-11-23 01:46:00 +01:00
Add windowrules for noblur and noshadow (#884)
This commit is contained in:
parent
1ccb0b5f96
commit
ca2d2db0ef
5 changed files with 12 additions and 1 deletions
|
@ -24,6 +24,8 @@ struct SWindowAdditionalConfigData {
|
||||||
bool forceOpaque = false;
|
bool forceOpaque = false;
|
||||||
bool forceAllowsInput = false;
|
bool forceAllowsInput = false;
|
||||||
bool forceNoAnims = false;
|
bool forceNoAnims = false;
|
||||||
|
bool forceNoBorder = false;
|
||||||
|
bool forceNoShadow = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
class CWindow {
|
class CWindow {
|
||||||
|
|
|
@ -753,6 +753,8 @@ bool windowRuleValid(const std::string& RULE) {
|
||||||
&& RULE.find("monitor") != 0
|
&& RULE.find("monitor") != 0
|
||||||
&& RULE != "nofocus"
|
&& RULE != "nofocus"
|
||||||
&& RULE != "noblur"
|
&& RULE != "noblur"
|
||||||
|
&& RULE != "noshadow"
|
||||||
|
&& RULE != "noborder"
|
||||||
&& RULE != "center"
|
&& RULE != "center"
|
||||||
&& RULE != "opaque"
|
&& RULE != "opaque"
|
||||||
&& RULE != "forceinput"
|
&& RULE != "forceinput"
|
||||||
|
|
|
@ -161,6 +161,10 @@ void Events::listener_mapWindow(void* owner, void* data) {
|
||||||
PWINDOW->m_bNoFocus = true;
|
PWINDOW->m_bNoFocus = true;
|
||||||
} else if (r.szRule == "noblur") {
|
} else if (r.szRule == "noblur") {
|
||||||
PWINDOW->m_sAdditionalConfigData.forceNoBlur = true;
|
PWINDOW->m_sAdditionalConfigData.forceNoBlur = true;
|
||||||
|
} else if (r.szRule == "noborder") {
|
||||||
|
PWINDOW->m_sAdditionalConfigData.forceNoBorder = true;
|
||||||
|
} else if (r.szRule == "noshadow") {
|
||||||
|
PWINDOW->m_sAdditionalConfigData.forceNoShadow = true;
|
||||||
} else if (r.szRule == "fullscreen") {
|
} else if (r.szRule == "fullscreen") {
|
||||||
requestsFullscreen = true;
|
requestsFullscreen = true;
|
||||||
} else if (r.szRule == "opaque") {
|
} else if (r.szRule == "opaque") {
|
||||||
|
|
|
@ -799,7 +799,7 @@ void CHyprOpenGLImpl::renderBorder(wlr_box* box, const CColor& col, int round) {
|
||||||
RASSERT((box->width > 0 && box->height > 0), "Tried to render rect with width/height < 0!");
|
RASSERT((box->width > 0 && box->height > 0), "Tried to render rect with width/height < 0!");
|
||||||
RASSERT(m_RenderData.pMonitor, "Tried to render rect without begin()!");
|
RASSERT(m_RenderData.pMonitor, "Tried to render rect without begin()!");
|
||||||
|
|
||||||
if (!pixman_region32_not_empty(m_RenderData.pDamage))
|
if (!pixman_region32_not_empty(m_RenderData.pDamage) || (m_pCurrentWindow && m_pCurrentWindow->m_sAdditionalConfigData.forceNoBorder))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
static auto *const PBORDERSIZE = &g_pConfigManager->getConfigValuePtr("general:border_size")->intValue;
|
static auto *const PBORDERSIZE = &g_pConfigManager->getConfigValuePtr("general:border_size")->intValue;
|
||||||
|
|
|
@ -59,6 +59,9 @@ void CHyprDropShadowDecoration::draw(CMonitor* pMonitor, float a, const Vector2D
|
||||||
if (!m_pWindow->m_sSpecialRenderData.decorate)
|
if (!m_pWindow->m_sSpecialRenderData.decorate)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (m_pWindow->m_sAdditionalConfigData.forceNoShadow)
|
||||||
|
return;
|
||||||
|
|
||||||
static auto *const PSHADOWS = &g_pConfigManager->getConfigValuePtr("decoration:drop_shadow")->intValue;
|
static auto *const PSHADOWS = &g_pConfigManager->getConfigValuePtr("decoration:drop_shadow")->intValue;
|
||||||
static auto *const PSHADOWSIZE = &g_pConfigManager->getConfigValuePtr("decoration:shadow_range")->intValue;
|
static auto *const PSHADOWSIZE = &g_pConfigManager->getConfigValuePtr("decoration:shadow_range")->intValue;
|
||||||
static auto *const PROUNDING = &g_pConfigManager->getConfigValuePtr("decoration:rounding")->intValue;
|
static auto *const PROUNDING = &g_pConfigManager->getConfigValuePtr("decoration:rounding")->intValue;
|
||||||
|
|
Loading…
Reference in a new issue