diff options
author | Derek Foreman <derekf@osg.samsung.com> | 2016-04-04 13:08:55 -0500 |
---|---|---|
committer | Derek Foreman <derekf@osg.samsung.com> | 2016-04-04 13:08:55 -0500 |
commit | fe73aa59a2c27e5c3359b073629c6779e19c004c (patch) | |
tree | 03eef5bc4774c4e1ab8f76cd2766392b0358b18a | |
parent | c937248eac0d0996f3cbc31a348b92c8baac2ec3 (diff) | |
download | efl-fe73aa59a2c27e5c3359b073629c6779e19c004c.tar.gz |
wayland-egl: Fix use after freedevs/derekf/www_fixes
eng_window_use() uses outbuf->redirect, so the clever code in
eng_outbuf_reconfigure that avoided setting it to NULL to check
if we needed to recreate the redirect was not very clever at all.
-rw-r--r-- | src/modules/evas/engines/wayland_egl/evas_wl_main.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/modules/evas/engines/wayland_egl/evas_wl_main.c b/src/modules/evas/engines/wayland_egl/evas_wl_main.c index 00c0f9086e..532e749bf2 100644 --- a/src/modules/evas/engines/wayland_egl/evas_wl_main.c +++ b/src/modules/evas/engines/wayland_egl/evas_wl_main.c @@ -317,17 +317,22 @@ eng_window_resurf(Outbuf *gw) void eng_outbuf_reconfigure(Outbuf *ob, int w, int h, int rot, Outbuf_Depth depth EINA_UNUSED) { + Eina_Bool redirected; + if (!ob->model) ob->model = wobbly_create(0, 0, w, h); wobbly_resize(ob->model, w, h); + + redirected = !!ob->redirect; if (ob->redirect) glsym_evas_gl_common_context_unredirect(ob->redirect); + ob->redirect = NULL; ob->w = w; ob->h = h; ob->rot = rot; eng_window_use(ob); glsym_evas_gl_common_context_resize(ob->gl_context, w, h, rot); - if (ob->redirect) + if (redirected) ob->redirect = glsym_evas_gl_common_context_redirect(ob->gl_context); if (ob->win) |