revert stringshare changes by zmike - they break xsettings support. it

works again now i revert these.



SVN revision: 74625
This commit is contained in:
Carsten Haitzler 2012-07-31 09:05:39 +00:00
parent ffdf9b4b8a
commit dc4d2d73c8
1 changed files with 24 additions and 24 deletions

View File

@ -52,10 +52,10 @@ static Eio_File *eio_op = NULL;
static Eina_Bool setting = EINA_FALSE;
static Eina_Bool reset = EINA_FALSE;
static Ecore_Idle_Enterer *xsettings_idler = NULL;
static const char *_setting_icon_theme_name = NULL;
static const char *_setting_theme_name = NULL;
static const char *_setting_font_name = NULL;
static const char *_setting_xft_dpi = NULL;
static const char _setting_icon_theme_name[] = "Net/IconThemeName";
static const char _setting_theme_name[] = "Net/ThemeName";
static const char _setting_font_name[] = "Gtk/FontName";
static const char _setting_xft_dpi[] = "Xft/DPI";
static char *_setting_theme = NULL;
static void _e_xsettings_done_cb(void *data, Eio_File *handler, const Eina_Stat *stat);
@ -166,6 +166,9 @@ _e_xsettings_string_set(const char *name, const char *value)
Eina_List *l;
if (!name) return;
if (name == _setting_theme_name)
e_config->xsettings.net_theme_name_detected = value;
name = eina_stringshare_add(name);
EINA_LIST_FOREACH(settings, l, s)
{
@ -175,27 +178,29 @@ _e_xsettings_string_set(const char *name, const char *value)
if (!value)
{
if (!s) return;
DBG("remove %s", name);
DBG("remove %s\n", name);
eina_stringshare_del(name);
eina_stringshare_del(s->name);
eina_stringshare_del(s->s.value);
settings = eina_list_remove(settings, s);
E_FREE(s);
if (name == _setting_theme_name)
e_config->xsettings.net_theme_name_detected = value;
return;
}
if (!s)
if (s)
{
DBG("add %s %s", name, value);
DBG("update %s %s\n", name, value);
eina_stringshare_del(name);
eina_stringshare_replace(&s->s.value, value);
}
else
{
DBG("add %s %s\n", name, value);
s = E_NEW(Setting, 1);
s->type = SETTING_TYPE_STRING;
s->name = name;
s->s.value = eina_stringshare_add(value);
settings = eina_list_append(settings, s);
}
else
DBG("update %s %s", name, value);
eina_stringshare_replace(&s->s.value, value);
if (name == _setting_theme_name)
e_config->xsettings.net_theme_name_detected = s->s.value;
/* type + pad + name-len + last-change-serial + str_len */
s->length = 12;
@ -212,6 +217,7 @@ _e_xsettings_int_set(const char *name, int value, Eina_Bool set)
Eina_List *l;
if (!name) return;
name = eina_stringshare_add(name);
EINA_LIST_FOREACH(settings, l, s)
{
@ -222,6 +228,8 @@ _e_xsettings_int_set(const char *name, int value, Eina_Bool set)
{
if (!s) return;
DBG("remove %s\n", name);
eina_stringshare_del(name);
eina_stringshare_del(s->name);
settings = eina_list_remove(settings, s);
E_FREE(s);
return;
@ -229,6 +237,7 @@ _e_xsettings_int_set(const char *name, int value, Eina_Bool set)
if (s)
{
DBG("update %s %d\n", name, value);
eina_stringshare_del(name);
s->i.value = value;
}
else
@ -603,6 +612,7 @@ _e_xsettings_stop(void)
EINA_LIST_FREE(settings, s)
{
if (s->name) eina_stringshare_del(s->name);
if (s->s.value) eina_stringshare_del(s->s.value);
E_FREE(s);
}
@ -623,11 +633,6 @@ e_xsettings_init(void)
if (e_config->xsettings.enabled)
_e_xsettings_start();
_setting_icon_theme_name = eina_stringshare_add("Net/IconThemeName");
_setting_theme_name = eina_stringshare_add("Net/ThemeName");
_setting_font_name = eina_stringshare_add("Gtk/FontName");
_setting_xft_dpi = eina_stringshare_add("Xft/DPI");
return 1;
}
@ -641,11 +646,6 @@ e_xsettings_shutdown(void)
xsettings_idler = NULL;
reset = setting = EINA_FALSE;
eina_stringshare_replace(&_setting_icon_theme_name, NULL);
eina_stringshare_replace(&_setting_theme_name, NULL);
eina_stringshare_replace(&_setting_font_name, NULL);
eina_stringshare_replace(&_setting_xft_dpi, NULL);
return 1;
}