From 32028bae98aa2957f39b50079f18c28b370e5bfc Mon Sep 17 00:00:00 2001 From: speckitor Date: Mon, 26 Jan 2026 12:11:35 +0700 Subject: [PATCH] display new windows on center --- flake.nix | 1 + src/xdg-toplevel.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/flake.nix b/flake.nix index 2170ea3..944a80f 100644 --- a/flake.nix +++ b/flake.nix @@ -47,6 +47,7 @@ pkg-config gnumake gcc + gdb wayland wayland-protocols wayland-scanner diff --git a/src/xdg-toplevel.c b/src/xdg-toplevel.c index 5d13b29..386cdd7 100644 --- a/src/xdg-toplevel.c +++ b/src/xdg-toplevel.c @@ -24,6 +24,11 @@ void xdg_toplevel_commit(struct wl_listener *listener, void *data) int32_t bw = toplevel->border_width; toplevel->geometry.width = toplevel->xdg_toplevel->base->geometry.width + 2 * bw; toplevel->geometry.height = toplevel->xdg_toplevel->base->geometry.height + 2 * bw; + + int32_t rel_x = toplevel->output->geometry.x + toplevel->output->geometry.width / 2 - toplevel->geometry.width / 2; + int32_t rel_y = toplevel->output->geometry.y + toplevel->output->geometry.height / 2 - toplevel->geometry.height / 2; + toplevel->geometry.x += abs(rel_x); + toplevel->geometry.y += abs(rel_y); } absinthe_toplevel_set_position(toplevel, toplevel->geometry.x, toplevel->geometry.y);