From 5846e0febe4e0dd530f41dd1ebc46a7b14969e50 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 11 Feb 2015 17:57:43 -0500 Subject: [PATCH] unset wl client placed value on first commit to force placement many clients still have not had a first commit prior to running new_client placement, so this will force a second run of that algo to prevent placing as though a client's size = 1x1 --- src/bin/e_comp_wl.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index c63c1c386..c4ecfb857 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2503,12 +2503,14 @@ e_comp_wl_surface_commit(E_Client *ec) E_Pixmap *ep; Eina_Rectangle *dmg; Eina_Tiler *src, *tmp; + Eina_Bool first; if (!(ep = ec->pixmap)) return EINA_FALSE; _e_comp_wl_client_evas_init(ec); if (ec->focused && ec->comp_data->focus_update) _e_comp_wl_client_focus(ec); + first = !e_pixmap_usable_get(ep); /* mark the pixmap as usable or not */ e_pixmap_usable_set(ep, (ec->comp_data->pending.buffer != NULL)); @@ -2577,6 +2579,12 @@ e_comp_wl_surface_commit(E_Client *ec) e_client_util_move_resize_without_frame(ec, x, y, nw, nh); if (ec->new_client) ec->placed = placed; + else if (first && ec->placed) + { + ec->x = ec->y = 0; + ec->placed = 0; + ec->new_client = 1; + } } if (!ec->comp_data->mapped)