diff --git a/src/compton.c b/src/compton.c index 69aeddd..079f871 100644 --- a/src/compton.c +++ b/src/compton.c @@ -1979,10 +1979,9 @@ map_win(Display *dpy, Window id, mark_client_win(dpy, w, cw); } } - else if (opts.frame_opacity) { - // Refetch frame extents just in case it changes when the window is - // unmapped - get_frame_extents(dpy, w, w->client_win); + else { + // Re-mark client window here + mark_client_win(dpy, w, w->client_win); } // Workaround for _NET_WM_WINDOW_TYPE for Openbox menus, which is diff --git a/src/compton.h b/src/compton.h index b66e773..5d3ad26 100644 --- a/src/compton.h +++ b/src/compton.h @@ -343,6 +343,7 @@ typedef struct _win { struct _win *prev_trans; } win; +/// VSync modes. typedef enum { VSYNC_NONE, VSYNC_DRM, @@ -354,7 +355,7 @@ typedef int (*f_WaitVideoSync) (int, int, unsigned *); typedef int (*f_GetVideoSync) (unsigned *); #endif -typedef struct _options { +typedef struct { // General char *display; /// Whether to try to detect WM windows and mark them as focused. @@ -958,6 +959,10 @@ wid_bounding_shaped(Display *dpy, Window wid) { return False; } +/** + * Determine if a window change affects reg_ignore and set + * reg_ignore_expire accordingly. + */ static inline void update_reg_ignore_expire(const win *w) { if (w->to_paint && WINDOW_SOLID == w->mode)