[gnome-builder/wip/gtk4-port] libide/foundry: apply debugging color scheme to runner
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/gtk4-port] libide/foundry: apply debugging color scheme to runner
- Date: Fri, 27 May 2022 18:59:05 +0000 (UTC)
commit 2618adc7ff98805fe5a36cd379f178619f206858
Author: Christian Hergert <chergert redhat com>
Date: Fri May 27 11:59:00 2022 -0700
libide/foundry: apply debugging color scheme to runner
Related #935
src/libide/foundry/ide-run-manager.c | 50 +++++++++++++++++++++++++++++++++++-
1 file changed, 49 insertions(+), 1 deletion(-)
---
diff --git a/src/libide/foundry/ide-run-manager.c b/src/libide/foundry/ide-run-manager.c
index 7793a9615..587d96dc1 100644
--- a/src/libide/foundry/ide-run-manager.c
+++ b/src/libide/foundry/ide-run-manager.c
@@ -551,6 +551,49 @@ copy_builtin_envvars (IdeEnvironment *environment)
}
}
+static void
+apply_color_scheme (IdeEnvironment *env,
+ const char *color_scheme)
+{
+ IDE_ENTRY;
+
+ g_assert (IDE_IS_ENVIRONMENT (env));
+ g_assert (color_scheme != NULL);
+
+ g_debug ("Applying color-scheme \"%s\"", color_scheme);
+
+ if (ide_str_equal0 (color_scheme, "follow"))
+ {
+ /* Clear any overrides that somehow leaked into our process */
+ ide_environment_setenv (env, "ADW_DBG_FORCE_LIGHT", NULL);
+ ide_environment_setenv (env, "ADW_DBG_FORCE_DARK", NULL);
+ }
+ else if (ide_str_equal0 (color_scheme, "force-light"))
+ {
+ ide_environment_setenv (env, "ADW_DBG_FORCE_LIGHT", "1");
+ ide_environment_setenv (env, "ADW_DBG_FORCE_DARK", NULL);
+ }
+ else if (ide_str_equal0 (color_scheme, "force-dark"))
+ {
+ ide_environment_setenv (env, "ADW_DBG_FORCE_LIGHT", NULL);
+ ide_environment_setenv (env, "ADW_DBG_FORCE_DARK", "1");
+ }
+ else
+ {
+ g_warn_if_reached ();
+ }
+
+ IDE_EXIT;
+}
+
+static inline const char *
+get_action_state_string (IdeRunManager *self,
+ const char *action_name)
+{
+ GVariant *state = ide_run_manager_get_action_state (self, action_name);
+ return g_variant_get_string (state, NULL);
+}
+
static void
create_runner_cb (GObject *object,
GAsyncResult *result,
@@ -570,7 +613,8 @@ create_runner_cb (GObject *object,
IdeRuntime *runtime;
g_autoptr(IdeRunner) runner = NULL;
GCancellable *cancellable;
- const gchar *run_opts;
+ const char *color_scheme;
+ const char *run_opts;
IDE_ENTRY;
@@ -638,6 +682,10 @@ create_runner_cb (GObject *object,
copy_builtin_envvars (environment);
ide_environment_copy_into (ide_config_get_runtime_environment (config), environment, TRUE);
+ /* Add debugging overrides */
+ color_scheme = get_action_state_string (self, "color-scheme");
+ apply_color_scheme (environment, color_scheme);
+
g_signal_emit (self, signals [RUN], 0, runner);
if (ide_runner_get_failed (runner))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]