unsigned int states;
} Ecore_Wl2_Event_Window_Configure;
+typedef struct _Ecore_Wl2_Event_Window_Configure_Complete
+{
+ unsigned int win;
+} Ecore_Wl2_Event_Window_Configure_Complete;
+
typedef struct _Ecore_Wl2_Event_Sync_Done
{
Ecore_Wl2_Display *display;
EAPI extern int ECORE_WL2_EVENT_SEAT_CAPABILITIES_CHANGED; /** @since 1.19 */
EAPI extern int ECORE_WL2_EVENT_DEVICE_ADDED; /** @since 1.19 */
EAPI extern int ECORE_WL2_EVENT_DEVICE_REMOVED; /** @since 1.19 */
+EAPI extern int ECORE_WL2_EVENT_WINDOW_CONFIGURE_COMPLETE; /** @since 1.19 */
/**
* @file
EAPI int ECORE_WL2_EVENT_SEAT_CAPABILITIES_CHANGED = 0;
EAPI int ECORE_WL2_EVENT_DEVICE_ADDED = 0;
EAPI int ECORE_WL2_EVENT_DEVICE_REMOVED = 0;
+EAPI int ECORE_WL2_EVENT_WINDOW_CONFIGURE_COMPLETE = 0;
EAPI int _ecore_wl2_event_window_www = -1;
EAPI int _ecore_wl2_event_window_www_drag = -1;
ECORE_WL2_EVENT_DEVICE_REMOVED = ecore_event_type_new();
_ecore_wl2_event_window_www = ecore_event_type_new();
_ecore_wl2_event_window_www_drag = ecore_event_type_new();
+ ECORE_WL2_EVENT_WINDOW_CONFIGURE_COMPLETE = ecore_event_type_new();
}
if (!no_session_recovery)
no_session_recovery = !!getenv("EFL_NO_WAYLAND_SESSION_RECOVERY");
ECORE_WL2_EVENT_SEAT_CAPABILITIES_CHANGED = 0;
ECORE_WL2_EVENT_DEVICE_ADDED = 0;
ECORE_WL2_EVENT_DEVICE_REMOVED = 0;
+ ECORE_WL2_EVENT_WINDOW_CONFIGURE_COMPLETE = 0;
/* shutdown Ecore_Event */
ecore_event_shutdown();
_zxdg_surface_cb_configure(void *data, struct zxdg_surface_v6 *zxdg_surface, uint32_t serial)
{
Ecore_Wl2_Window *window;
+ Ecore_Wl2_Event_Window_Configure_Complete *ev;
zxdg_surface_v6_ack_configure(zxdg_surface, serial);
window = data;
+ if (!window->pending.configure) return;
window->pending.configure = EINA_FALSE;
+
+ ev = calloc(1, sizeof(Ecore_Wl2_Event_Window_Configure_Complete));
+ if (!ev) return;
+
+ ev->win = window->id;
+ ecore_event_add(ECORE_WL2_EVENT_WINDOW_CONFIGURE_COMPLETE, ev, NULL, NULL);
}
static const struct zxdg_surface_v6_listener _zxdg_surface_listener =