2 #include "e_mod_main.h"
4 static void *_create_data(E_Config_Dialog *cfd);
5 static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
6 static void _fill_data(E_Config_Dialog_Data *cfdata);
7 static int _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
8 static Evas_Object *_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
9 static int _adv_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
10 static Evas_Object *_adv_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
12 static E_Config_Dialog *_e_int_config_wallpaper_desk(E_Container *con, int con_num, int zone_num, int desk_x, int desk_y);
14 static void _cb_button_up(void *data1, void *data2);
15 static void _cb_files_changed(void *data, Evas_Object *obj, void *event_info);
16 static void _cb_files_selection_change(void *data, Evas_Object *obj, void *event_info);
17 static void _cb_files_files_changed(void *data, Evas_Object *obj, void *event_info);
18 static void _cb_files_files_deleted(void *data, Evas_Object *obj, void *event_info);
19 static void _cb_theme_wallpaper(void *data, Evas_Object *obj, void *event_info);
20 static void _cb_dir(void *data, Evas_Object *obj, void *event_info);
21 static void _cb_import(void *data1, void *data2);
23 #define E_CONFIG_WALLPAPER_ALL 0
24 #define E_CONFIG_WALLPAPER_DESK 1
25 #define E_CONFIG_WALLPAPER_SCREEN 2
27 struct _E_Config_Wallpaper
30 int con_num, zone_num;
34 struct _E_Config_Dialog_Data
38 Evas_Object *o_up_button;
39 Evas_Object *o_preview;
40 Evas_Object *o_theme_bg;
41 Evas_Object *o_personal;
42 Evas_Object *o_system;
43 int fmdir, use_theme_bg;
47 int all_this_desk_screen;
57 e_int_config_wallpaper(E_Container *con, const char *params __UNUSED__)
59 return _e_int_config_wallpaper_desk(con, -1, -1, -1, -1);
63 e_int_config_wallpaper_desk(E_Container *con, const char *params)
65 int con_num, zone_num, desk_x, desk_y;
67 if (!params) return NULL;
68 con_num = zone_num = desk_x = desk_y = -1;
69 if (sscanf(params, "%i %i %i %i", &con_num, &zone_num, &desk_x, &desk_y) != 4)
71 return _e_int_config_wallpaper_desk(con, con_num, zone_num, desk_x, desk_y);
74 static E_Config_Dialog *
75 _e_int_config_wallpaper_desk(E_Container *con, int con_num, int zone_num, int desk_x, int desk_y)
78 E_Config_Dialog_View *v;
79 E_Config_Wallpaper *cw;
81 if (e_config_dialog_find("E", "appearance/wallpaper")) return NULL;
82 v = E_NEW(E_Config_Dialog_View, 1);
83 cw = E_NEW(E_Config_Wallpaper, 1);
85 v->create_cfdata = _create_data;
86 v->free_cfdata = _free_data;
87 v->basic.apply_cfdata = _basic_apply;
88 v->basic.create_widgets = _basic_create;
90 if (!(con_num == -1 && zone_num == -1 && desk_x == -1 && desk_y == -1))
91 cw->specific_config = 1;
94 v->advanced.apply_cfdata = _adv_apply;
95 v->advanced.create_widgets = _adv_create;
98 v->override_auto_apply = 1;
100 cw->con_num = con_num;
101 cw->zone_num = zone_num;
105 cfd = e_config_dialog_new(con, _("Wallpaper Settings"), "E",
106 "appearance/wallpaper",
107 "preferences-desktop-wallpaper", 0, v, cw);
112 e_int_config_wallpaper_update(E_Config_Dialog *dia, char *file)
114 E_Config_Dialog_Data *cfdata;
117 cfdata = dia->cfdata;
119 e_widget_radio_toggle_set(cfdata->o_personal, 1);
120 e_user_dir_concat_static(path, "backgrounds");
122 cfdata->bg = strdup(file);
123 cfdata->use_theme_bg = 0;
124 if (cfdata->o_theme_bg)
125 e_widget_check_checked_set(cfdata->o_theme_bg, cfdata->use_theme_bg);
126 if (cfdata->o_fm) e_widget_flist_path_set(cfdata->o_fm, path, "/");
127 if (cfdata->o_preview)
128 e_widget_preview_edje_set(cfdata->o_preview, cfdata->bg,
129 "e/desktop/background");
130 if (cfdata->o_fm) e_widget_change(cfdata->o_fm);
134 e_int_config_wallpaper_import_done(E_Config_Dialog *dia)
136 E_Config_Dialog_Data *cfdata;
138 cfdata = dia->cfdata;
139 cfdata->win_import = NULL;
144 e_int_config_wallpaper_web_done(E_Config_Dialog *dia)
146 E_Config_Dialog_Data *cfdata;
148 cfdata = dia->cfdata;
149 cfdata->dia_web = NULL;
154 _cb_button_up(void *data1, void *data2 __UNUSED__)
156 E_Config_Dialog_Data *cfdata;
159 if (cfdata->o_fm) e_widget_flist_parent_go(cfdata->o_fm);
163 _cb_files_changed(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
165 E_Config_Dialog_Data *cfdata;
167 if (!(cfdata = data)) return;
168 if (!cfdata->o_fm) return;
169 if (cfdata->o_up_button)
170 e_widget_disabled_set(cfdata->o_up_button,
171 !e_widget_flist_has_parent_get(cfdata->o_fm));
175 _cb_files_selection_change(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
177 E_Config_Dialog_Data *cfdata;
179 E_Fm2_Icon_Info *ici;
180 const char *realpath;
184 if (!cfdata->o_fm) return;
185 if (!(selected = e_widget_flist_selected_list_get(cfdata->o_fm))) return;
186 ici = selected->data;
187 realpath = e_widget_flist_real_path_get(cfdata->o_fm);
188 if (!strcmp(realpath, "/"))
189 snprintf(buf, sizeof(buf), "/%s", ici->file);
191 snprintf(buf, sizeof(buf), "%s/%s", realpath, ici->file);
192 eina_list_free(selected);
193 if (ecore_file_is_dir(buf)) return;
197 cfdata->bg = strdup(buf);
198 if (cfdata->o_preview)
199 e_widget_preview_edje_set(cfdata->o_preview, buf, "e/desktop/background");
200 if (cfdata->o_theme_bg)
201 e_widget_check_checked_set(cfdata->o_theme_bg, 0);
202 cfdata->use_theme_bg = 0;
203 e_widget_change(cfdata->o_fm);
207 _cb_files_files_changed(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
209 E_Config_Dialog_Data *cfdata;
210 const char *p = NULL;
215 if ((!cfdata->bg) || (!cfdata->o_fm)) return;
216 p = e_widget_flist_real_path_get(cfdata->o_fm);
219 if (strncmp(p, cfdata->bg, strlen(p))) return;
223 len = e_user_dir_concat_static(buf, "backgrounds");
224 if (!strncmp(cfdata->bg, buf, len))
225 p = cfdata->bg + len + 1;
228 len = e_prefix_data_concat_static(buf, "data/backgrounds");
229 if (!strncmp(cfdata->bg, buf, len))
230 p = cfdata->bg + len + 1;
235 e_widget_flist_select_set(cfdata->o_fm, p, 1);
236 e_widget_flist_file_show(cfdata->o_fm, p);
240 _cb_files_files_deleted(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
242 E_Config_Dialog_Data *cfdata;
243 Eina_List *sel, *all, *n;
244 E_Fm2_Icon_Info *ici, *ic;
247 if ((!cfdata->bg) || (!cfdata->o_fm)) return;
249 if (!(all = e_widget_flist_all_list_get(cfdata->o_fm))) return;
250 if (!(sel = e_widget_flist_selected_list_get(cfdata->o_fm))) return;
253 all = eina_list_data_find_list(all, ici);
254 n = eina_list_next(all);
257 n = eina_list_prev(all);
261 if (!(ic = n->data)) return;
263 e_widget_flist_select_set(cfdata->o_fm, ic->file, 1);
264 e_widget_flist_file_show(cfdata->o_fm, ic->file);
268 evas_object_smart_callback_call(cfdata->o_fm, "selection_change", cfdata);
272 _cb_theme_wallpaper(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
274 E_Config_Dialog_Data *cfdata;
278 if (cfdata->use_theme_bg)
280 f = e_theme_edje_file_get("base/theme/backgrounds",
281 "e/desktop/background");
283 cfdata->bg = strdup(f);
284 if (cfdata->o_preview)
285 e_widget_preview_edje_set(cfdata->o_preview, f,
286 "e/desktop/background");
290 evas_object_smart_callback_call(cfdata->o_fm, "selection_change",
294 if (cfdata->o_preview)
295 e_widget_preview_edje_set(cfdata->o_preview, cfdata->bg,
296 "e/desktop/background");
302 _cb_dir(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
304 E_Config_Dialog_Data *cfdata;
308 if (cfdata->fmdir == 1)
309 e_prefix_data_concat_static(path, "data/backgrounds");
311 e_user_dir_concat_static(path, "backgrounds");
312 e_widget_flist_path_set(cfdata->o_fm, path, "/");
316 _cb_import(void *data1, void *data2 __UNUSED__)
318 E_Config_Dialog_Data *cfdata;
321 if (cfdata->win_import)
322 e_win_raise(cfdata->win_import);
324 cfdata->win_import = e_int_config_wallpaper_fsel(cfdata->cfd);
329 _cb_web(void *data1, void *data2 __UNUSED__)
331 E_Config_Dialog_Data *cfdata;
335 e_win_raise(cfdata->dia_web->win);
337 cfdata->dia_web = e_int_config_wallpaper_web(cfdata->cfd);
342 _fill_data(E_Config_Dialog_Data *cfdata)
344 E_Config_Wallpaper *cw;
345 const E_Config_Desktop_Background *cfbg;
348 cw = cfdata->cfd->data;
349 if (cw->specific_config)
353 /* specific config passed in. set for that only */
354 bg = e_bg_file_get(cw->con_num, cw->zone_num, cw->desk_x, cw->desk_y);
355 if (bg) cfdata->bg = strdup(bg);
359 /* get current desk. advanced mode allows selecting all, screen or desk */
364 c = e_container_current_get(e_manager_current_get());
365 z = e_zone_current_get(c);
366 d = e_desk_current_get(z);
368 cfbg = e_bg_config_get(c->num, z->id, d->x, d->y);
369 /* if we have a config for this bg, use it. */
372 if (cfbg->container >= 0 && cfbg->zone >= 0)
374 if (cfbg->desk_x >= 0 && cfbg->desk_y >= 0)
375 cfdata->all_this_desk_screen = E_CONFIG_WALLPAPER_DESK;
377 cfdata->all_this_desk_screen = E_CONFIG_WALLPAPER_SCREEN;
380 cfdata->bg = strdup(cfbg->file);
384 if ((!cfdata->bg) && (e_config->desktop_default_background))
385 cfdata->bg = strdup(e_config->desktop_default_background);
392 f = e_theme_edje_file_get("base/theme/backgrounds",
393 "e/desktop/background");
394 if (!strcmp(cfdata->bg, f)) cfdata->use_theme_bg = 1;
395 len = e_prefix_data_concat_static(path, "data/backgrounds");
396 if (!strncmp(cfdata->bg, path, len)) cfdata->fmdir = 1;
399 cfdata->use_theme_bg = 1;
403 _create_data(E_Config_Dialog *cfd)
405 E_Config_Dialog_Data *cfdata;
407 cfdata = E_NEW(E_Config_Dialog_Data, 1);
408 cfd->cfdata = cfdata;
415 _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
417 if (cfdata->win_import)
418 e_int_config_wallpaper_fsel_del(cfdata->win_import);
421 e_int_config_wallpaper_web_del(cfdata->dia_web);
429 _basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
431 Evas_Object *o, *rt, *ot;
432 Evas_Object *ow, *oa;
439 online = ecore_file_download_protocol_available("http://");
441 zone = e_zone_current_get(cfd->con);
442 o = e_widget_list_add(evas, 0, 1);
444 rg = e_widget_radio_group_new(&(cfdata->fmdir));
445 ot = e_widget_table_add(evas, 0);
446 rt = e_widget_table_add(evas, 1);
448 /* create dir radios */
449 ow = e_widget_radio_add(evas, _("Personal"), 0, rg);
450 cfdata->o_personal = ow;
451 evas_object_smart_callback_add(ow, "changed", _cb_dir, cfdata);
452 e_widget_table_object_append(rt, ow, 0, 0, 1, 1, 1, 1, 0, 0);
453 ow = e_widget_radio_add(evas, _("System"), 1, rg);
454 cfdata->o_system = ow;
455 evas_object_smart_callback_add(ow, "changed", _cb_dir, cfdata);
456 e_widget_table_object_append(rt, ow, 1, 0, 1, 1, 1, 1, 0, 0);
457 e_widget_table_object_append(ot, rt, 0, 0, 1, 1, 0, 0, 0, 0);
459 ow = e_widget_button_add(evas, _("Go up a Directory"), "go-up",
460 _cb_button_up, cfdata, NULL);
461 cfdata->o_up_button = ow;
462 e_widget_table_object_append(ot, ow, 0, 1, 1, 1, 0, 0, 0, 0);
464 if (cfdata->fmdir == 1)
465 e_prefix_data_concat_static(path, "data/backgrounds");
467 e_user_dir_concat_static(path, "backgrounds");
469 ow = e_widget_flist_add(evas);
471 evas_object_smart_callback_add(ow, "dir_changed",
472 _cb_files_changed, cfdata);
473 evas_object_smart_callback_add(ow, "selection_change",
474 _cb_files_selection_change, cfdata);
475 evas_object_smart_callback_add(ow, "changed",
476 _cb_files_files_changed, cfdata);
477 evas_object_smart_callback_add(ow, "files_deleted",
478 _cb_files_files_deleted, cfdata);
479 e_widget_flist_path_set(ow, path, "/");
481 e_widget_size_min_set(ow, 160, 160);
482 e_widget_table_object_append(ot, ow, 0, 2, 1, 1, 1, 1, 1, 1);
483 e_widget_list_object_append(o, ot, 1, 1, 0.0);
485 ot = e_widget_table_add(evas, 0);
486 ow = e_widget_check_add(evas, _("Use Theme Wallpaper"),
487 &cfdata->use_theme_bg);
488 cfdata->o_theme_bg = ow;
489 evas_object_smart_callback_add(ow, "changed", _cb_theme_wallpaper, cfdata);
490 e_widget_table_object_append(ot, ow, 0, 0, 2 + online, 1, 1, 0, 0, 0);
491 ow = e_widget_button_add(evas, _("Picture..."), "folder-image",
492 _cb_import, cfdata, NULL);
493 e_widget_table_object_append(ot, ow, 0, 1, 1, 1, 1, 0, 0, 0);
498 ow = e_widget_button_add(evas, _("Online..."), "network-website",
499 _cb_web, cfdata, NULL);
500 e_widget_table_object_append(ot, ow, 2, 1, 1, 1, 1, 0, 0, 0);
505 mh = (320 * zone->h) / zone->w;
506 oa = e_widget_aspect_add(evas, mw, mh);
507 ow = e_widget_preview_add(evas, mw, mh);
508 cfdata->o_preview = ow;
512 f = e_theme_edje_file_get("base/theme/backgrounds", "e/desktop/background");
513 e_widget_preview_edje_set(ow, f, "e/desktop/background");
514 e_widget_aspect_child_set(oa, ow);
515 evas_object_show(ow);
516 evas_object_show(oa);
517 e_widget_table_object_append(ot, oa, 0, 2, 2 + online, 1, 1, 1, 1, 1);
518 e_widget_list_object_append(o, ot, 1, 1, 0.5);
519 e_dialog_resizable_set(cfd->dia, 1);
524 _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
526 E_Config_Wallpaper *cw;
529 if (cw->specific_config)
531 /* update a specific config */
532 e_bg_del(cw->con_num, cw->zone_num, cw->desk_x, cw->desk_y);
533 e_bg_add(cw->con_num, cw->zone_num, cw->desk_x, cw->desk_y, cfdata->bg);
537 /* set the default and nuke individual configs */
538 while (e_config->desktop_backgrounds)
540 E_Config_Desktop_Background *cfbg;
542 cfbg = e_config->desktop_backgrounds->data;
543 e_bg_del(cfbg->container, cfbg->zone, cfbg->desk_x, cfbg->desk_y);
545 if ((cfdata->use_theme_bg) || (!cfdata->bg))
546 e_bg_default_set(NULL);
548 e_bg_default_set(cfdata->bg);
550 cfdata->all_this_desk_screen = 0;
554 e_config_save_queue();
559 _adv_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata)
561 Evas_Object *o, *rt, *ot;
562 Evas_Object *ow, *of, *oa;
569 online = ecore_file_download_protocol_available("http://");
571 zone = e_zone_current_get(cfd->con);
572 o = e_widget_list_add(evas, 0, 1);
574 rg = e_widget_radio_group_new(&(cfdata->fmdir));
575 ot = e_widget_table_add(evas, 0);
576 rt = e_widget_table_add(evas, 1);
578 /* create dir radios */
579 ow = e_widget_radio_add(evas, _("Personal"), 0, rg);
580 cfdata->o_personal = ow;
581 evas_object_smart_callback_add(ow, "changed", _cb_dir, cfdata);
582 e_widget_table_object_append(rt, ow, 0, 0, 1, 1, 1, 1, 0, 0);
583 ow = e_widget_radio_add(evas, _("System"), 1, rg);
584 cfdata->o_system = ow;
585 evas_object_smart_callback_add(ow, "changed", _cb_dir, cfdata);
586 e_widget_table_object_append(rt, ow, 1, 0, 1, 1, 1, 1, 0, 0);
587 e_widget_table_object_append(ot, rt, 0, 0, 1, 1, 0, 0, 0, 0);
589 ow = e_widget_button_add(evas, _("Go up a Directory"), "go-up",
590 _cb_button_up, cfdata, NULL);
591 cfdata->o_up_button = ow;
592 e_widget_table_object_append(ot, ow, 0, 1, 1, 1, 0, 0, 0, 0);
594 if (cfdata->fmdir == 1)
595 e_prefix_data_concat_static(path, "data/backgrounds");
597 e_user_dir_concat_static(path, "backgrounds");
599 ow = e_widget_flist_add(evas);
601 evas_object_smart_callback_add(ow, "dir_changed",
602 _cb_files_changed, cfdata);
603 evas_object_smart_callback_add(ow, "selection_change",
604 _cb_files_selection_change, cfdata);
605 evas_object_smart_callback_add(ow, "changed",
606 _cb_files_files_changed, cfdata);
607 e_widget_flist_path_set(ow, path, "/");
609 e_widget_size_min_set(ow, 160, 160);
610 e_widget_table_object_append(ot, ow, 0, 2, 1, 1, 1, 1, 1, 1);
611 e_widget_list_object_append(o, ot, 1, 1, 0.0);
613 ot = e_widget_table_add(evas, 0);
614 ow = e_widget_check_add(evas, _("Use Theme Wallpaper"),
615 &cfdata->use_theme_bg);
616 cfdata->o_theme_bg = ow;
617 evas_object_smart_callback_add(ow, "changed", _cb_theme_wallpaper, cfdata);
618 e_widget_table_object_append(ot, ow, 0, 0, 2 + online, 1, 1, 0, 0, 0);
619 ow = e_widget_button_add(evas, _("Picture..."), "folder-image",
620 _cb_import, cfdata, NULL);
621 e_widget_table_object_append(ot, ow, 0, 1, 1, 1, 1, 0, 0, 0);
626 ow = e_widget_button_add(evas, _("Online..."), "network-website",
627 _cb_web, cfdata, NULL);
628 e_widget_table_object_append(ot, ow, 2, 1, 1, 1, 1, 0, 0, 0);
633 mh = (320 * zone->h) / zone->w;
634 oa = e_widget_aspect_add(evas, mw, mh);
635 ow = e_widget_preview_add(evas, mw, mh);
636 cfdata->o_preview = ow;
640 f = e_theme_edje_file_get("base/theme/backgrounds", "e/desktop/background");
641 e_widget_preview_edje_set(ow, f, "e/desktop/background");
642 e_widget_aspect_child_set(oa, ow);
643 e_widget_table_object_append(ot, oa, 0, 2, 2 + online, 1, 1, 1, 1, 1);
645 rg = e_widget_radio_group_new(&(cfdata->all_this_desk_screen));
646 of = e_widget_frametable_add(evas, _("Where to place the Wallpaper"), 0);
647 ow = e_widget_radio_add(evas, _("All Desktops"), E_CONFIG_WALLPAPER_ALL, rg);
648 e_widget_frametable_object_append(of, ow, 0, 0, 1, 1, 1, 0, 1, 0);
649 ow = e_widget_radio_add(evas, _("This Desktop"), E_CONFIG_WALLPAPER_DESK, rg);
650 e_widget_frametable_object_append(of, ow, 0, 1, 1, 1, 1, 0, 1, 0);
651 ow = e_widget_radio_add(evas, _("This Screen"), E_CONFIG_WALLPAPER_SCREEN, rg);
652 if (!(e_util_container_zone_number_get(0, 1) ||
653 (e_util_container_zone_number_get(1, 0))))
654 e_widget_disabled_set(ow, 1);
655 e_widget_frametable_object_append(of, ow, 0, 2, 1, 1, 1, 0, 1, 0);
656 e_widget_table_object_append(ot, of, 0, 3, 2 + online, 1, 1, 1, 1, 0);
658 e_widget_list_object_append(o, ot, 1, 1, 0.5);
659 e_dialog_resizable_set(cfd->dia, 1);
664 _adv_apply(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
666 Eina_List *fl = NULL, *l;
670 if (!(z = e_zone_current_get(cfdata->cfd->con))) return 0;
671 if (!(d = e_desk_current_get(z))) return 0;
672 if (cfdata->use_theme_bg)
674 while (e_config->desktop_backgrounds)
676 E_Config_Desktop_Background *cfbg;
678 cfbg = e_config->desktop_backgrounds->data;
679 e_bg_del(cfbg->container, cfbg->zone, cfbg->desk_x, cfbg->desk_y);
681 e_bg_default_set(NULL);
685 if (cfdata->all_this_desk_screen == E_CONFIG_WALLPAPER_ALL)
687 while (e_config->desktop_backgrounds)
689 E_Config_Desktop_Background *cfbg;
691 cfbg = e_config->desktop_backgrounds->data;
692 e_bg_del(cfbg->container, cfbg->zone, cfbg->desk_x, cfbg->desk_y);
694 e_bg_default_set(cfdata->bg);
696 else if (cfdata->all_this_desk_screen == E_CONFIG_WALLPAPER_DESK)
698 e_bg_del(z->container->num, z->id, d->x, d->y);
699 e_bg_del(z->container->num, -1, d->x, d->y);
700 e_bg_del(-1, z->id, d->x, d->y);
701 e_bg_del(-1, -1, d->x, d->y);
702 e_bg_add(z->container->num, z->id, d->x, d->y, cfdata->bg);
704 else if (cfdata->all_this_desk_screen == E_CONFIG_WALLPAPER_SCREEN)
706 for (l = e_config->desktop_backgrounds; l; l = l->next)
708 E_Config_Desktop_Background *cfbg;
711 if ((cfbg->container == (int)z->container->num) &&
712 (cfbg->zone == z->id))
713 fl = eina_list_append(fl, cfbg);
717 E_Config_Desktop_Background *cfbg;
720 e_bg_del(cfbg->container, cfbg->zone, cfbg->desk_x,
722 fl = eina_list_remove_list(fl, fl);
724 e_bg_add(z->container->num, z->id, -1, -1, cfdata->bg);
728 e_config_save_queue();