From 927c507effb47b35fd4d98c4818fb64f96d5bf5e Mon Sep 17 00:00:00 2001 From: allusive-dev Date: Sat, 4 Nov 2023 17:49:36 +1100 Subject: added inactive and active opacity exclude lists --- src/win.c | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/win.c b/src/win.c index 1d50313..8c85449 100644 --- a/src/win.c +++ b/src/win.c @@ -1134,12 +1134,24 @@ double win_calc_opacity_target(session_t *ps, const struct managed_win *w) { } else if (w->opacity_is_set && ps->o.inactive_opacity_override) { if (ps->o.support_for_wm == WM_SUPPORT_DWM) { if (win_is_focused_raw(ps, w)) { - opacity = w->opacity_set; + if (c2_match(ps, w, ps->o.active_opacity_blacklist, NULL)) { + opacity = 1.0; + } else { + opacity = w->opacity_set; + } } else if (!win_is_focused_raw(ps, w)) { if (ps->o.inactive_opacity == 1.0) { opacity = w->opacity_set; } else { - opacity = ps->o.inactive_opacity; + if (c2_match(ps, w, ps->o.inactive_opacity_blacklist, NULL)) { + if (c2_match(ps, w, ps->o.active_opacity_blacklist, NULL)) { + opacity = 1.0; + } else { + opacity = ps->o.active_opacity; + } + } else { + opacity = ps->o.inactive_opacity; + } } } } else { @@ -1149,7 +1161,15 @@ double win_calc_opacity_target(session_t *ps, const struct managed_win *w) { if (ps->o.inactive_opacity == 1.0) { opacity = w->opacity_set; } else { - opacity = ps->o.inactive_opacity; + if (c2_match(ps, w, ps->o.inactive_opacity_blacklist, NULL)) { + if (c2_match(ps, w, ps->o.active_opacity_blacklist, NULL)) { + opacity = 1.0; + } else { + opacity = ps->o.active_opacity; + } + } else { + opacity = ps->o.inactive_opacity; + } } } } @@ -1160,9 +1180,21 @@ double win_calc_opacity_target(session_t *ps, const struct managed_win *w) { // Respect active_opacity only when the window is physically // focused if (win_is_focused_raw(ps, w)) { - opacity = ps->o.active_opacity; + if (c2_match(ps, w, ps->o.active_opacity_blacklist, NULL)) { + opacity = 1.0; + } else { + opacity = ps->o.active_opacity; + } } else if (!w->focused) { - opacity = ps->o.inactive_opacity; + if (c2_match(ps, w, ps->o.inactive_opacity_blacklist, NULL)) { + if (c2_match(ps, w, ps->o.active_opacity_blacklist, NULL)) { + opacity = 1.0; + } else { + opacity = ps->o.active_opacity; + } + } else { + opacity = ps->o.inactive_opacity; + } } } -- cgit v1.2.3