discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=5ecc0ca0a1c3b809d957e4d0fdbf7a4996aa94c1
commit 5ecc0ca0a1c3b809d957e4d0fdbf7a4996aa94c1 Author: Mike Blumenkrantz <[email protected]> Date: Wed Feb 11 17:00:28 2015 -0500 use accurate xy coords for wl surface configures --- src/bin/e_comp_wl.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 2ab1661..a0f3a0c 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -1467,17 +1467,20 @@ _e_comp_wl_subsurface_commit_from_cache(E_Client *ec) /* check for any pending attachments */ if (sdata->cached.new_attach) { - int nw, nh; + int x, y, nw, nh; nw = ec->client.w; nh = ec->client.h; if (nw == 0) nw = cdata->pending.w; if (nh == 0) nh = cdata->pending.h; + if (ec->changes.pos) + e_comp_object_frame_xy_adjust(ec->frame, ec->x, ec->y, &x, &y); + else + x = ec->client.x, y = ec->client.y; /* if the client has a shell configure, call it */ if ((cdata->shell.surface) && (cdata->shell.configure)) - cdata->shell.configure(cdata->shell.surface, - ec->client.x, ec->client.y, nw, nh); + cdata->shell.configure(cdata->shell.surface, x, y, nw, nh); } /* check if we need to map this surface */ @@ -2523,18 +2526,20 @@ e_comp_wl_surface_commit(E_Client *ec) /* check for any pending attachments */ if (ec->comp_data->pending.new_attach) { - int nw, nh; + int x, y, nw, nh; e_pixmap_size_get(ec->pixmap, &nw, &nh); + if (ec->changes.pos) + e_comp_object_frame_xy_adjust(ec->frame, ec->x, ec->y, &x, &y); + else + x = ec->client.x, y = ec->client.y; /* if the client has a shell configure, call it */ if ((ec->comp_data->shell.surface) && (ec->comp_data->shell.configure)) - ec->comp_data->shell.configure(ec->comp_data->shell.surface, - ec->client.x, ec->client.y, - nw, nh); + ec->comp_data->shell.configure(ec->comp_data->shell.surface, x, y, nw, nh); else - e_client_util_move_resize_without_frame(ec, ec->client.x, ec->client.y, nw, nh); + e_client_util_move_resize_without_frame(ec, x, y, nw, nh); } /* check if we need to map this surface */ --
