diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/config.c | 4 | ||||
| -rw-r--r-- | src/config.h | 1 | ||||
| -rw-r--r-- | src/win.c | 12 |
3 files changed, 13 insertions, 4 deletions
diff --git a/src/config.c b/src/config.c index d0724e8..754a7d3 100644 --- a/src/config.c +++ b/src/config.c @@ -785,8 +785,10 @@ enum open_window_animation parse_open_window_animation(const char *src) { enum wm_support parse_wm_support(const char *src) { if (strcmp(src, "none") == 0) { return WM_SUPPORT_NONE; - }else if (strcmp(src, "awesome") == 0) { + } else if (strcmp(src, "awesome") == 0) { return WM_SUPPORT_AWESOME; + } else if (strcmp(src, "dwm") == 0) { + return WM_SUPPORT_DWM; } return WM_SUPPORT_INVALID; } diff --git a/src/config.h b/src/config.h index e9f4172..d5b2107 100644 --- a/src/config.h +++ b/src/config.h @@ -57,6 +57,7 @@ enum open_window_animation { enum wm_support { WM_SUPPORT_NONE = 0, WM_SUPPORT_AWESOME, + WM_SUPPORT_DWM, WM_SUPPORT_INVALID, }; @@ -1143,9 +1143,15 @@ double win_calc_opacity_target(session_t *ps, const struct managed_win *w) { opacity = ps->o.inactive_opacity; } - // respect inactive override - 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)) { + opacity = ps->o.inactive_opacity; + } + } else { + if (ps->o.inactive_opacity_override && !w->focused) { + opacity = ps->o.inactive_opacity; + } } return opacity; |