forked from enlightenment/enlightenment
e17: use stringshare for icccm/netwm properties
SVN revision: 62935
This commit is contained in:
parent
0135a46b74
commit
69076c2a32
|
@ -4362,14 +4362,23 @@ _e_border_free(E_Border *bd)
|
||||||
}
|
}
|
||||||
if (bd->client.netwm.extra_types)
|
if (bd->client.netwm.extra_types)
|
||||||
free(bd->client.netwm.extra_types);
|
free(bd->client.netwm.extra_types);
|
||||||
if (bd->client.border.name) eina_stringshare_del(bd->client.border.name);
|
if (bd->client.border.name)
|
||||||
if (bd->bordername) eina_stringshare_del(bd->bordername);
|
eina_stringshare_del(bd->client.border.name);
|
||||||
if (bd->client.icccm.title) free(bd->client.icccm.title);
|
if (bd->bordername)
|
||||||
if (bd->client.icccm.name) free(bd->client.icccm.name);
|
eina_stringshare_del(bd->bordername);
|
||||||
if (bd->client.icccm.class) free(bd->client.icccm.class);
|
if (bd->client.icccm.name)
|
||||||
if (bd->client.icccm.icon_name) free(bd->client.icccm.icon_name);
|
eina_stringshare_del(bd->client.icccm.name);
|
||||||
if (bd->client.icccm.machine) free(bd->client.icccm.machine);
|
if (bd->client.icccm.class)
|
||||||
if (bd->client.icccm.window_role) free(bd->client.icccm.window_role);
|
eina_stringshare_del(bd->client.icccm.class);
|
||||||
|
if (bd->client.icccm.title)
|
||||||
|
eina_stringshare_del(bd->client.icccm.title);
|
||||||
|
if (bd->client.icccm.icon_name)
|
||||||
|
eina_stringshare_del(bd->client.icccm.icon_name);
|
||||||
|
if (bd->client.icccm.machine)
|
||||||
|
eina_stringshare_del(bd->client.icccm.machine);
|
||||||
|
if (bd->client.icccm.window_role)
|
||||||
|
eina_stringshare_del(bd->client.icccm.window_role);
|
||||||
|
|
||||||
if ((bd->client.icccm.command.argc > 0) && (bd->client.icccm.command.argv))
|
if ((bd->client.icccm.command.argc > 0) && (bd->client.icccm.command.argv))
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -4378,8 +4387,10 @@ _e_border_free(E_Border *bd)
|
||||||
free(bd->client.icccm.command.argv[i]);
|
free(bd->client.icccm.command.argv[i]);
|
||||||
free(bd->client.icccm.command.argv);
|
free(bd->client.icccm.command.argv);
|
||||||
}
|
}
|
||||||
if (bd->client.netwm.name) free(bd->client.netwm.name);
|
if (bd->client.netwm.name)
|
||||||
if (bd->client.netwm.icon_name) free(bd->client.netwm.icon_name);
|
eina_stringshare_del(bd->client.netwm.name);
|
||||||
|
if (bd->client.netwm.icon_name)
|
||||||
|
eina_stringshare_del(bd->client.netwm.icon_name);
|
||||||
e_object_del(E_OBJECT(bd->shape));
|
e_object_del(E_OBJECT(bd->shape));
|
||||||
if (bd->internal_icon) eina_stringshare_del(bd->internal_icon);
|
if (bd->internal_icon) eina_stringshare_del(bd->internal_icon);
|
||||||
if (bd->internal_icon_key) eina_stringshare_del(bd->internal_icon_key);
|
if (bd->internal_icon_key) eina_stringshare_del(bd->internal_icon_key);
|
||||||
|
@ -6315,51 +6326,50 @@ _e_border_eval0(E_Border *bd)
|
||||||
}
|
}
|
||||||
if (bd->client.icccm.fetch.title)
|
if (bd->client.icccm.fetch.title)
|
||||||
{
|
{
|
||||||
if (bd->client.icccm.title) free(bd->client.icccm.title);
|
char *title = ecore_x_icccm_title_get(bd->client.win);
|
||||||
bd->client.icccm.title = ecore_x_icccm_title_get(bd->client.win);
|
eina_stringshare_replace(&bd->client.icccm.title, title);
|
||||||
|
if (title) free(title);
|
||||||
bd->client.icccm.fetch.title = 0;
|
|
||||||
if (bd->bg_object)
|
if (bd->bg_object)
|
||||||
edje_object_part_text_set(bd->bg_object, "e.text.title",
|
edje_object_part_text_set(bd->bg_object, "e.text.title",
|
||||||
bd->client.icccm.title);
|
bd->client.icccm.title);
|
||||||
|
bd->client.icccm.fetch.title = 0;
|
||||||
rem_change = 1;
|
rem_change = 1;
|
||||||
}
|
}
|
||||||
if (bd->client.netwm.fetch.name)
|
if (bd->client.netwm.fetch.name)
|
||||||
{
|
{
|
||||||
if (bd->client.netwm.name) free(bd->client.netwm.name);
|
char *name;
|
||||||
ecore_x_netwm_name_get(bd->client.win, &bd->client.netwm.name);
|
ecore_x_netwm_name_get(bd->client.win, &name);
|
||||||
|
eina_stringshare_replace(&bd->client.netwm.name, name);
|
||||||
|
if (name) free(name);
|
||||||
|
|
||||||
bd->client.netwm.fetch.name = 0;
|
|
||||||
if (bd->bg_object)
|
if (bd->bg_object)
|
||||||
edje_object_part_text_set(bd->bg_object, "e.text.title",
|
edje_object_part_text_set(bd->bg_object, "e.text.title",
|
||||||
bd->client.netwm.name);
|
bd->client.netwm.name);
|
||||||
|
bd->client.netwm.fetch.name = 0;
|
||||||
rem_change = 1;
|
rem_change = 1;
|
||||||
}
|
}
|
||||||
if (bd->client.icccm.fetch.name_class)
|
if (bd->client.icccm.fetch.name_class)
|
||||||
{
|
{
|
||||||
int nc_change = 0;
|
const char *pname, *pclass;
|
||||||
char *pname, *pclass;
|
char *nname, *nclass;
|
||||||
|
|
||||||
pname = bd->client.icccm.name;
|
pname = bd->client.icccm.name;
|
||||||
pclass = bd->client.icccm.class;
|
pclass = bd->client.icccm.class;
|
||||||
ecore_x_icccm_name_class_get(bd->client.win, &bd->client.icccm.name, &bd->client.icccm.class);
|
|
||||||
if ((pname) && (bd->client.icccm.name) &&
|
ecore_x_icccm_name_class_get(bd->client.win, &nname, &nclass);
|
||||||
(pclass) && (bd->client.icccm.class))
|
|
||||||
{
|
eina_stringshare_replace(&bd->client.icccm.name, nname);
|
||||||
if (!((!strcmp(bd->client.icccm.name, pname)) &&
|
eina_stringshare_replace(&bd->client.icccm.class, nclass);
|
||||||
(!strcmp(bd->client.icccm.class, pclass))))
|
if (nname) free(nname);
|
||||||
nc_change = 1;
|
if (nclass) free(nclass);
|
||||||
}
|
|
||||||
else if (((!pname) || (!pclass)) &&
|
if (!((bd->client.icccm.name == pname) &&
|
||||||
((bd->client.icccm.name) || (bd->client.icccm.class)))
|
(bd->client.icccm.class == pclass)))
|
||||||
nc_change = 1;
|
|
||||||
else if (((bd->client.icccm.name) || (bd->client.icccm.class)) &&
|
|
||||||
((!pname) || (!pclass)))
|
|
||||||
nc_change = 1;
|
|
||||||
if (pname) free(pname);
|
|
||||||
if (pclass) free(pclass);
|
|
||||||
if (nc_change)
|
|
||||||
bd->changes.icon = 1;
|
bd->changes.icon = 1;
|
||||||
|
|
||||||
|
if (pname) eina_stringshare_del(pname);
|
||||||
|
if (pclass) eina_stringshare_del(pclass);
|
||||||
bd->client.icccm.fetch.name_class = 0;
|
bd->client.icccm.fetch.name_class = 0;
|
||||||
rem_change = 1;
|
rem_change = 1;
|
||||||
}
|
}
|
||||||
|
@ -6398,11 +6408,14 @@ _e_border_eval0(E_Border *bd)
|
||||||
}
|
}
|
||||||
if (bd->client.icccm.fetch.machine)
|
if (bd->client.icccm.fetch.machine)
|
||||||
{
|
{
|
||||||
if (bd->client.icccm.machine) free(bd->client.icccm.machine);
|
char *machine = ecore_x_icccm_client_machine_get(bd->client.win);
|
||||||
bd->client.icccm.machine = ecore_x_icccm_client_machine_get(bd->client.win);
|
|
||||||
if ((bd->client.icccm.client_leader) &&
|
if ((!machine) && (bd->client.icccm.client_leader))
|
||||||
(!bd->client.icccm.machine))
|
machine = ecore_x_icccm_client_machine_get(bd->client.icccm.client_leader);
|
||||||
ecore_x_icccm_client_machine_get(bd->client.icccm.client_leader);
|
|
||||||
|
eina_stringshare_replace(&bd->client.icccm.machine, machine);
|
||||||
|
if (machine) free(machine);
|
||||||
|
|
||||||
bd->client.icccm.fetch.machine = 0;
|
bd->client.icccm.fetch.machine = 0;
|
||||||
rem_change = 1;
|
rem_change = 1;
|
||||||
}
|
}
|
||||||
|
@ -6590,22 +6603,29 @@ _e_border_eval0(E_Border *bd)
|
||||||
}
|
}
|
||||||
if (bd->client.icccm.fetch.window_role)
|
if (bd->client.icccm.fetch.window_role)
|
||||||
{
|
{
|
||||||
if (bd->client.icccm.window_role) free(bd->client.icccm.window_role);
|
char *role = ecore_x_icccm_window_role_get(bd->client.win);
|
||||||
bd->client.icccm.window_role = ecore_x_icccm_window_role_get(bd->client.win);
|
eina_stringshare_replace(&bd->client.icccm.window_role, role);
|
||||||
|
if (role) free(role);
|
||||||
|
|
||||||
bd->client.icccm.fetch.window_role = 0;
|
bd->client.icccm.fetch.window_role = 0;
|
||||||
rem_change = 1;
|
rem_change = 1;
|
||||||
}
|
}
|
||||||
if (bd->client.icccm.fetch.icon_name)
|
if (bd->client.icccm.fetch.icon_name)
|
||||||
{
|
{
|
||||||
if (bd->client.icccm.icon_name) free(bd->client.icccm.icon_name);
|
char *icon_name = ecore_x_icccm_icon_name_get(bd->client.win);
|
||||||
bd->client.icccm.icon_name = ecore_x_icccm_icon_name_get(bd->client.win);
|
eina_stringshare_replace(&bd->client.icccm.icon_name, icon_name);
|
||||||
|
if (icon_name) free(icon_name);
|
||||||
|
|
||||||
bd->client.icccm.fetch.icon_name = 0;
|
bd->client.icccm.fetch.icon_name = 0;
|
||||||
rem_change = 1;
|
rem_change = 1;
|
||||||
}
|
}
|
||||||
if (bd->client.netwm.fetch.icon_name)
|
if (bd->client.netwm.fetch.icon_name)
|
||||||
{
|
{
|
||||||
if (bd->client.netwm.icon_name) free(bd->client.netwm.icon_name);
|
char *icon_name;
|
||||||
ecore_x_netwm_icon_name_get(bd->client.win, &bd->client.netwm.icon_name);
|
ecore_x_netwm_icon_name_get(bd->client.win, &icon_name);
|
||||||
|
eina_stringshare_replace(&bd->client.netwm.icon_name, icon_name);
|
||||||
|
if (icon_name) free(icon_name);
|
||||||
|
|
||||||
bd->client.netwm.fetch.icon_name = 0;
|
bd->client.netwm.fetch.icon_name = 0;
|
||||||
rem_change = 1;
|
rem_change = 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -195,11 +195,11 @@ struct _E_Border
|
||||||
|
|
||||||
/* ICCCM */
|
/* ICCCM */
|
||||||
struct {
|
struct {
|
||||||
char *title;
|
const char *title;
|
||||||
char *name;
|
const char *name;
|
||||||
char *class;
|
const char *class;
|
||||||
char *icon_name;
|
const char *icon_name;
|
||||||
char *machine;
|
const char *machine;
|
||||||
int min_w, min_h;
|
int min_w, min_h;
|
||||||
int max_w, max_h;
|
int max_w, max_h;
|
||||||
int base_w, base_h;
|
int base_w, base_h;
|
||||||
|
@ -215,7 +215,7 @@ struct _E_Border
|
||||||
Ecore_X_Window transient_for;
|
Ecore_X_Window transient_for;
|
||||||
Ecore_X_Window client_leader;
|
Ecore_X_Window client_leader;
|
||||||
Ecore_X_Gravity gravity;
|
Ecore_X_Gravity gravity;
|
||||||
char *window_role;
|
const char *window_role;
|
||||||
unsigned char take_focus : 1;
|
unsigned char take_focus : 1;
|
||||||
unsigned char accepts_focus : 1;
|
unsigned char accepts_focus : 1;
|
||||||
unsigned char urgent : 1;
|
unsigned char urgent : 1;
|
||||||
|
@ -257,8 +257,8 @@ struct _E_Border
|
||||||
struct {
|
struct {
|
||||||
pid_t pid;
|
pid_t pid;
|
||||||
unsigned int desktop;
|
unsigned int desktop;
|
||||||
char *name;
|
const char *name;
|
||||||
char *icon_name;
|
const char *icon_name;
|
||||||
Ecore_X_Icon *icons;
|
Ecore_X_Icon *icons;
|
||||||
int num_icons;
|
int num_icons;
|
||||||
unsigned int user_time;
|
unsigned int user_time;
|
||||||
|
|
Loading…
Reference in New Issue