diff --git a/src/bin/e_gadcon.c b/src/bin/e_gadcon.c index 4edfd046b..b6539bcad 100644 --- a/src/bin/e_gadcon.c +++ b/src/bin/e_gadcon.c @@ -764,6 +764,16 @@ e_gadcon_xdnd_window_get(E_Gadcon *gc) return gc->xdnd_win; } +EAPI void +e_gadcon_name_set(E_Gadcon *gc, const char *name) +{ + if (!gc) return; + if (!name) return; + if (gc->name == name) return; + eina_stringshare_replace(&gc->name, name); + eina_stringshare_replace(&gc->cf->name, name); +} + EAPI void e_gadcon_shelf_set(E_Gadcon *gc, E_Shelf *shelf) { diff --git a/src/bin/e_gadcon.h b/src/bin/e_gadcon.h index 882ff7c96..cc6f9241a 100644 --- a/src/bin/e_gadcon.h +++ b/src/bin/e_gadcon.h @@ -302,6 +302,7 @@ EAPI E_Menu *e_gadcon_client_util_menu_items_append(E_Gadcon_Cli EAPI void e_gadcon_client_util_menu_attach(E_Gadcon_Client *gcc); EAPI void e_gadcon_locked_set(E_Gadcon *gc, int lock); EAPI void e_gadcon_urgent_show(E_Gadcon *gc); +EAPI void e_gadcon_name_set(E_Gadcon *gc, const char *name); /* site helpers */ diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c index e471df40d..510f27c80 100644 --- a/src/bin/e_shelf.c +++ b/src/bin/e_shelf.c @@ -373,6 +373,18 @@ e_shelf_locked_set(E_Shelf *es, int lock) } } +EAPI void +e_shelf_name_set(E_Shelf *es, const char *name) +{ + if (!es) return; + if (!name) return; + if (es->name == name) return; + eina_stringshare_replace(&es->name, name); + eina_stringshare_replace(&es->cfg->name, name); + if (es->dummy) return; + e_gadcon_name_set(es->gadcon, name); +} + EAPI void e_shelf_toggle(E_Shelf *es, int show) { diff --git a/src/bin/e_shelf.h b/src/bin/e_shelf.h index df3253fed..2c210c4a4 100644 --- a/src/bin/e_shelf.h +++ b/src/bin/e_shelf.h @@ -82,6 +82,7 @@ EAPI void e_shelf_position_calc(E_Shelf *es); EAPI void e_shelf_style_set(E_Shelf *es, const char *style); EAPI void e_shelf_popup_set(E_Shelf *es, int popup); EAPI E_Shelf *e_shelf_config_new(E_Zone *zone, E_Config_Shelf *cf_es); +EAPI void e_shelf_name_set(E_Shelf *es, const char *name); #endif #endif diff --git a/src/modules/conf_shelves/e_int_config_shelf.c b/src/modules/conf_shelves/e_int_config_shelf.c index edb3799ed..05d3f9ad5 100644 --- a/src/modules/conf_shelves/e_int_config_shelf.c +++ b/src/modules/conf_shelves/e_int_config_shelf.c @@ -477,14 +477,12 @@ _rename_shelf_cb_ok(void *data, E_Dialog *dia) return; } es = e_widget_ilist_selected_data_get(cfdata->o_list); - eina_stringshare_replace(&es->name, cfdata->new_shelf); + e_shelf_name_set(es, cfdata->new_shelf); e_config_save_queue(); e_shelf_config_update(); cfdata->dia_new_shelf = NULL; e_object_unref(E_OBJECT(dia)); - _ilist_empty(cfdata); - _ilist_fill(cfdata); } static void