core: bind shadow immediate in initialize_backend
This simplifies the logic a bit since we know a shadow is always bound (if needed) when the screen is redirected. Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
This commit is contained in:
parent
d5e8cf655c
commit
0fc6f9aee2
|
@ -758,7 +758,18 @@ static bool initialize_backend(session_t *ps) {
|
|||
log_debug("Marking window %#010x (%s) for update after "
|
||||
"redirection",
|
||||
w->base.id, w->name);
|
||||
w->flags |= WIN_FLAGS_IMAGES_STALE;
|
||||
if (w->shadow) {
|
||||
struct color c = {
|
||||
.red = ps->o.shadow_red,
|
||||
.green = ps->o.shadow_green,
|
||||
.blue = ps->o.shadow_blue,
|
||||
.alpha = ps->o.shadow_opacity,
|
||||
};
|
||||
win_bind_shadow(ps->backend_data, w, c,
|
||||
ps->gaussian_map);
|
||||
}
|
||||
|
||||
w->flags |= WIN_FLAGS_PIXMAP_STALE;
|
||||
ps->pending_updates = true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -292,8 +292,8 @@ static inline bool win_bind_pixmap(struct backend_base *b, struct managed_win *w
|
|||
return true;
|
||||
}
|
||||
|
||||
static inline bool win_bind_shadow(struct backend_base *b, struct managed_win *w,
|
||||
struct color c, struct conv *kernel) {
|
||||
bool win_bind_shadow(struct backend_base *b, struct managed_win *w, struct color c,
|
||||
struct conv *kernel) {
|
||||
assert(!w->shadow_image);
|
||||
assert(w->shadow);
|
||||
w->shadow_image = b->ops->render_shadow(b, w->widthb, w->heightb, kernel, c.red,
|
||||
|
|
|
@ -256,6 +256,9 @@ void win_process_updates(struct session *ps, struct managed_win *_w);
|
|||
void win_process_flags(session_t *ps, struct managed_win *w);
|
||||
/// Queue an update on a window. A series of sanity checks are performed
|
||||
void win_queue_update(struct managed_win *_w, enum win_update update);
|
||||
/// Bind a shadow to the window, with color `c` and shadow kernel `kernel`
|
||||
bool win_bind_shadow(struct backend_base *b, struct managed_win *w, struct color c,
|
||||
struct conv *kernel);
|
||||
|
||||
/// Start the unmap of a window. We cannot unmap immediately since we might need to fade
|
||||
/// the window out.
|
||||
|
|
Loading…
Reference in New Issue