diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index 21837f0..34dc1ee 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -2721,6 +2721,8 @@ void config_init(){ main_config.sync_size=0; main_config.homes_size=0; main_config.remove_homes=NULL; + main_config.launch_arguments=NULL; + main_config.launch_size=0; int login_size; config_str login_defs = yon_file_open(uid_path,&login_size); for (int i=0;iWindow); + } + } +} + /**yon_main_window_complete(main_window *widgets) * [EN] * @@ -2884,6 +2909,25 @@ main_window *yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->UsersTree),"button-press-event",G_CALLBACK(on_menu_open),widgets->UsersMenu); g_signal_connect(G_OBJECT(widgets->GroupsTree),"button-press-event",G_CALLBACK(on_menu_open),widgets->GroupsMenu); + + GtkWidget *root_item = gtk_menu_item_new(); + gtk_style_context_add_class(gtk_widget_get_style_context(root_item),"menuitemtop"); + gtk_style_context_add_class(gtk_widget_get_style_context(widgets->DocumentationMenuItem),"menuitemmiddle"); + gtk_style_context_remove_class(gtk_widget_get_style_context(widgets->DocumentationMenuItem),"menuitemtop"); + GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL,5); + GtkWidget *root_label = gtk_label_new(ROOT_CHECK_LABEL); + GtkWidget *root_check = gtk_check_button_new(); + gtk_menu_shell_prepend(GTK_MENU_SHELL(gtk_widget_get_parent(widgets->DocumentationMenuItem)),root_item); + gtk_box_pack_start(GTK_BOX(box),root_label,1,1,0); + gtk_box_pack_start(GTK_BOX(box),root_check,0,0,0); + gtk_container_add(GTK_CONTAINER(root_item),box); + gtk_widget_show_all(root_item); + g_signal_connect(G_OBJECT(root_item),"activate", G_CALLBACK(on_root_access),widgets); + if (getuid()==0) { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(root_check),1); + gtk_widget_set_sensitive(root_item,0); + } + yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->UsersTree)); yon_gtk_tree_view_minimal_fixed_size_set_full(GTK_TREE_VIEW(widgets->GroupsTree)); yon_load_proceed(YON_CONFIG_LOCAL); @@ -2919,5 +2963,7 @@ int main(int argc, char *argv[]){ template_main_window *widgets = yon_ubl_window_setup(); yon_main_window_complete((main_window*)widgets); yon_window_config_load(config_path); + main_config.launch_arguments=yon_char_parsed_copy(argv,argc); + main_config.launch_size=argc; gtk_main(); } \ No newline at end of file diff --git a/source/ubl-settings-usergroups.h b/source/ubl-settings-usergroups.h index 9a7fb76..527fb6e 100644 --- a/source/ubl-settings-usergroups.h +++ b/source/ubl-settings-usergroups.h @@ -131,6 +131,8 @@ typedef struct { int homes_size; char *default_home; int save_config; + int launch_size; + config_str launch_arguments; } config; typedef struct {