forked from enlightenment/enlightenment
parent
bb2b0b3b55
commit
49cdf502fb
|
@ -1430,8 +1430,35 @@ e_border_act_kill_begin(E_Border *bd)
|
||||||
e_object_del(E_OBJECT(bd));
|
e_object_del(E_OBJECT(bd));
|
||||||
}
|
}
|
||||||
|
|
||||||
void e_border_icon_add(E_Border *bd, Evas *e)
|
/* FIXME: Prefer app icon or own icon? */
|
||||||
|
Evas_Object *
|
||||||
|
e_border_icon_add(E_Border *bd, Evas *evas)
|
||||||
{
|
{
|
||||||
|
Evas_Object *o;
|
||||||
|
|
||||||
|
o = NULL;
|
||||||
|
if (bd->client.netwm.icon.data)
|
||||||
|
{
|
||||||
|
printf("icon size: %d %d\n", bd->client.netwm.icon.width, bd->client.netwm.icon.height);
|
||||||
|
o = e_icon_add(evas);
|
||||||
|
e_icon_data_set(o, bd->client.netwm.icon.data,
|
||||||
|
bd->client.netwm.icon.width,
|
||||||
|
bd->client.netwm.icon.height);
|
||||||
|
e_icon_alpha_set(o, 1);
|
||||||
|
}
|
||||||
|
else if ((bd->client.icccm.name) && (bd->client.icccm.class))
|
||||||
|
{
|
||||||
|
E_App *a;
|
||||||
|
|
||||||
|
a = e_app_window_name_class_find(bd->client.icccm.name,
|
||||||
|
bd->client.icccm.class);
|
||||||
|
if (a)
|
||||||
|
{
|
||||||
|
o = edje_object_add(evas);
|
||||||
|
edje_object_file_set(o, a->path, "icon");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return o;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -2889,44 +2916,7 @@ _e_border_eval(E_Border *bd)
|
||||||
if (pname) free(pname);
|
if (pname) free(pname);
|
||||||
if (pclass) free(pclass);
|
if (pclass) free(pclass);
|
||||||
if (nc_change)
|
if (nc_change)
|
||||||
{
|
bd->changes.icon = 1;
|
||||||
E_App *a;
|
|
||||||
|
|
||||||
a = NULL;
|
|
||||||
if (bd->icon_object)
|
|
||||||
{
|
|
||||||
evas_object_del(bd->icon_object);
|
|
||||||
bd->icon_object = NULL;
|
|
||||||
}
|
|
||||||
if ((bd->client.icccm.name) && (bd->client.icccm.class))
|
|
||||||
{
|
|
||||||
printf("name: %s, class: %s\n", bd->client.icccm.name, bd->client.icccm.class);
|
|
||||||
a = e_app_window_name_class_find(bd->client.icccm.name,
|
|
||||||
bd->client.icccm.class);
|
|
||||||
if (a)
|
|
||||||
{
|
|
||||||
bd->icon_object = edje_object_add(bd->bg_evas);
|
|
||||||
edje_object_file_set(bd->icon_object, a->path, "icon");
|
|
||||||
if (bd->bg_object)
|
|
||||||
{
|
|
||||||
evas_object_show(bd->icon_object);
|
|
||||||
edje_object_part_swallow(bd->bg_object, "icon_swallow", bd->icon_object);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
evas_object_hide(bd->icon_object);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
{
|
|
||||||
E_Event_Border_Icon_Change *ev;
|
|
||||||
|
|
||||||
ev = calloc(1, sizeof(E_Event_Border_Icon_Change));
|
|
||||||
ev->border = bd;
|
|
||||||
e_object_ref(E_OBJECT(bd));
|
|
||||||
ecore_event_add(E_EVENT_BORDER_ICON_CHANGE, ev, _e_border_event_border_icon_change_free, NULL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bd->client.icccm.fetch.name_class = 0;
|
bd->client.icccm.fetch.name_class = 0;
|
||||||
}
|
}
|
||||||
if (bd->client.icccm.fetch.icon_name)
|
if (bd->client.icccm.fetch.icon_name)
|
||||||
|
@ -2943,7 +2933,6 @@ _e_border_eval(E_Border *bd)
|
||||||
|
|
||||||
bd->client.netwm.fetch.icon_name = 0;
|
bd->client.netwm.fetch.icon_name = 0;
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
if (bd->client.netwm.fetch.icon)
|
if (bd->client.netwm.fetch.icon)
|
||||||
{
|
{
|
||||||
if (bd->client.netwm.icon.data) free(bd->client.netwm.icon.data);
|
if (bd->client.netwm.icon.data) free(bd->client.netwm.icon.data);
|
||||||
|
@ -2952,30 +2941,38 @@ _e_border_eval(E_Border *bd)
|
||||||
&bd->client.netwm.icon.data, &bd->client.netwm.icon.size))
|
&bd->client.netwm.icon.data, &bd->client.netwm.icon.size))
|
||||||
printf("ERROR: Fetch icon from client\n");
|
printf("ERROR: Fetch icon from client\n");
|
||||||
else
|
else
|
||||||
{
|
bd->changes.icon = 1;
|
||||||
if (bd->icon_object)
|
|
||||||
{
|
|
||||||
evas_object_del(bd->icon_object);
|
|
||||||
bd->icon_object = NULL;
|
|
||||||
}
|
|
||||||
bd->icon_object = e_icon_add(bd->bg_evas);
|
|
||||||
e_icon_data_set(bd->icon_object, bd->client.netwm.icon.data,
|
|
||||||
bd->client.netwm.icon.width, bd->client.netwm.icon.height);
|
|
||||||
e_icon_alpha_set(bd->icon_object, 1);
|
|
||||||
|
|
||||||
if (bd->bg_object)
|
|
||||||
{
|
|
||||||
evas_object_show(bd->icon_object);
|
|
||||||
edje_object_part_swallow(bd->bg_object, "icon_swallow", bd->icon_object);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
evas_object_hide(bd->icon_object);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
bd->client.netwm.fetch.icon = 0;
|
bd->client.netwm.fetch.icon = 0;
|
||||||
}
|
}
|
||||||
*/
|
if (bd->changes.icon)
|
||||||
|
{
|
||||||
|
if (bd->icon_object)
|
||||||
|
{
|
||||||
|
evas_object_del(bd->icon_object);
|
||||||
|
bd->icon_object = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
bd->icon_object = e_border_icon_add(bd, bd->bg_evas);
|
||||||
|
if (bd->bg_object)
|
||||||
|
{
|
||||||
|
evas_object_show(bd->icon_object);
|
||||||
|
edje_object_part_swallow(bd->bg_object, "icon_swallow", bd->icon_object);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
evas_object_hide(bd->icon_object);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
E_Event_Border_Icon_Change *ev;
|
||||||
|
|
||||||
|
ev = calloc(1, sizeof(E_Event_Border_Icon_Change));
|
||||||
|
ev->border = bd;
|
||||||
|
e_object_ref(E_OBJECT(bd));
|
||||||
|
ecore_event_add(E_EVENT_BORDER_ICON_CHANGE, ev, _e_border_event_border_icon_change_free, NULL);
|
||||||
|
}
|
||||||
|
bd->changes.icon = 0;
|
||||||
|
}
|
||||||
if (bd->client.icccm.fetch.machine)
|
if (bd->client.icccm.fetch.machine)
|
||||||
{
|
{
|
||||||
if (bd->client.icccm.machine) free(bd->client.icccm.machine);
|
if (bd->client.icccm.machine) free(bd->client.icccm.machine);
|
||||||
|
|
|
@ -252,16 +252,17 @@ struct _E_Border
|
||||||
Evas_List *pending_move_resize;
|
Evas_List *pending_move_resize;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
unsigned int visible : 1;
|
unsigned char visible : 1;
|
||||||
unsigned int pos : 1;
|
unsigned char pos : 1;
|
||||||
unsigned int size : 1;
|
unsigned char size : 1;
|
||||||
unsigned int stack : 1;
|
unsigned char stack : 1;
|
||||||
unsigned int prop : 1;
|
unsigned char prop : 1;
|
||||||
unsigned int border : 1;
|
unsigned char border : 1;
|
||||||
unsigned int reset_gravity : 1;
|
unsigned char reset_gravity : 1;
|
||||||
unsigned int shading : 1;
|
unsigned char shading : 1;
|
||||||
unsigned int shaded : 1;
|
unsigned char shaded : 1;
|
||||||
unsigned int shape : 1;
|
unsigned char shape : 1;
|
||||||
|
unsigned char icon : 1;
|
||||||
} changes;
|
} changes;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
|
@ -408,7 +409,7 @@ EAPI void e_border_act_menu_begin(E_Border *bd, Ecore_X_Event_Mouse_Button_Down
|
||||||
EAPI void e_border_act_close_begin(E_Border *bd);
|
EAPI void e_border_act_close_begin(E_Border *bd);
|
||||||
EAPI void e_border_act_kill_begin(E_Border *bd);
|
EAPI void e_border_act_kill_begin(E_Border *bd);
|
||||||
|
|
||||||
EAPI void e_border_icon_add(E_Border *bd, Evas *e);
|
EAPI Evas_Object *e_border_icon_add(E_Border *bd, Evas *evas);
|
||||||
|
|
||||||
EAPI void e_border_button_bindings_ungrab_all(void);
|
EAPI void e_border_button_bindings_ungrab_all(void);
|
||||||
EAPI void e_border_button_bindings_grab_all(void);
|
EAPI void e_border_button_bindings_grab_all(void);
|
||||||
|
|
|
@ -208,7 +208,10 @@ e_container_current_get(E_Manager *man)
|
||||||
return con;
|
return con;
|
||||||
}
|
}
|
||||||
/* If noone is available, return the first */
|
/* If noone is available, return the first */
|
||||||
return (E_Container *)man->containers->data;
|
if (!man->containers)
|
||||||
|
return NULL;
|
||||||
|
l = man->containers;
|
||||||
|
return (E_Container *)l->data;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -474,7 +474,6 @@ _ibox_icon_new(IBox_Box *ibb, E_Border *bd)
|
||||||
char *str;
|
char *str;
|
||||||
Evas_Object *o;
|
Evas_Object *o;
|
||||||
Evas_Coord bw, bh;
|
Evas_Coord bw, bh;
|
||||||
const char *file, *part;
|
|
||||||
|
|
||||||
/* FIXME: Add default icon! */
|
/* FIXME: Add default icon! */
|
||||||
if (!bd->icon_object) return NULL;
|
if (!bd->icon_object) return NULL;
|
||||||
|
@ -505,11 +504,11 @@ _ibox_icon_new(IBox_Box *ibb, E_Border *bd)
|
||||||
"modules/ibox/icon");
|
"modules/ibox/icon");
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
|
|
||||||
o = edje_object_add(ibb->evas);
|
o = e_border_icon_add(ic->border, ibb->evas);
|
||||||
ic->icon_object = o;
|
evas_object_resize(o, ibb->ibox->conf->iconsize, ibb->ibox->conf->iconsize);
|
||||||
edje_object_file_get(ic->border->icon_object, &file, &part);
|
/*
|
||||||
edje_object_file_set(o, file, part);
|
|
||||||
edje_extern_object_min_size_set(o, ibb->ibox->conf->iconsize, ibb->ibox->conf->iconsize);
|
edje_extern_object_min_size_set(o, ibb->ibox->conf->iconsize, ibb->ibox->conf->iconsize);
|
||||||
|
*/
|
||||||
edje_object_part_swallow(ic->bg_object, "item", o);
|
edje_object_part_swallow(ic->bg_object, "item", o);
|
||||||
edje_object_size_min_calc(ic->bg_object, &bw, &bh);
|
edje_object_size_min_calc(ic->bg_object, &bw, &bh);
|
||||||
evas_object_pass_events_set(o, 1);
|
evas_object_pass_events_set(o, 1);
|
||||||
|
@ -534,11 +533,13 @@ _ibox_icon_new(IBox_Box *ibb, E_Border *bd)
|
||||||
bw, bh /* max */
|
bw, bh /* max */
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/*
|
||||||
str = (char *)edje_object_data_get(ic->icon_object, "raise_on_hilight");
|
str = (char *)edje_object_data_get(ic->icon_object, "raise_on_hilight");
|
||||||
if (str)
|
if (str)
|
||||||
{
|
{
|
||||||
if (atoi(str) == 1) ic->raise_on_hilight = 1;
|
if (atoi(str) == 1) ic->raise_on_hilight = 1;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
edje_object_signal_emit(ic->bg_object, "passive", "");
|
edje_object_signal_emit(ic->bg_object, "passive", "");
|
||||||
edje_object_signal_emit(ic->overlay_object, "passive", "");
|
edje_object_signal_emit(ic->overlay_object, "passive", "");
|
||||||
|
@ -1233,7 +1234,9 @@ _ibox_box_iconsize_change(IBox_Box *ibb)
|
||||||
|
|
||||||
ic = l->data;
|
ic = l->data;
|
||||||
o = ic->icon_object;
|
o = ic->icon_object;
|
||||||
|
/*
|
||||||
edje_extern_object_min_size_set(o, ibb->ibox->conf->iconsize, ibb->ibox->conf->iconsize);
|
edje_extern_object_min_size_set(o, ibb->ibox->conf->iconsize, ibb->ibox->conf->iconsize);
|
||||||
|
*/
|
||||||
|
|
||||||
evas_object_resize(o, ibb->ibox->conf->iconsize, ibb->ibox->conf->iconsize);
|
evas_object_resize(o, ibb->ibox->conf->iconsize, ibb->ibox->conf->iconsize);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue