From 7b664de74e508d518f2e24252bc756aa868bb0be Mon Sep 17 00:00:00 2001 From: Yuxuan Shui Date: Mon, 4 Mar 2019 00:09:05 +0000 Subject: [PATCH] win: Remove win::pixmap Signed-off-by: Yuxuan Shui --- src/compton.c | 8 +++----- src/win.c | 18 +++++++++--------- src/win.h | 2 -- 3 files changed, 12 insertions(+), 16 deletions(-) diff --git a/src/compton.c b/src/compton.c index 348afd4..aa09d2d 100644 --- a/src/compton.c +++ b/src/compton.c @@ -2002,9 +2002,9 @@ redir_start(session_t *ps) { for (win *w = ps->list; w; w = w->next) { if (w->a.map_state == XCB_MAP_STATE_VIEWABLE) { - w->pixmap = xcb_generate_id(ps->c); - xcb_composite_name_window_pixmap(ps->c, w->id, w->pixmap); - w->win_image = ps->backend_data->ops->bind_pixmap(ps->backend_data, w->pixmap, + auto pixmap = xcb_generate_id(ps->c); + xcb_composite_name_window_pixmap(ps->c, w->id, pixmap); + w->win_image = ps->backend_data->ops->bind_pixmap(ps->backend_data, pixmap, x_get_visual_info(ps->c, w->a.visual), true); if (w->shadow) { w->shadow_image = @@ -2077,10 +2077,8 @@ redir_stop(session_t *ps) { if (w->shadow_image) { ps->backend_data->ops->release_image(ps->backend_data, w->shadow_image); } - xcb_free_pixmap(ps->c, w->pixmap); w->win_image = NULL; w->shadow_image = NULL; - w->pixmap = XCB_NONE; } else { assert(!w->win_image); assert(!w->shadow_image); diff --git a/src/win.c b/src/win.c index 1a65833..a9dd82d 100644 --- a/src/win.c +++ b/src/win.c @@ -625,9 +625,9 @@ void win_on_win_size_change(session_t *ps, win *w) { if (w->shadow_image) { ps->backend_data->ops->release_image(ps->backend_data, w->shadow_image); } - w->pixmap = xcb_generate_id(ps->c); - xcb_composite_name_window_pixmap(ps->c, w->id, w->pixmap); - w->win_image = ps->backend_data->ops->bind_pixmap(ps->backend_data, w->pixmap, x_get_visual_info(ps->c, w->a.visual), true); + auto pixmap = xcb_generate_id(ps->c); + xcb_composite_name_window_pixmap(ps->c, w->id, pixmap); + w->win_image = ps->backend_data->ops->bind_pixmap(ps->backend_data, pixmap, x_get_visual_info(ps->c, w->a.visual), true); if (w->shadow) { w->shadow_image = ps->backend_data->ops->render_shadow(ps->backend_data, w->widthb, w->heightb, ps->gaussian_map, @@ -1263,9 +1263,9 @@ void win_update_bounding_shape(session_t *ps, win *w) { if (w->shadow_image) { ps->backend_data->ops->release_image(ps->backend_data, w->shadow_image); } - w->pixmap = xcb_generate_id(ps->c); - xcb_composite_name_window_pixmap(ps->c, w->id, w->pixmap); - w->win_image = ps->backend_data->ops->bind_pixmap(ps->backend_data, w->pixmap, x_get_visual_info(ps->c, w->a.visual), true); + auto pixmap = xcb_generate_id(ps->c); + xcb_composite_name_window_pixmap(ps->c, w->id, pixmap); + w->win_image = ps->backend_data->ops->bind_pixmap(ps->backend_data, pixmap, x_get_visual_info(ps->c, w->a.visual), true); if (w->shadow) { w->shadow_image = ps->backend_data->ops->render_shadow(ps->backend_data, w->widthb, w->heightb, ps->gaussian_map, @@ -1653,9 +1653,9 @@ void map_win(session_t *ps, win *w) { // TODO win_update_bounding_shape below will immediately // reinit w->win_data, not very efficient if (ps->redirected && ps->o.experimental_backends) { - w->pixmap = xcb_generate_id(ps->c); - xcb_composite_name_window_pixmap(ps->c, w->id, w->pixmap); - w->win_image = ps->backend_data->ops->bind_pixmap(ps->backend_data, w->pixmap, x_get_visual_info(ps->c, w->a.visual), true); + auto pixmap = xcb_generate_id(ps->c); + xcb_composite_name_window_pixmap(ps->c, w->id, pixmap); + w->win_image = ps->backend_data->ops->bind_pixmap(ps->backend_data, pixmap, x_get_visual_info(ps->c, w->a.visual), true); if (w->shadow) { w->shadow_image = ps->backend_data->ops->render_shadow(ps->backend_data, w->widthb, diff --git a/src/win.h b/src/win.h index e9bb577..1e855b5 100644 --- a/src/win.h +++ b/src/win.h @@ -128,8 +128,6 @@ struct win { // TODO rethink reg_ignore // Core members - /// Named pixmap attached to this window - xcb_pixmap_t pixmap; /// ID of the top-level frame window. xcb_window_t id; /// The "mapped state" of this window, doesn't necessary