From 8ec5e52e061cfefab0bfed354a8b98ea2f4fb775 Mon Sep 17 00:00:00 2001
From: Leonardo Hernández Hernández <leohdz172@proton.me>
Date: Sun, 25 Aug 2024 11:33:54 -0600
Subject: fix crash when a client is created while all outputs are disabled

---
 CHANGELOG.md | 3 +++
 dwl.c        | 6 ++++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index f59ba5b..07c9ee4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,9 @@
 ### Deprecated
 ### Removed
 ### Fixed
+
+* Crash when a client is created while all outputs are disabled.
+
 ### Security
 ### Contributors
 
diff --git a/dwl.c b/dwl.c
index 8a587d1..3171123 100644
--- a/dwl.c
+++ b/dwl.c
@@ -800,8 +800,10 @@ commitnotify(struct wl_listener *listener, void *data)
 		 * a wrong monitor.
 		 */
 		applyrules(c);
-		wlr_surface_set_preferred_buffer_scale(client_surface(c), (int)ceilf(c->mon->wlr_output->scale));
-		wlr_fractional_scale_v1_notify_scale(client_surface(c), c->mon->wlr_output->scale);
+		if (c->mon) {
+			wlr_surface_set_preferred_buffer_scale(client_surface(c), (int)ceilf(c->mon->wlr_output->scale));
+			wlr_fractional_scale_v1_notify_scale(client_surface(c), c->mon->wlr_output->scale);
+		}
 		setmon(c, NULL, 0); /* Make sure to reapply rules in mapnotify() */
 
 		wlr_xdg_toplevel_set_wm_capabilities(c->surface.xdg->toplevel, WLR_XDG_TOPLEVEL_WM_CAPABILITIES_FULLSCREEN);
-- 
cgit v1.2.3