aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorallusive-dev <[email protected]>2023-11-04 17:49:36 +1100
committerallusive-dev <[email protected]>2023-11-04 17:49:36 +1100
commit927c507effb47b35fd4d98c4818fb64f96d5bf5e (patch)
tree8a8b6162f4b61040ef61d0ebd39d24ca12435bd9 /src
parentupdated default values (diff)
downloadcompfy-927c507effb47b35fd4d98c4818fb64f96d5bf5e.tar.xz
compfy-927c507effb47b35fd4d98c4818fb64f96d5bf5e.zip
added inactive and active opacity exclude lists
Diffstat (limited to 'src')
-rw-r--r--src/win.c42
1 files changed, 37 insertions, 5 deletions
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;
+ }
}
}