forked from enlightenment/enlightenment
parent
030eaa7d30
commit
a1d592e073
|
@ -39,7 +39,7 @@ _NET_WM_ACTION_STICK [ ]
|
||||||
_NET_WM_ALLOWED_ACTIONS [ ]
|
_NET_WM_ALLOWED_ACTIONS [ ]
|
||||||
_NET_WM_DESKTOP [?] /* Remove this property on unmap */
|
_NET_WM_DESKTOP [?] /* Remove this property on unmap */
|
||||||
_NET_WM_HANDLED_ICONS [ ]
|
_NET_WM_HANDLED_ICONS [ ]
|
||||||
_NET_WM_ICON [ ]
|
_NET_WM_ICON [X]
|
||||||
_NET_WM_ICON_GEOMETRY [ ]
|
_NET_WM_ICON_GEOMETRY [ ]
|
||||||
_NET_WM_ICON_NAME [X]
|
_NET_WM_ICON_NAME [X]
|
||||||
_NET_WM_MOVERESIZE [ ]
|
_NET_WM_MOVERESIZE [ ]
|
||||||
|
|
|
@ -351,6 +351,10 @@ e_border_new(E_Container *con, Ecore_X_Window win, int first_map)
|
||||||
bd->client.icccm.fetch.icon_name = 0;
|
bd->client.icccm.fetch.icon_name = 0;
|
||||||
bd->client.netwm.fetch.icon_name = 1;
|
bd->client.netwm.fetch.icon_name = 1;
|
||||||
}
|
}
|
||||||
|
else if (atoms[i] == ECORE_X_ATOM_NET_WM_ICON)
|
||||||
|
{
|
||||||
|
bd->client.netwm.fetch.icon = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
free(atoms);
|
free(atoms);
|
||||||
}
|
}
|
||||||
|
@ -1426,6 +1430,10 @@ 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)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
e_border_button_bindings_ungrab_all(void)
|
e_border_button_bindings_ungrab_all(void)
|
||||||
{
|
{
|
||||||
|
@ -1930,6 +1938,13 @@ _e_border_cb_window_property(void *data, int ev_type, void *ev)
|
||||||
bd->client.icccm.fetch.window_role = 1;
|
bd->client.icccm.fetch.window_role = 1;
|
||||||
bd->changed = 1;
|
bd->changed = 1;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
else if (e->atom == ECORE_X_ATOM_NET_WM_ICON)
|
||||||
|
{
|
||||||
|
bd->client.netwm.fetch.icon = 1;
|
||||||
|
bd->changed = 1;
|
||||||
|
}
|
||||||
|
*/
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2928,6 +2943,39 @@ _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.icon.data) free(bd->client.netwm.icon.data);
|
||||||
|
if (!ecore_x_netwm_icon_get(bd->client.win,
|
||||||
|
&bd->client.netwm.icon.width, &bd->client.netwm.icon.height,
|
||||||
|
&bd->client.netwm.icon.data, &bd->client.netwm.icon.size))
|
||||||
|
printf("ERROR: Fetch icon from client\n");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
*/
|
||||||
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);
|
||||||
|
|
|
@ -162,6 +162,12 @@ struct _E_Border
|
||||||
unsigned int desktop;
|
unsigned int desktop;
|
||||||
char *name;
|
char *name;
|
||||||
char *icon_name;
|
char *icon_name;
|
||||||
|
struct {
|
||||||
|
unsigned int *data;
|
||||||
|
int width;
|
||||||
|
int height;
|
||||||
|
int size;
|
||||||
|
} icon;
|
||||||
|
|
||||||
/* NetWM Window state */
|
/* NetWM Window state */
|
||||||
struct {
|
struct {
|
||||||
|
@ -181,6 +187,8 @@ struct _E_Border
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
unsigned char name : 1;
|
unsigned char name : 1;
|
||||||
|
unsigned char icon_name : 1;
|
||||||
|
unsigned char icon : 1;
|
||||||
/* No, fetch on new_client, shouldn't be changed after map.
|
/* No, fetch on new_client, shouldn't be changed after map.
|
||||||
unsigned char pid : 1;
|
unsigned char pid : 1;
|
||||||
*/
|
*/
|
||||||
|
@ -190,7 +198,6 @@ struct _E_Border
|
||||||
/* No, fetch on new_client, shouldn't be changed after map.
|
/* No, fetch on new_client, shouldn't be changed after map.
|
||||||
unsigned char type : 1;
|
unsigned char type : 1;
|
||||||
*/
|
*/
|
||||||
unsigned char icon_name : 1;
|
|
||||||
/* No, don't fetch state, update on client message
|
/* No, don't fetch state, update on client message
|
||||||
unsigned char state : 1;
|
unsigned char state : 1;
|
||||||
*/
|
*/
|
||||||
|
@ -401,6 +408,8 @@ 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 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);
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,12 @@ e_hints_init(void)
|
||||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK, 1);
|
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK, 1);
|
||||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_VIRTUAL_ROOTS, 1);
|
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_VIRTUAL_ROOTS, 1);
|
||||||
|
|
||||||
|
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_ICON, 1);
|
||||||
|
|
||||||
|
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_ICON_NAME, 1);
|
||||||
|
|
||||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_NAME, 1);
|
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_NAME, 1);
|
||||||
|
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_PID, 1);
|
||||||
|
|
||||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE, 1);
|
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE, 1);
|
||||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_STICKY, 1);
|
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_STICKY, 1);
|
||||||
|
@ -63,6 +68,9 @@ e_hints_init(void)
|
||||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_ABOVE, 1);
|
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_ABOVE, 1);
|
||||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_BELOW, 1);
|
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_STATE_BELOW, 1);
|
||||||
|
|
||||||
|
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_VISIBLE_ICON_NAME, 1);
|
||||||
|
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_VISIBLE_NAME, 1);
|
||||||
|
|
||||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_WINDOW_TYPE, 1);
|
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_WINDOW_TYPE, 1);
|
||||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP, 1);
|
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DESKTOP, 1);
|
||||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK, 1);
|
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_WM_WINDOW_TYPE_DOCK, 1);
|
||||||
|
|
|
@ -81,6 +81,24 @@ e_icon_smooth_scale_get(Evas_Object *obj)
|
||||||
return evas_object_image_smooth_scale_get(sd->obj);
|
return evas_object_image_smooth_scale_get(sd->obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
e_icon_alpha_set(Evas_Object *obj, int alpha)
|
||||||
|
{
|
||||||
|
E_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
evas_object_image_alpha_set(sd->obj, alpha);
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
e_icon_alpha_get(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
E_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
return evas_object_image_alpha_get(sd->obj);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
e_icon_size_get(Evas_Object *obj, int *w, int *h)
|
e_icon_size_get(Evas_Object *obj, int *w, int *h)
|
||||||
{
|
{
|
||||||
|
@ -112,6 +130,16 @@ e_icon_fill_inside_set(Evas_Object *obj, int fill_inside)
|
||||||
_e_icon_smart_reconfigure(sd);
|
_e_icon_smart_reconfigure(sd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
e_icon_data_set(Evas_Object *obj, void *data, int w, int h)
|
||||||
|
{
|
||||||
|
E_Smart_Data *sd;
|
||||||
|
|
||||||
|
sd = evas_object_smart_data_get(obj);
|
||||||
|
evas_object_image_size_set(sd->obj, w, h);
|
||||||
|
evas_object_image_data_copy_set(sd->obj, data);
|
||||||
|
}
|
||||||
|
|
||||||
/* local subsystem globals */
|
/* local subsystem globals */
|
||||||
static void
|
static void
|
||||||
_e_icon_smart_reconfigure(E_Smart_Data *sd)
|
_e_icon_smart_reconfigure(E_Smart_Data *sd)
|
||||||
|
|
|
@ -11,9 +11,12 @@ EAPI void e_icon_file_set (Evas_Object *obj, const char *file);
|
||||||
EAPI const char *e_icon_file_get (Evas_Object *obj);
|
EAPI const char *e_icon_file_get (Evas_Object *obj);
|
||||||
EAPI void e_icon_smooth_scale_set (Evas_Object *obj, int smooth);
|
EAPI void e_icon_smooth_scale_set (Evas_Object *obj, int smooth);
|
||||||
EAPI int e_icon_smooth_scale_get (Evas_Object *obj);
|
EAPI int e_icon_smooth_scale_get (Evas_Object *obj);
|
||||||
|
EAPI void e_icon_alpha_set (Evas_Object *obj, int smooth);
|
||||||
|
EAPI int e_icon_alpha_get (Evas_Object *obj);
|
||||||
EAPI void e_icon_size_get (Evas_Object *obj, int *w, int *h);
|
EAPI void e_icon_size_get (Evas_Object *obj, int *w, int *h);
|
||||||
EAPI int e_icon_fill_inside_get (Evas_Object *obj);
|
EAPI int e_icon_fill_inside_get (Evas_Object *obj);
|
||||||
EAPI void e_icon_fill_inside_set (Evas_Object *obj, int fill_inside);
|
EAPI void e_icon_fill_inside_set (Evas_Object *obj, int fill_inside);
|
||||||
|
EAPI void e_icon_data_set (Evas_Object *obj, void *data, int w, int h);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -35,7 +35,7 @@ __e_hack_set_properties(Display *display, Window window)
|
||||||
if (!a_manager) a_manager = XInternAtom(display, "_E_HACK_MANAGER", False);
|
if (!a_manager) a_manager = XInternAtom(display, "_E_HACK_MANAGER", False);
|
||||||
|
|
||||||
if ((env = getenv("E_LAUNCH_ID")))
|
if ((env = getenv("E_LAUNCH_ID")))
|
||||||
XChangeProperty(display, window, a_launch_id, XA_STRING, 8, PropModeReplace, env, strlen(env));
|
XChangeProperty(display, window, a_launch_id, XA_STRING, 8, PropModeReplace, (unsigned char *)env, strlen(env));
|
||||||
{
|
{
|
||||||
uid_t uid;
|
uid_t uid;
|
||||||
pid_t pid, ppid;
|
pid_t pid, ppid;
|
||||||
|
@ -47,29 +47,29 @@ __e_hack_set_properties(Display *display, Window window)
|
||||||
ppid = getppid();
|
ppid = getppid();
|
||||||
|
|
||||||
snprintf(buf, sizeof(buf), "%i", uid);
|
snprintf(buf, sizeof(buf), "%i", uid);
|
||||||
XChangeProperty(display, window, a_user_id, XA_STRING, 8, PropModeReplace, buf, strlen(buf));
|
XChangeProperty(display, window, a_user_id, XA_STRING, 8, PropModeReplace, (unsigned char *)buf, strlen(buf));
|
||||||
snprintf(buf, sizeof(buf), "%i", pid);
|
snprintf(buf, sizeof(buf), "%i", pid);
|
||||||
XChangeProperty(display, window, a_process_id, XA_STRING, 8, PropModeReplace, buf, strlen(buf));
|
XChangeProperty(display, window, a_process_id, XA_STRING, 8, PropModeReplace, (unsigned char *)buf, strlen(buf));
|
||||||
snprintf(buf, sizeof(buf), "%i", ppid);
|
snprintf(buf, sizeof(buf), "%i", ppid);
|
||||||
XChangeProperty(display, window, a_p_process_id, XA_STRING, 8, PropModeReplace, buf, strlen(buf));
|
XChangeProperty(display, window, a_p_process_id, XA_STRING, 8, PropModeReplace, (unsigned char *)buf, strlen(buf));
|
||||||
if (!uname(&ubuf))
|
if (!uname(&ubuf))
|
||||||
{
|
{
|
||||||
snprintf(buf, sizeof(buf), "%s", ubuf.nodename);
|
snprintf(buf, sizeof(buf), "%s", ubuf.nodename);
|
||||||
XChangeProperty(display, window, a_machine_name, XA_STRING, 8, PropModeReplace, buf, strlen(buf));
|
XChangeProperty(display, window, a_machine_name, XA_STRING, 8, PropModeReplace, (unsigned char *)buf, strlen(buf));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
XChangeProperty(display, window, a_machine_name, XA_STRING, 8, PropModeReplace, " ", 1);
|
XChangeProperty(display, window, a_machine_name, XA_STRING, 8, PropModeReplace, (unsigned char *)" ", 1);
|
||||||
}
|
}
|
||||||
if ((env = getenv("USER")))
|
if ((env = getenv("USER")))
|
||||||
XChangeProperty(display, window, a_user_name, XA_STRING, 8, PropModeReplace, env, strlen(env));
|
XChangeProperty(display, window, a_user_name, XA_STRING, 8, PropModeReplace, (unsigned char *)env, strlen(env));
|
||||||
if ((env = getenv("E_DESK")))
|
if ((env = getenv("E_DESK")))
|
||||||
XChangeProperty(display, window, a_desk, XA_STRING, 8, PropModeReplace, env, strlen(env));
|
XChangeProperty(display, window, a_desk, XA_STRING, 8, PropModeReplace, (unsigned char *)env, strlen(env));
|
||||||
if ((env = getenv("E_ZONE")))
|
if ((env = getenv("E_ZONE")))
|
||||||
XChangeProperty(display, window, a_zone, XA_STRING, 8, PropModeReplace, env, strlen(env));
|
XChangeProperty(display, window, a_zone, XA_STRING, 8, PropModeReplace, (unsigned char *)env, strlen(env));
|
||||||
if ((env = getenv("E_CONTAINER")))
|
if ((env = getenv("E_CONTAINER")))
|
||||||
XChangeProperty(display, window, a_container, XA_STRING, 8, PropModeReplace, env, strlen(env));
|
XChangeProperty(display, window, a_container, XA_STRING, 8, PropModeReplace, (unsigned char *)env, strlen(env));
|
||||||
if ((env = getenv("E_MANAGER")))
|
if ((env = getenv("E_MANAGER")))
|
||||||
XChangeProperty(display, window, a_manager, XA_STRING, 8, PropModeReplace, env, strlen(env));
|
XChangeProperty(display, window, a_manager, XA_STRING, 8, PropModeReplace, (unsigned char *)env, strlen(env));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* XCreateWindow intercept hack */
|
/* XCreateWindow intercept hack */
|
||||||
|
|
Loading…
Reference in New Issue