summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Ã…dahl <jadahl@gmail.com>2023-03-07 00:17:25 +0100
committerMarge Bot <marge-bot@gnome.org>2023-04-18 18:38:03 +0000
commit550a1dadf1dd667ce95a1b0cbb5b0cc186a4e467 (patch)
tree64dc23a14db32d55b7ae8780897fef00a6861f9a
parent429cc9a674db51015ba15b9ca38d93607e09f386 (diff)
downloadmutter-550a1dadf1dd667ce95a1b0cbb5b0cc186a4e467.tar.gz
monitor: Don't use locale dependent mode ID string
The result of printf("%f", number) depends on the locale. To avoid unpredictable mode IDs, make sure they always are generated the same no matter the locale. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2902>
-rw-r--r--src/backends/meta-monitor.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/backends/meta-monitor.c b/src/backends/meta-monitor.c
index 112ed97f6..72bae35b3 100644
--- a/src/backends/meta-monitor.c
+++ b/src/backends/meta-monitor.c
@@ -613,14 +613,17 @@ static char *
generate_mode_id (MetaMonitorModeSpec *monitor_mode_spec)
{
gboolean is_interlaced;
+ char rate_str[G_ASCII_DTOSTR_BUF_SIZE];
is_interlaced = !!(monitor_mode_spec->flags & META_CRTC_MODE_FLAG_INTERLACE);
+ g_ascii_formatd (rate_str, sizeof (rate_str),
+ "%.3f", monitor_mode_spec->refresh_rate);
- return g_strdup_printf ("%dx%d%s@%.3f",
+ return g_strdup_printf ("%dx%d%s@%s",
monitor_mode_spec->width,
monitor_mode_spec->height,
is_interlaced ? "i" : "",
- monitor_mode_spec->refresh_rate);
+ rate_str);
}
static gboolean