ecore-wl2: Implement function pointer for configure acknowledge

We need a way to store the configure serial, and make the
xdg_surface_ack_configure callback be callable by Ecore_Evas at the
appropriate time. This fixes an issue where previously we were
(potentially) sending a configure acknowledgment while not applying
the configure due to deferred rendering.

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This commit is contained in:
Chris Michael 2015-12-04 14:12:06 -05:00
parent 49e645d695
commit 298d66377e
2 changed files with 7 additions and 2 deletions

View File

@ -117,6 +117,9 @@ struct _Ecore_Wl2_Window
struct xdg_surface *xdg_surface;
struct xdg_popup *xdg_popup;
uint32_t configure_serial;
void (*configure_ack)(struct xdg_surface *surface, uint32_t serial);
Eina_Rectangle saved;
Eina_Rectangle geometry;
Eina_Rectangle opaque;

View File

@ -112,10 +112,10 @@ _xdg_surface_cb_configure(void *data, struct xdg_surface *xdg_surface EINA_UNUSE
}
}
win->configure_serial = serial;
if ((w > 0) && (h > 0))
_ecore_wl2_window_configure_send(win, w, h, 0);
xdg_surface_ack_configure(win->xdg_surface, serial);
}
static void
@ -314,6 +314,8 @@ ecore_wl2_window_show(Ecore_Wl2_Window *window)
xdg_surface_set_user_data(window->xdg_surface, window);
xdg_surface_add_listener(window->xdg_surface,
&_xdg_surface_listener, window);
window->configure_ack = xdg_surface_ack_configure;
}
else if ((disp->wl.wl_shell) && (!window->wl_shell_surface))
{