diff --git a/dwl.c b/dwl.c index 26fb3a0..216deb5 100644 --- a/dwl.c +++ b/dwl.c @@ -1014,8 +1014,8 @@ commitpopup(struct wl_listener *listener, void *data) return; } box = type == LayerShell ? l->mon->m : c->mon->w; - box.x -= (type == LayerShell ? l->scene->node.x : c->geom.x); - box.y -= (type == LayerShell ? l->scene->node.y : c->geom.y); + box.x -= (type == LayerShell ? l->scene->node.x : c->geom.x - c->surface.xdg->geometry.x); + box.y -= (type == LayerShell ? l->scene->node.y : c->geom.y - c->surface.xdg->geometry.y); wlr_xdg_popup_unconstrain_from_box(popup, &box); wl_list_remove(&listener->link); free(listener);