aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/wlr/types/wlr_xdg_shell_v6.h1
-rw-r--r--types/wlr_xdg_shell_v6.c4
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);