Skip to content

Commit 6c516ba

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 8dbae50 commit 6c516ba

1 file changed

Lines changed: 30 additions & 1 deletion

File tree

mate-session/main.c

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,36 @@ 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+
const GVariant *default_default_provider;
289+
default_default_provider = g_settings_get_default_value (settings_required_components, component);
290+
g_variant_get (default_default_provider, "&s", &gsetting_default_default_provider);
291+
g_free (default_default_provider);
292+
293+
if (strcmp (default_provider, "") != 0 &&
294+
strcmp (gsetting_default_default_provider, "") != 0 &&
295+
strcmp (gsetting_default_default_provider, default_provider) != 0)
296+
{
297+
g_warning ("Unable to find provider '%s' of required component '%s'", default_provider, component);
298+
g_warning ("Reset required component '%s' to default", component);
299+
g_settings_reset (settings_required_components, component);
300+
301+
g_free (default_provider);
302+
default_provider = g_settings_get_string (settings_required_components, component);
303+
if (default_provider != NULL)
304+
{
305+
app_path = gsm_util_find_desktop_file_for_app_name (default_provider, NULL);
306+
if (app_path != NULL)
307+
{
308+
gsm_manager_add_autostart_app (manager, app_path, component);
309+
}
310+
}
311+
}
312+
if (app_path == NULL)
313+
{
314+
g_warning ("Unable to find provider '%s' of required component '%s'", default_provider, component);
315+
}
287316
}
288317

289318
g_free(app_path);

0 commit comments

Comments
 (0)