From 50a6f1668868c6e102a70316b6b6c5ab4ce62d94 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Thu, 30 May 2013 14:07:13 +0100 Subject: [PATCH] block comp win configure updates for borders: attempt #2 this time flag client to update pixmap and geom when the window change comes through --- src/bin/e_comp.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 3565b11c8..9a88519cf 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -3022,7 +3022,16 @@ _e_comp_configure(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) } } - if (!((cw->x == ev->x) && (cw->y == ev->y) && + if (cw->bd) + { + if ((cw->pw != cw->bd->client.w) || (cw->ph != cw->bd->client.h)) + { + /* border resize callback will handle configure */ + cw->geom_update = cw->needpix = 1; + _e_comp_win_render_queue(cw); + } + } + else if (!((cw->x == ev->x) && (cw->y == ev->y) && (cw->w == ev->w) && (cw->h == ev->h) && (cw->border == ev->border))) { @@ -3503,7 +3512,7 @@ _e_comp_bd_resize(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) E_Event_Border_Resize *ev = event; E_Comp_Win *cw = _e_comp_win_find(ev->border->win); if (!cw) return ECORE_CALLBACK_PASS_ON; - _e_comp_win_configure(cw, cw->x, cw->y, ev->border->w, ev->border->h, cw->border); + _e_comp_win_configure(cw, cw->x, cw->y, ev->border->w - e_border_inset_width_get(ev->border), ev->border->h - e_border_inset_height_get(ev->border), cw->border); return ECORE_CALLBACK_PASS_ON; }