From 7dc0a6194f6e46f586753b53e831588bff6b7a08 Mon Sep 17 00:00:00 2001 From: Derek Christ Date: Sat, 3 Sep 2022 19:55:31 +0200 Subject: [PATCH] Resizing from compositor --- common/state.h | 2 ++ compositor | Bin 76664 -> 77624 bytes compositor.c | 31 +++++++++++++++++++++++++++++-- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/common/state.h b/common/state.h index 4ac3f62..66ac252 100644 --- a/common/state.h +++ b/common/state.h @@ -58,4 +58,6 @@ struct client_state struct xkb_state *xkb_state; struct xkb_context *xkb_context; struct xkb_keymap *xkb_keymap; + int width, height; + bool closed; }; diff --git a/compositor b/compositor index 29e109e200a31bf5abe0cf2cebb62d13d17eb136..a01205798f1798a4e6d0961270e709435cf717a7 100755 GIT binary patch delta 22983 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 Lp0&*A$x{9o)9aOn delta 21463 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 @@ -114,6 +114,24 @@ static void wl_surface_frame_done(void *data, struct wl_callback *cb, uint32_t t state->last_frame = time; } +static void xdg_toplevel_configure(void *data, struct xdg_toplevel *xdg_toplevel, int32_t width, int32_t height, + struct wl_array *states) +{ + struct client_state *state = data; + if (width == 0 || height == 0) { + /* Compositor is deferring to us */ + return; + } + state->width = width; + state->height = height; +} + +static void xdg_toplevel_close(void *data, struct xdg_toplevel *xdg_toplevel) +{ + struct client_state *state = data; + state->closed = true; +} + static const struct wl_registry_listener wl_registry_listener = { .global = registry_handle_global, .global_remove = registry_handle_global_remove, @@ -140,6 +158,11 @@ static const struct wl_callback_listener wl_surface_frame_listener = { .done = wl_surface_frame_done, }; +static const struct xdg_toplevel_listener xdg_toplevel_listener = { + .configure = xdg_toplevel_configure, + .close = xdg_toplevel_close, +}; + static void wl_buffer_release(void *data, struct wl_buffer *wl_buffer) { /* Sent by the compositor when it's no longer using this buffer */ @@ -152,7 +175,8 @@ static const struct wl_buffer_listener wl_buffer_listener = { static struct wl_buffer *draw_frame(struct client_state *state) { - const int width = 640, height = 480; + int width = state->width; + int height = state->height; int stride = width * 4; int size = stride * height; @@ -197,6 +221,8 @@ static struct wl_buffer *draw_frame(struct client_state *state) int main(int argc, char *argv[]) { struct client_state state = {0}; + state.width = 640; + state.height = 480; state.wl_display = wl_display_connect(NULL); state.xkb_context = xkb_context_new(XKB_CONTEXT_NO_FLAGS); @@ -214,6 +240,7 @@ int main(int argc, char *argv[]) xdg_surface_add_listener(state.xdg_surface, &xdg_surface_listener, &state); state.xdg_toplevel = xdg_surface_get_toplevel(state.xdg_surface); + xdg_toplevel_add_listener(state.xdg_toplevel, &xdg_toplevel_listener, &state); xdg_toplevel_set_title(state.xdg_toplevel, "Example client"); wl_surface_commit(state.wl_surface);