gtk-demo: Adapt hightlighting style for dark themes

Switch to a highlight style that is readable with
dark background, if prefer-dark is set or we are
in HighContrastInverse.
This commit is contained in:
Matthias Clasen 2020-08-08 23:50:45 -04:00
parent 1d1d9de09e
commit 1d49f933e9

View File

@ -244,6 +244,23 @@ fontify_text (const char *format,
GBytes *stderr_buf = NULL; GBytes *stderr_buf = NULL;
GError *error = NULL; GError *error = NULL;
char *format_arg; char *format_arg;
GtkSettings *settings;
char *theme;
gboolean prefer_dark;
const char *style_arg;
settings = gtk_settings_get_default ();
g_object_get (settings,
"gtk-theme-name", &theme,
"gtk-application-prefer-dark-theme", &prefer_dark,
NULL);
if (prefer_dark || strcmp (theme, "HighContrastInverse") == 0)
style_arg = "--style=edit-vim-dark";
else
style_arg = "--style=edit-kwrite";
g_free (theme);
format_arg = g_strconcat ("--syntax=", format, NULL); format_arg = g_strconcat ("--syntax=", format, NULL);
subprocess = g_subprocess_new (G_SUBPROCESS_FLAGS_STDIN_PIPE | subprocess = g_subprocess_new (G_SUBPROCESS_FLAGS_STDIN_PIPE |
@ -253,6 +270,7 @@ fontify_text (const char *format,
"highlight", "highlight",
format_arg, format_arg,
"--out-format=pango", "--out-format=pango",
style_arg,
NULL); NULL);
g_free (format_arg); g_free (format_arg);