~ruther/dwl

0f48c9552eaec29e1aac0165bc0e472b05e17ecd — Guido Cella 4 years ago 0016a20
handle the x11 configure event

This fixes the window size of old games in Wine.
1 files changed, 13 insertions(+), 0 deletions(-)

M dwl.c
M dwl.c => dwl.c +13 -0
@@ 96,6 96,7 @@ typedef struct {
	} surface;
#ifdef XWAYLAND
	struct wl_listener activate;
	struct wl_listener configure;
#endif
	struct wl_listener commit;
	struct wl_listener map;


@@ 335,6 336,7 @@ static struct wl_listener request_set_sel = {.notify = setsel};

#ifdef XWAYLAND
static void activatex11(struct wl_listener *listener, void *data);
static void configurex11(struct wl_listener *listener, void *data);
static void createnotifyx11(struct wl_listener *listener, void *data);
static Atom getatom(xcb_connection_t *xc, const char *name);
static void renderindependents(struct wlr_output *output, struct timespec *now);


@@ 2389,6 2391,15 @@ activatex11(struct wl_listener *listener, void *data)
}

void
configurex11(struct wl_listener *listener, void *data)
{
	Client *c = wl_container_of(listener, c, configure);
	struct wlr_xwayland_surface_configure_event *event = data;
	wlr_xwayland_surface_configure(c->surface.xwayland,
			event->x, event->y, event->width, event->height);
}

void
createnotifyx11(struct wl_listener *listener, void *data)
{
	struct wlr_xwayland_surface *xwayland_surface = data;


@@ 2407,6 2418,8 @@ createnotifyx11(struct wl_listener *listener, void *data)
	wl_signal_add(&xwayland_surface->events.unmap, &c->unmap);
	c->activate.notify = activatex11;
	wl_signal_add(&xwayland_surface->events.request_activate, &c->activate);
	c->configure.notify = configurex11;
	wl_signal_add(&xwayland_surface->events.request_configure, &c->configure);
	c->destroy.notify = destroynotify;
	wl_signal_add(&xwayland_surface->events.destroy, &c->destroy);
}

Do not follow this link