Skip to content

Commit 8683697

Browse files
committed
fallback to default at required components, if wrong set by user ; empty values are still possible, to disable a component. (( Note: required components are windowmanager , filemanager , panel , dock ))
1 parent 6df4435 commit 8683697

1 file changed

Lines changed: 22 additions & 1 deletion

File tree

mate-session/main.c

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,28 @@ static void append_required_apps(GsmManager* manager)
283283
}
284284
else
285285
{
286-
g_warning("Unable to find provider '%s' of required component '%s'", default_provider, component);
286+
// possible reset component to default
287+
const gchar *gsetting_default_default_provider;
288+
g_variant_get (g_settings_get_default_value(settings_required_components, component), "&s", &gsetting_default_default_provider);
289+
if (strcmp(default_provider, "") != 0 && \
290+
strcmp(gsetting_default_default_provider, "") != 0 && \
291+
strcmp(default_provider, gsetting_default_default_provider) != 0)
292+
{
293+
g_warning("Unable to find provider '%s' of required component '%s'", default_provider, component);
294+
g_warning("Reset required component '%s' to default", component);
295+
g_settings_reset(settings_required_components, component);
296+
default_provider = g_settings_get_string (settings_required_components, component);
297+
app_path = gsm_util_find_desktop_file_for_app_name(default_provider, NULL);
298+
if (app_path != NULL)
299+
{
300+
gsm_manager_add_autostart_app(manager, app_path, component);
301+
}
302+
}
303+
304+
if (app_path == NULL)
305+
{
306+
g_warning("Unable to find provider '%s' of required component '%s'", default_provider, component);
307+
}
287308
}
288309

289310
g_free(app_path);

0 commit comments

Comments
 (0)