aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2017-11-25 15:27:41 -0500
committerDrew DeVault <sir@cmpwn.com>2017-11-25 15:27:41 -0500
commitf2b225ad0b6c0d118fa98b9c9691ab7729e37326 (patch)
tree8a431ca5f0c0a1ea703b27e5d47af8c6bce8a20b
parentaf3dea6d432d084d2c1e7ae55c3144806c591629 (diff)
Add xdg_shell ack_configure event
-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);