From f2c59f8608218ea3270ee106d93af0cbcf9d831c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 4 Sep 2020 17:56:40 +0200 Subject: [PATCH 1/2] wayland: register xdg-output interface on pre-existing output objects The XDG output manager object may arrive *after* output objects. In this case, we need to register the pre-existing output objects with the XDG output manager. This fixes an issue with some monitors having a DPI value of 0 on Gnome/mutter, which resulted in incorrect font sizes. --- wayland.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/wayland.c b/wayland.c index ac8dc273..dce240d3 100644 --- a/wayland.c +++ b/wayland.c @@ -796,6 +796,13 @@ handle_global(void *data, struct wl_registry *registry, wayl->xdg_output_manager = wl_registry_bind( wayl->registry, name, &zxdg_output_manager_v1_interface, min(version, 2)); + + tll_foreach(wayl->monitors, it) { + struct monitor *mon = &it->item; + mon->xdg = zxdg_output_manager_v1_get_xdg_output( + wayl->xdg_output_manager, mon->output); + zxdg_output_v1_add_listener(mon->xdg, &xdg_output_listener, mon); + } } else if (strcmp(interface, wl_output_interface.name) == 0) { From 26d37b330583da33635ac194f26f0f5dd6ec2eec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Fri, 4 Sep 2020 18:08:37 +0200 Subject: [PATCH 2/2] changelog: output objects received before XDG output manager --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 537e7d88..823b90a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -99,6 +99,8 @@ binding has consumed it. * Input events from getting mixed with paste data (https://codeberg.org/dnkl/foot/issues/101). +* Missing DPI values for “some” monitors on Gnome + (https://codeberg.org/dnkl/foot/issues/118). ### Security