Skip to content

Commit dc608fe

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 dc608fe

1 file changed

Lines changed: 38 additions & 1 deletion

File tree

mate-session/main.c

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,44 @@ 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+
287+
g_warning ("Unable to find provider '%s' of required component '%s'", default_provider, component);
288+
289+
if (!IS_STRING_EMPTY ((char*) default_provider))
290+
{
291+
// possible reset component to default
292+
293+
const char *default_default_provider;
294+
GVariant *g_settings_default_default;
295+
g_settings_default_default = g_settings_get_default_value (settings_required_components, component);
296+
default_default_provider = g_variant_get_string (g_settings_default_default, NULL);
297+
298+
if (!IS_STRING_EMPTY ((char*) default_default_provider) && strcmp (default_default_provider, default_provider) != 0)
299+
{
300+
g_warning ("Reset required component '%s' to default", component);
301+
g_settings_reset (settings_required_components, component);
302+
303+
g_free (default_provider);
304+
default_provider = g_settings_get_string (settings_required_components, component);
305+
306+
if (default_provider != NULL)
307+
{
308+
app_path = gsm_util_find_desktop_file_for_app_name (default_provider, NULL);
309+
if (app_path != NULL)
310+
{
311+
gsm_manager_add_autostart_app (manager, app_path, component);
312+
}
313+
else
314+
{
315+
g_warning ("Unable to find provider '%s' of required component '%s'", default_provider, component);
316+
}
317+
}
318+
319+
}
320+
321+
g_variant_unref (g_settings_default_default);
322+
}
323+
287324
}
288325

289326
g_free(app_path);

0 commit comments

Comments
 (0)