aboutsummaryrefslogtreecommitdiff
path: root/src/win.c
diff options
context:
space:
mode:
authorallusive-dev <[email protected]>2023-11-03 16:38:39 +1100
committerallusive-dev <[email protected]>2023-11-03 16:38:39 +1100
commit3543f63d0794b5290863e9f33af8d49745ad9a72 (patch)
tree504c54a16b18594fbbc44c3aa3cae03d45695023 /src/win.c
parentsample config revamp (diff)
downloadcompfy-1.2.6.tar.xz
compfy-1.2.6.zip
DWM: Fixing opacity options1.2.6
Diffstat (limited to 'src/win.c')
-rw-r--r--src/win.c80
1 files changed, 67 insertions, 13 deletions
diff --git a/src/win.c b/src/win.c
index 65d1b60..0741ed8 100644
--- a/src/win.c
+++ b/src/win.c
@@ -1129,31 +1129,85 @@ double win_calc_opacity_target(session_t *ps, const struct managed_win *w) {
// Try obeying opacity property and window type opacity firstly
if (w->has_opacity_prop) {
opacity = ((double)w->opacity_prop) / OPAQUE;
- } else if (w->opacity_is_set) {
+ } else if (w->opacity_is_set && !ps->o.inactive_opacity_override) {
opacity = w->opacity_set;
+ } 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;
+ } 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;
+ }
+ }
+ } else {
+ if (win_is_focused_raw(ps, w)) {
+ opacity = w->opacity_set;
+ } else if (!w->focused) {
+ if (ps->o.inactive_opacity == 1.0) {
+ opacity = w->opacity_set;
+ } else {
+ opacity = ps->o.inactive_opacity;
+ }
+ }
+ }
} else if (!safe_isnan(ps->o.wintype_option[w->window_type].opacity)) {
opacity = ps->o.wintype_option[w->window_type].opacity;
} else {
+
// Respect active_opacity only when the window is physically
// focused
- if (win_is_focused_raw(ps, w))
+ if (win_is_focused_raw(ps, w)) {
+ // if (c2_match(ps, w, ps->o.active_opacity_blacklist, NULL)) {
+ // opacity = 1.0;
+ // } else {
opacity = ps->o.active_opacity;
- else if (!w->focused)
+ // }
+ } else if (!w->focused) {
// Respect inactive_opacity in some cases
+ // 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;
- }
-
- // Respect inactive opacity, with support for DWM.
- if (ps->o.support_for_wm == WM_SUPPORT_DWM) {
- if (ps->o.inactive_opacity_override && !win_is_focused_raw(ps, w)) {
- opacity = ps->o.inactive_opacity;
- }
- } else {
- if (ps->o.inactive_opacity_override && !w->focused) {
- opacity = ps->o.inactive_opacity;
+ // }
}
}
+ // // Respect inactive opacity, with support for DWM.
+ // if (ps->o.support_for_wm == WM_SUPPORT_DWM) {
+ // if (ps->o.inactive_opacity_override && !win_is_focused_raw(ps, w)) {
+ // // 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 if (!ps->o.inactive_opacity_override && !win_is_focused_raw(ps, w)) {
+ // // 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 {
+ // if (ps->o.inactive_opacity_override && !w->focused) {
+ // opacity = ps->o.inactive_opacity;
+ // }
+ // }
+
return opacity;
}