diff options
| author | allusive-dev <[email protected]> | 2023-11-03 16:38:39 +1100 |
|---|---|---|
| committer | allusive-dev <[email protected]> | 2023-11-03 16:38:39 +1100 |
| commit | 3543f63d0794b5290863e9f33af8d49745ad9a72 (patch) | |
| tree | 504c54a16b18594fbbc44c3aa3cae03d45695023 /src/win.c | |
| parent | sample config revamp (diff) | |
| download | compfy-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.c | 80 |
1 files changed, 67 insertions, 13 deletions
@@ -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; } |