From da087b8c7130f5dd85879cc9c4ba79b64abe895a Mon Sep 17 00:00:00 2001 From: Palanix Date: Sat, 2 Oct 2021 16:33:21 +0200 Subject: [PATCH] Fix Popups appearing outside the window --- dwl.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/dwl.c b/dwl.c index 6303c25..afb8921 100644 --- a/dwl.c +++ b/dwl.c @@ -882,8 +882,19 @@ createnotify(struct wl_listener *listener, void *data) struct wlr_xdg_surface *xdg_surface = data; Client *c; - if (xdg_surface->role != WLR_XDG_SURFACE_ROLE_TOPLEVEL) + if (xdg_surface->role != WLR_XDG_SURFACE_ROLE_TOPLEVEL) { + Client *sel = selclient(); + struct wlr_box pop_box = + { + .x = sel->geom.x - selmon->m.x, + .y = sel->geom.y - selmon->m.y, + .width = sel->geom.width, + .height = sel->geom.height, + }; + wlr_xdg_popup_unconstrain_from_box(xdg_surface->popup, &pop_box); return; + } + /* Allocate a Client for this surface */ c = xdg_surface->data = calloc(1, sizeof(*c));