From 46ae075430017ccd4a58d63a166fe1e696d3f379 Mon Sep 17 00:00:00 2001
From: Leonardo Hernández Hernández <leohdz172@proton.me>
Date: Wed, 5 Jun 2024 00:42:43 -0600
Subject: set preferred scale on creation (LayerShell)

---
 dwl.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/dwl.c b/dwl.c
index 00e9cc1..521b07a 100644
--- a/dwl.c
+++ b/dwl.c
@@ -71,6 +71,7 @@
 #define MAX(A, B)               ((A) > (B) ? (A) : (B))
 #define MIN(A, B)               ((A) < (B) ? (A) : (B))
 #define ROUND(X)                ((int)((X < 0) ? (X - 0.5) : (X + 0.5)))
+#define CEIL(X)                 ((int)((X < 0) ? (X) : ((int)X == X) ? (X) : ((int)X + 1)))
 #define CLEANMASK(mask)         (mask & ~WLR_MODIFIER_CAPS)
 #define VISIBLEON(C, M)         ((M) && (C)->mon == (M) && ((C)->tags & (M)->tagset[(M)->seltags]))
 #define LENGTH(X)               (sizeof X / sizeof X[0])
@@ -884,6 +885,8 @@ createlayersurface(struct wl_listener *listener, void *data)
 
 	wl_list_insert(&l->mon->layers[layer_surface->pending.layer],&l->link);
 	wlr_surface_send_enter(surface, layer_surface->output);
+	wlr_fractional_scale_v1_notify_scale(surface, l->mon->wlr_output->scale);
+	wlr_surface_set_preferred_buffer_scale(surface, CEIL(l->mon->wlr_output->scale));
 
 	/* Temporarily set the layer's current state to pending
 	 * so that we can easily arrange it
-- 
cgit v1.2.3