diff options
-rw-r--r-- | include/wlr/types/wlr_xdg_shell_v6.h | 1 | ||||
-rw-r--r-- | types/wlr_xdg_shell_v6.c | 4 |
2 files changed, 4 insertions, 1 deletions
diff --git a/include/wlr/types/wlr_xdg_shell_v6.h b/include/wlr/types/wlr_xdg_shell_v6.h index 6ac84cef..1d881791 100644 --- a/include/wlr/types/wlr_xdg_shell_v6.h +++ b/include/wlr/types/wlr_xdg_shell_v6.h @@ -126,6 +126,7 @@ struct wlr_xdg_surface_v6 { struct wl_signal commit; struct wl_signal destroy; struct wl_signal ping_timeout; + struct wl_signal ack_configure; struct wl_signal request_maximize; struct wl_signal request_fullscreen; diff --git a/types/wlr_xdg_shell_v6.c b/types/wlr_xdg_shell_v6.c index 8bb48a24..20cb0bc6 100644 --- a/types/wlr_xdg_shell_v6.c +++ b/types/wlr_xdg_shell_v6.c @@ -813,8 +813,9 @@ static void xdg_surface_ack_configure(struct wl_client *client, surface->configured = true; surface->configure_serial = serial; - free(configure); + + wl_signal_emit(&surface->events.ack_configure, surface); } static void xdg_surface_set_window_geometry(struct wl_client *client, @@ -1154,6 +1155,7 @@ static void xdg_shell_get_xdg_surface(struct wl_client *wl_client, wl_signal_init(&surface->events.commit); wl_signal_init(&surface->events.destroy); wl_signal_init(&surface->events.ping_timeout); + wl_signal_init(&surface->events.ack_configure); wl_signal_add(&surface->surface->events.destroy, &surface->surface_destroy_listener); |