On Fri, 5 Dec 2014 14:36:42 +0100 Marek Chalupa <mchqwe...@gmail.com> wrote:
> When we call move_client on toytoolkit client when intializing, then the > wl_buffer is NULL and we don't want that. Actually, toytoolkit clients > don't need attaching and commiting the surface at all, because it has > been already done. > > Signed-off-by: Marek Chalupa <mchqwe...@gmail.com> > --- > tests/weston-test-client-helper.c | 23 +++++++++++------------ > 1 file changed, 11 insertions(+), 12 deletions(-) > > diff --git a/tests/weston-test-client-helper.c > b/tests/weston-test-client-helper.c > index ea54c9e..abc41e9 100644 > --- a/tests/weston-test-client-helper.c > +++ b/tests/weston-test-client-helper.c > @@ -91,18 +91,17 @@ move_client(struct client *client, int x, int y) > client->surface->y = y; > wl_test_move_surface(client->test->wl_test, surface->wl_surface, > surface->x, surface->y); > - /* The attach here is necessary because commit() will call congfigure > - * only on surfaces newly attached, and the one that sets the surface > - * position is the configure. */ > - wl_surface_attach(surface->wl_surface, surface->wl_buffer, 0, 0); > - wl_surface_damage(surface->wl_surface, 0, 0, surface->width, > - surface->height); > - > - frame_callback_set(surface->wl_surface, &done); > - > - wl_surface_commit(surface->wl_surface); > - > - frame_callback_wait(client, &done); > + if (!client->toytoolkit) { > + wl_surface_attach(surface->wl_surface, surface->wl_buffer, 0, > 0); > + wl_surface_damage(surface->wl_surface, 0, 0, > + surface->width, surface->height); > + > + frame_callback_set(surface->wl_surface, &done); > + wl_surface_commit(surface->wl_surface); > + frame_callback_wait(client, &done); > + } else { > + client_roundtrip(client); > + } > } > > int This patch doesn't apply. Needs a rebase nowadays? Yeah, anyway... reiterating my earlier comments, do we even need move_client() for non-test-shell cases? Maybe it would be better to have a simple deterministic window placement algorithm in shell.c, and then just query where the window is. I'm more and more starting to think, that maybe wl_test should be able to give a special test role to a surface, and then we can manipulate only those in special ways, so we don't have to fight with the real shell. I think this whole attach & commit thing was to kick the move, and the wait makes sure the window actually gets mapped, before we e.g. start to wiggle the pointer to check if we get enter/leave events. (Perhaps because a compositor repaint is needed to map the window, so protocol message ordering is not enough?) Would it make sense to go towards a more separated design: use the test role for testing low-level features like pointer focus, and then use toytoolkit to test toytoolkit features and the real shell? Thanks, pq _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel