forked from enlightenment/enlightenment
parent
82f67c7719
commit
22d7cdc7c2
|
@ -23,7 +23,7 @@ _NET_DESKTOP_VIEWPORT [P]
|
|||
_NET_FRAME_EXTENTS [X]
|
||||
_NET_MOVERESIZE_WINDOW [P]
|
||||
_NET_NUMBER_OF_DESKTOPS [P]
|
||||
_NET_REQUEST_FRAME_EXTENTS [ ]
|
||||
_NET_REQUEST_FRAME_EXTENTS [X]
|
||||
_NET_RESTACK_WINDOW [P]
|
||||
_NET_SHOWING_DESKTOP [ ]
|
||||
_NET_SUPPORTED [X]
|
||||
|
@ -84,4 +84,4 @@ _NET_WM_WINDOW_TYPE_UTILITY [X]
|
|||
_NET_WM_WINDOW_TYPE_SPLASH [X]
|
||||
_NET_WM_WINDOW_TYPE_DIALOG [X]
|
||||
_NET_WM_WINDOW_TYPE_NORMAL [X]
|
||||
_NET_WORKAREA [X]
|
||||
_NET_WORKAREA [ ]
|
||||
|
|
|
@ -1451,16 +1451,7 @@ 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))
|
||||
if ((bd->client.icccm.name) && (bd->client.icccm.class))
|
||||
{
|
||||
E_App *a;
|
||||
|
||||
|
@ -1472,6 +1463,14 @@ e_border_icon_add(E_Border *bd, Evas *evas)
|
|||
edje_object_file_set(o, a->path, "icon");
|
||||
}
|
||||
}
|
||||
else if (bd->client.netwm.icon.data)
|
||||
{
|
||||
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);
|
||||
}
|
||||
return o;
|
||||
}
|
||||
|
||||
|
|
|
@ -235,7 +235,7 @@ e_error_message_manager_show(E_Manager *man, char *title, char *txt)
|
|||
|
||||
x = (man->w - error_w) / 2;
|
||||
y = (man->h - error_h) / 2;
|
||||
con = e_manager_container_current_get(man);
|
||||
con = e_container_current_get(man);
|
||||
if (con)
|
||||
{
|
||||
E_Zone *zone;
|
||||
|
@ -322,7 +322,7 @@ e_error_message_manager_show(E_Manager *man, char *title, char *txt)
|
|||
|
||||
x = (man->w - error_w) / 2;
|
||||
y = (man->h - error_h) / 2;
|
||||
con = e_manager_container_current_get(man);
|
||||
con = e_container_current_get(man);
|
||||
if (con)
|
||||
{
|
||||
E_Zone *zone;
|
||||
|
|
|
@ -44,6 +44,7 @@ e_hints_init(void)
|
|||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_CLIENT_LIST_STACKING, 1);
|
||||
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_FRAME_EXTENTS, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_REQUEST_FRAME_EXTENTS, 1);
|
||||
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_SUPPORTED, 1);
|
||||
ecore_x_netwm_supported(roots[i], ECORE_X_ATOM_NET_SUPPORTING_WM_CHECK, 1);
|
||||
|
@ -114,7 +115,7 @@ e_hints_manager_init(E_Manager *man)
|
|||
/* Set desktop count, desktop names and workarea */
|
||||
int i = 0, num = 0;
|
||||
unsigned int *areas = NULL;
|
||||
Evas_List *ml, *cl;
|
||||
Evas_List *cl;
|
||||
Ecore_X_Window *vroots = NULL;
|
||||
/* FIXME: Desktop names not yet implemented */
|
||||
/* char **names; */
|
||||
|
@ -154,7 +155,10 @@ e_hints_manager_init(E_Manager *man)
|
|||
{
|
||||
ecore_x_netwm_desk_roots_set(man->root, num, vroots);
|
||||
}
|
||||
#if 0
|
||||
/* No need for workarea without desktops */
|
||||
ecore_x_netwm_desk_workareas_set(man->root, num, areas);
|
||||
#endif
|
||||
|
||||
free(vroots);
|
||||
free(areas);
|
||||
|
|
|
@ -9,6 +9,7 @@ static void _e_manager_free(E_Manager *man);
|
|||
static int _e_manager_cb_window_show_request(void *data, int ev_type, void *ev);
|
||||
static int _e_manager_cb_window_configure(void *data, int ev_type, void *ev);
|
||||
static int _e_manager_cb_key_down(void *data, int ev_type, void *ev);
|
||||
static int _e_manager_cb_frame_extents_request(void *data, int ev_type, void *ev);
|
||||
#if 0 /* use later - maybe */
|
||||
static int _e_manager_cb_window_destroy(void *data, int ev_type, void *ev);
|
||||
static int _e_manager_cb_window_hide(void *data, int ev_type, void *ev);
|
||||
|
@ -93,6 +94,8 @@ e_manager_new(Ecore_X_Window root)
|
|||
if (h) man->handlers = evas_list_append(man->handlers, h);
|
||||
h = ecore_event_handler_add(ECORE_X_EVENT_KEY_DOWN, _e_manager_cb_key_down, man);
|
||||
if (h) man->handlers = evas_list_append(man->handlers, h);
|
||||
h = ecore_event_handler_add(ECORE_X_EVENT_FRAME_EXTENTS_REQUEST, _e_manager_cb_frame_extents_request, man);
|
||||
if (h) man->handlers = evas_list_append(man->handlers, h);
|
||||
|
||||
return man;
|
||||
}
|
||||
|
@ -138,18 +141,14 @@ e_manager_manage_windows(E_Manager *man)
|
|||
&id, 1);
|
||||
if (ret == 1)
|
||||
con = e_manager_container_number_get(man, id);
|
||||
else
|
||||
con = e_manager_container_current_get(man);
|
||||
if (!con)
|
||||
e_container_current_get(man);
|
||||
con = e_container_current_get(man);
|
||||
|
||||
ret = ecore_x_window_prop_card32_get(windows[i],
|
||||
E_ATOM_ZONE,
|
||||
&id, 1);
|
||||
if (ret == 1)
|
||||
zone = e_container_zone_number_get(con, id);
|
||||
else
|
||||
zone = e_zone_current_get(con);
|
||||
if (!zone)
|
||||
zone = e_zone_current_get(con);
|
||||
ret = ecore_x_window_prop_card32_get(windows[i],
|
||||
|
@ -179,7 +178,7 @@ e_manager_manage_windows(E_Manager *man)
|
|||
* should be seen */
|
||||
E_Container *con;
|
||||
E_Border *bd;
|
||||
con = e_manager_container_current_get(man);
|
||||
con = e_container_current_get(man);
|
||||
bd = e_border_new(con, windows[i], 1);
|
||||
if (bd)
|
||||
e_border_show(bd);
|
||||
|
@ -338,18 +337,6 @@ e_manager_lower(E_Manager *man)
|
|||
ecore_x_window_lower(man->win);
|
||||
}
|
||||
|
||||
E_Container *
|
||||
e_manager_container_current_get(E_Manager *man)
|
||||
{
|
||||
/* FIXME
|
||||
* Currently only one container, but...
|
||||
*/
|
||||
E_OBJECT_CHECK_RETURN(man, NULL);
|
||||
E_OBJECT_TYPE_CHECK_RETURN(man, E_MANAGER_TYPE, NULL);
|
||||
|
||||
return (E_Container *)man->containers->data;
|
||||
}
|
||||
|
||||
E_Container *
|
||||
e_manager_container_number_get(E_Manager *man, int num)
|
||||
{
|
||||
|
@ -486,6 +473,42 @@ _e_manager_cb_key_down(void *data, int ev_type __UNUSED__, void *ev)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
_e_manager_cb_frame_extents_request(void *data, int ev_type __UNUSED__, void *ev)
|
||||
{
|
||||
E_Manager *man;
|
||||
E_Container *con;
|
||||
Ecore_X_Event_Frame_Extents_Request *e;
|
||||
Evas_Object *o;
|
||||
int ok;
|
||||
|
||||
man = data;
|
||||
con = e_container_current_get(man);
|
||||
e = ev;
|
||||
|
||||
if (ecore_x_window_parent_get(e->win) != man->root) return 1;
|
||||
|
||||
o = edje_object_add(con->bg_evas);
|
||||
ok = e_theme_edje_object_set(o, "base/theme/borders", "widgets/border/default/border");
|
||||
if (ok)
|
||||
{
|
||||
Evas_Coord x, y, w, h;
|
||||
int l, r, t, b;
|
||||
|
||||
evas_object_resize(o, 1000, 1000);
|
||||
edje_object_calc_force(o);
|
||||
edje_object_part_geometry_get(o, "client", &x, &y, &w, &h);
|
||||
l = x;
|
||||
r = 1000 - (x + w);
|
||||
t = y;
|
||||
b = 1000 - (y + h);
|
||||
|
||||
ecore_x_netwm_frame_size_set(e->win, l, r, t, b);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
#if 0 /* use later - maybe */
|
||||
static int _e_manager_cb_window_destroy(void *data, int ev_type, void *ev){return 1;}
|
||||
static int _e_manager_cb_window_hide(void *data, int ev_type, void *ev){return 1;}
|
||||
|
|
|
@ -81,7 +81,7 @@ e_util_zone_current_get(E_Manager *man)
|
|||
{
|
||||
E_Container *con;
|
||||
|
||||
con = e_manager_container_current_get(man);
|
||||
con = e_container_current_get(man);
|
||||
if (con)
|
||||
{
|
||||
E_Zone *zone;
|
||||
|
|
Loading…
Reference in New Issue