summaryrefslogtreecommitdiff
path: root/src/mate-screensaver-preferences.c
diff options
context:
space:
mode:
authorZenWalker <[email protected]>2017-09-06 16:22:42 +0200
committerraveit65 <[email protected]>2017-09-08 21:33:30 +0200
commit52df89dc6ce7c3c58dcac6b781b8ff540336fce8 (patch)
tree718826a21d6016d8e2fe9ee9bf9712827824e627 /src/mate-screensaver-preferences.c
parent500250bbdc4066fbcda7d398faad82442f32c4ff (diff)
downloadmate-screensaver-52df89dc6ce7c3c58dcac6b781b8ff540336fce8.tar.bz2
mate-screensaver-52df89dc6ce7c3c58dcac6b781b8ff540336fce8.tar.xz
Fix: idle slider display bug
Fixes #101
Diffstat (limited to 'src/mate-screensaver-preferences.c')
-rw-r--r--src/mate-screensaver-preferences.c63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/mate-screensaver-preferences.c b/src/mate-screensaver-preferences.c
index d3a11a7..f48a369 100644
--- a/src/mate-screensaver-preferences.c
+++ b/src/mate-screensaver-preferences.c
@@ -942,6 +942,8 @@ time_to_string_text (long time)
char *secs, *mins, *hours, *string;
int sec, min, hour;
+ int inc_len, len_hour, len_minutes;
+
sec = time % 60;
time = time - sec;
min = (time % (60 * 60)) / 60;
@@ -957,6 +959,37 @@ time_to_string_text (long time)
secs = g_strdup_printf (ngettext ("%d second",
"%d seconds", sec), sec);
+ inc_len = strlen (g_strdup_printf (_("%s %s"),
+ g_strdup_printf (ngettext ("%d hour",
+ "%d hours", 1), 1),
+ g_strdup_printf (ngettext ("%d minute",
+ "%d minutes", 59), 59))) - 1;
+
+ len_hour = strlen (g_strdup_printf (ngettext ("%d hour",
+ "%d hours", 1), 1));
+
+ len_minutes = 0;
+
+ for (int n = 2; n < 60; n++)
+ {
+ if (n < 10)
+ {
+ if ((strlen (g_str_to_ascii (g_strdup_printf (ngettext ("%d minute",
+ "%d minutes", n), n), NULL)) - 2) > len_minutes)
+
+ len_minutes = strlen (g_str_to_ascii (g_strdup_printf (ngettext ("%d minute",
+ "%d minutes", n), n), NULL)) - 2;
+ }
+ else
+ {
+ if ((strlen (g_str_to_ascii (g_strdup_printf (ngettext ("%d minute",
+ "%d minutes", n), n), NULL)) - 3) > len_minutes)
+
+ len_minutes = strlen (g_str_to_ascii (g_strdup_printf (ngettext ("%d minute",
+ "%d minutes", n), n), NULL)) - 3;
+ }
+ }
+
if (hour > 0)
{
if (sec > 0)
@@ -986,6 +1019,36 @@ time_to_string_text (long time)
{
/* minutes */
string = g_strdup_printf (_("%s"), mins);
+
+ if (min < 10)
+ {
+ if (min == 1)
+ while (strlen (string) != (2 * len_hour + inc_len - 4))
+ {
+ if (strlen (string) % 2 == 0)
+ string = g_strconcat (string, " ", NULL);
+ else
+ string = g_strconcat (" " , string, NULL);
+ }
+ else
+ while (strlen (string) != (len_minutes + inc_len))
+ {
+ if (strlen (string) % 2 == 0)
+ string = g_strconcat (string, " ", NULL);
+ else
+ string = g_strconcat (" " , string, NULL);
+ }
+ }
+ else
+ {
+ while (strlen (string) != (len_minutes + inc_len - 1))
+ {
+ if (strlen (string) % 2 == 0)
+ string = g_strconcat (string, " ", NULL);
+ else
+ string = g_strconcat (" " , string, NULL);
+ }
+ }
}
}
else