remove e_comp_list(), deprecate all related functions for pending removal

there is only one E_Comp which can now be accessed by the e_comp global.

if you're editing a file with some uses of these deprecated functions, replace their usages with appropriate references to this variable

pass -Wno-deprecated-declarations to ignore these warnings during build
devs/bu5hm4n/econfigure2
Mike Blumenkrantz 8 years ago
parent 2d580a2f87
commit 922af2c52f
  1. 21
      src/bin/e_actions.c
  2. 8
      src/bin/e_backlight.c
  3. 8
      src/bin/e_bg.c
  4. 243
      src/bin/e_client.c
  5. 2
      src/bin/e_client.h
  6. 272
      src/bin/e_comp.c
  7. 6
      src/bin/e_comp.h
  8. 64
      src/bin/e_comp_canvas.c
  9. 3
      src/bin/e_comp_canvas.h
  10. 170
      src/bin/e_comp_x.c
  11. 100
      src/bin/e_desk.c
  12. 26
      src/bin/e_desklock.c
  13. 8
      src/bin/e_dnd.c
  14. 28
      src/bin/e_exec.c
  15. 9
      src/bin/e_font.c
  16. 15
      src/bin/e_gadcon.c
  17. 85
      src/bin/e_hints.c
  18. 21
      src/bin/e_init.c
  19. 86
      src/bin/e_int_client_remember.c
  20. 46
      src/bin/e_main.c
  21. 24
      src/bin/e_msgbus.c
  22. 58
      src/bin/e_remember.c
  23. 63
      src/bin/e_sys.c
  24. 40
      src/bin/e_test.c
  25. 40
      src/bin/e_utils.c
  26. 4
      src/bin/e_utils.h
  27. 14
      src/bin/e_win.c
  28. 24
      src/bin/e_xsettings.c
  29. 276
      src/bin/e_zone.c
  30. 18
      src/modules/access/e_mod_main.c
  31. 10
      src/modules/conf_bindings/e_int_config_edgebindings.c
  32. 39
      src/modules/conf_display/e_int_config_desklock.c
  33. 26
      src/modules/conf_display/e_int_config_desks.c
  34. 14
      src/modules/conf_interaction/e_int_config_mouse.c
  35. 14
      src/modules/contact/e_edges.c
  36. 18
      src/modules/contact/e_policy.c
  37. 14
      src/modules/fileman/e_fwin.c
  38. 24
      src/modules/fileman/e_mod_main.c
  39. 5
      src/modules/ibox/e_mod_config.c
  40. 45
      src/modules/illume2/e_mod_main.c
  41. 26
      src/modules/lokker/lokker.c
  42. 52
      src/modules/notification/e_mod_popup.c
  43. 5
      src/modules/pager_plain/e_mod_main.c
  44. 4
      src/modules/policy_mobile/e_mod_config.c
  45. 67
      src/modules/policy_mobile/e_mod_main.c
  46. 23
      src/modules/quickaccess/e_mod_quickaccess.c
  47. 16
      src/modules/tiling/e_mod_tiling.c
  48. 16
      src/modules/wizard/e_wizard.c

@ -1573,14 +1573,11 @@ ACT_FN_GO(desk_linear_flip_to, )
#define DESK_ACTION_ALL(zone, act) \
E_Zone * zone; \
const Eina_List *lc, *lz; \
E_Comp *c; \
const Eina_List *lz; \
\
EINA_LIST_FOREACH(e_comp_list(), lc, c) { \
EINA_LIST_FOREACH(c->zones, lz, zone) { \
EINA_LIST_FOREACH(e_comp->zones, lz, zone) { \
act; \
} \
}
/***************************************************************************/
ACT_FN_GO(desk_flip_by_all, )
@ -1717,24 +1714,20 @@ ACT_FN_GO(screen_send_by, )
#define ZONE_DESK_ACTION(con_num, zone_num, zone, act) \
E_Zone * zone; \
if ((con_num < 0) || (zone_num < 0)) { \
Eina_List *l, *ll; \
E_Comp *c; \
Eina_List *l; \
if ((con_num >= 0) && (zone_num < 0)) /* con=1 zone=all */ { \
c = e_util_comp_number_get(con_num); \
EINA_LIST_FOREACH(c->zones, l, zone) { \
EINA_LIST_FOREACH(e_comp->zones, l, zone) { \
act; \
} } \
else if ((con_num < 0) && (zone_num >= 0)) /* c=all zone=1 */ { \
EINA_LIST_FOREACH(e_comp_list(), l, c) { \
zone = e_comp_zone_number_get(c, zone_num); \
if (zone) \
act; \
} } \
} \
else if ((con_num < 0) && (zone_num < 0)) /* c=all zone=all */ { \
EINA_LIST_FOREACH(e_comp_list(), l, c) { \
EINA_LIST_FOREACH(c->zones, lll, zone) { \
EINA_LIST_FOREACH(e_comp->zones, lll, zone) { \
act; \
} } } } } \
} } } \
else { \
zone = e_util_comp_zone_number_get(con_num, zone_num); \
if (zone) act; \

@ -100,15 +100,13 @@ e_backlight_exists(void)
EAPI void
e_backlight_update(void)
{
const Eina_List *l, *ll;
E_Comp *c;
const Eina_List *l;
E_Zone *zone;
if (bl_avail == EINA_FALSE) return;
EINA_LIST_FOREACH(e_comp_list(), l, c)
EINA_LIST_FOREACH(c->zones, ll, zone)
_e_backlight_update(zone);
EINA_LIST_FOREACH(e_comp->zones, l, zone)
_e_backlight_update(zone);
}
EAPI void

@ -403,13 +403,11 @@ e_bg_del(int manager, int zone, int desk_x, int desk_y)
EAPI void
e_bg_update(void)
{
const Eina_List *l, *ll;
E_Comp *c;
const Eina_List *l;
E_Zone *zone;
EINA_LIST_FOREACH(e_comp_list(), l, c)
EINA_LIST_FOREACH(c->zones, ll, zone)
e_zone_bg_reconfigure(zone);
EINA_LIST_FOREACH(e_comp->zones, l, zone)
e_zone_bg_reconfigure(zone);
}
/* local subsystem functions */

@ -86,45 +86,40 @@ static Eina_Inlist *_e_client_hooks[] =
static Eina_Bool
_e_client_cb_efreet_cache_update(void *data EINA_UNUSED, int type EINA_UNUSED, void *ev EINA_UNUSED)
{
E_Comp *c;
const Eina_List *l, *ll;
const Eina_List *l;
E_Client *ec;
/* mark all clients for desktop/icon updates */
EINA_LIST_FOREACH(e_comp_list(), l, c)
EINA_LIST_FOREACH(c->clients, ll, ec)
{
E_FREE_FUNC(ec->desktop, efreet_desktop_free);
if (e_object_is_del(E_OBJECT(ec))) continue;
ec->changes.icon = 1;
EC_CHANGED(ec);
}
EINA_LIST_FOREACH(e_comp->clients, l, ec)
{
E_FREE_FUNC(ec->desktop, efreet_desktop_free);
if (e_object_is_del(E_OBJECT(ec))) continue;
ec->changes.icon = 1;
EC_CHANGED(ec);
}
return ECORE_CALLBACK_RENEW;
}
static Eina_Bool
_e_client_cb_config_icon_theme(void *data EINA_UNUSED, int type EINA_UNUSED, void *ev EINA_UNUSED)
{
E_Comp *c;
const Eina_List *l, *ll;
const Eina_List *l;
E_Client *ec;
/* mark all clients for desktop/icon updates */
EINA_LIST_FOREACH(e_comp_list(), l, c)
EINA_LIST_FOREACH(c->clients, ll, ec)
{
if (e_object_is_del(E_OBJECT(ec))) continue;
ec->changes.icon = 1;
EC_CHANGED(ec);
}
EINA_LIST_FOREACH(e_comp->clients, l, ec)
{
if (e_object_is_del(E_OBJECT(ec))) continue;
ec->changes.icon = 1;
EC_CHANGED(ec);
}
return ECORE_CALLBACK_RENEW;
}
static Eina_Bool
_e_client_cb_config_mode(void *data EINA_UNUSED, int type EINA_UNUSED, void *ev EINA_UNUSED)
{
E_Comp *c;
const Eina_List *l, *ll;
const Eina_List *l;
E_Client *ec;
E_Layer layer;
@ -137,17 +132,16 @@ _e_client_cb_config_mode(void *data EINA_UNUSED, int type EINA_UNUSED, void *ev
else
return ECORE_CALLBACK_RENEW;
EINA_LIST_FOREACH(e_comp_list(), l, c)
EINA_LIST_FOREACH(c->clients, ll, ec)
{
if (e_object_is_del(E_OBJECT(ec))) continue;
if ((ec->fullscreen) || (ec->need_fullscreen))
{
ec->fullscreen = 0;
evas_object_layer_set(ec->frame, layer);
ec->fullscreen = 1;
}
}
EINA_LIST_FOREACH(e_comp->clients, l, ec)
{
if (e_object_is_del(E_OBJECT(ec))) continue;
if ((ec->fullscreen) || (ec->need_fullscreen))
{
ec->fullscreen = 0;
evas_object_layer_set(ec->frame, layer);
ec->fullscreen = 1;
}
}
return ECORE_CALLBACK_PASS_ON;
}
@ -163,17 +157,15 @@ _e_client_cb_pointer_warp(void *data EINA_UNUSED, int type EINA_UNUSED, E_Event_
static Eina_Bool
_e_client_cb_desk_window_profile_change(void *data EINA_UNUSED, int type EINA_UNUSED, E_Event_Desk_Window_Profile_Change *ev EINA_UNUSED)
{
E_Comp *c;
const Eina_List *l, *ll;
const Eina_List *l;
E_Client *ec;
EINA_LIST_FOREACH(e_comp_list(), l, c)
EINA_LIST_FOREACH(c->clients, ll, ec)
{
if (e_object_is_del(E_OBJECT(ec))) continue;
ec->e.fetch.profile = 1;
EC_CHANGED(ec);
}
EINA_LIST_FOREACH(e_comp->clients, l, ec)
{
if (e_object_is_del(E_OBJECT(ec))) continue;
ec->e.fetch.profile = 1;
EC_CHANGED(ec);
}
return ECORE_CALLBACK_RENEW;
}
@ -2268,84 +2260,80 @@ EINTERN void
e_client_idler_before(void)
{
const Eina_List *l;
E_Comp *c;
E_Client *ec;
if (!eina_hash_population(clients_hash)) return;
EINA_LIST_FOREACH(e_comp_list(), l, c)
EINA_LIST_FOREACH(e_comp->clients, l, ec)
{
Eina_List *ll;
E_Client *ec;
Eina_Stringshare *title;
// pass 1 - eval0. fetch properties on new or on change and
// call hooks to decide what to do - maybe move/resize
if (!ec->changed) continue;
if (!_e_client_hook_call(E_CLIENT_HOOK_EVAL_PRE_FETCH, ec)) continue;
/* FETCH is hooked by the compositor to get client hints */
title = e_client_util_name_get(ec);
if (!_e_client_hook_call(E_CLIENT_HOOK_EVAL_FETCH, ec)) continue;
if (title != e_client_util_name_get(ec))
_e_client_event_property(ec, E_CLIENT_PROPERTY_TITLE);
/* PRE_POST_FETCH calls e_remember apply for new client */
if (!_e_client_hook_call(E_CLIENT_HOOK_EVAL_PRE_POST_FETCH, ec)) continue;
if (!_e_client_hook_call(E_CLIENT_HOOK_EVAL_POST_FETCH, ec)) continue;
if (!_e_client_hook_call(E_CLIENT_HOOK_EVAL_PRE_FRAME_ASSIGN, ec)) continue;
EINA_LIST_FOREACH(c->clients, ll, ec)
if ((ec->border.changed) && (!ec->shaded) && ((!ec->override) || ec->internal) &&
(!(((ec->maximized & E_MAXIMIZE_TYPE) == E_MAXIMIZE_FULLSCREEN))))
_e_client_frame_update(ec);
ec->border.changed = 0;
_e_client_hook_call(E_CLIENT_HOOK_EVAL_POST_FRAME_ASSIGN, ec);
}
E_CLIENT_FOREACH(e_comp, ec)
{
// pass 2 - show windows needing show
if ((ec->changes.visible) && (ec->visible) &&
(!ec->new_client) && (!ec->changes.pos) &&
(!ec->changes.size))
{
Eina_Stringshare *title;
// pass 1 - eval0. fetch properties on new or on change and
// call hooks to decide what to do - maybe move/resize
if (!ec->changed) continue;
if (!_e_client_hook_call(E_CLIENT_HOOK_EVAL_PRE_FETCH, ec)) continue;
/* FETCH is hooked by the compositor to get client hints */
title = e_client_util_name_get(ec);
if (!_e_client_hook_call(E_CLIENT_HOOK_EVAL_FETCH, ec)) continue;
if (title != e_client_util_name_get(ec))
_e_client_event_property(ec, E_CLIENT_PROPERTY_TITLE);
/* PRE_POST_FETCH calls e_remember apply for new client */
if (!_e_client_hook_call(E_CLIENT_HOOK_EVAL_PRE_POST_FETCH, ec)) continue;
if (!_e_client_hook_call(E_CLIENT_HOOK_EVAL_POST_FETCH, ec)) continue;
if (!_e_client_hook_call(E_CLIENT_HOOK_EVAL_PRE_FRAME_ASSIGN, ec)) continue;
if ((ec->border.changed) && (!ec->shaded) && ((!ec->override) || ec->internal) &&
(!(((ec->maximized & E_MAXIMIZE_TYPE) == E_MAXIMIZE_FULLSCREEN))))
_e_client_frame_update(ec);
ec->border.changed = 0;
_e_client_hook_call(E_CLIENT_HOOK_EVAL_POST_FRAME_ASSIGN, ec);
evas_object_show(ec->frame);
ec->changes.visible = !evas_object_visible_get(ec->frame);
}
E_CLIENT_FOREACH(c, ec)
if ((!ec->new_client) && (!e_client_util_ignored_get(ec)) &&
(!E_INSIDE(ec->x, ec->y, 0, 0, ec->comp->man->w - 5, ec->comp->man->h - 5)) &&
(!E_INSIDE(ec->x, ec->y, 0 - ec->w + 5, 0 - ec->h + 5, ec->comp->man->w - 5, ec->comp->man->h - 5))
)
{
// pass 2 - show windows needing show
if ((ec->changes.visible) && (ec->visible) &&
(!ec->new_client) && (!ec->changes.pos) &&
(!ec->changes.size))
{
evas_object_show(ec->frame);
ec->changes.visible = !evas_object_visible_get(ec->frame);
}
if ((!ec->new_client) && (!e_client_util_ignored_get(ec)) &&
(!E_INSIDE(ec->x, ec->y, 0, 0, ec->comp->man->w - 5, ec->comp->man->h - 5)) &&
(!E_INSIDE(ec->x, ec->y, 0 - ec->w + 5, 0 - ec->h + 5, ec->comp->man->w - 5, ec->comp->man->h - 5))
)
{
if (e_config->screen_limits != E_SCREEN_LIMITS_COMPLETELY)
_e_client_move_lost_window_to_center(ec);
}
if (e_config->screen_limits != E_SCREEN_LIMITS_COMPLETELY)
_e_client_move_lost_window_to_center(ec);
}
}
if (_e_client_layout_cb)
_e_client_layout_cb(c);
if (_e_client_layout_cb)
_e_client_layout_cb(e_comp);
// pass 3 - hide windows needing hide and eval (main eval)
E_CLIENT_FOREACH(c, ec)
{
if (e_object_is_del(E_OBJECT(ec))) continue;
// pass 3 - hide windows needing hide and eval (main eval)
E_CLIENT_FOREACH(e_comp, ec)
{
if (e_object_is_del(E_OBJECT(ec))) continue;
if ((ec->changes.visible) && (!ec->visible))
{
evas_object_hide(ec->frame);
ec->changes.visible = 0;
}
if ((ec->changes.visible) && (!ec->visible))
{
evas_object_hide(ec->frame);
ec->changes.visible = 0;
}
if (ec->changed)
_e_client_eval(ec);
if (ec->changed)
_e_client_eval(ec);
if ((ec->changes.visible) && (ec->visible) && (!ec->changed))
{
evas_object_show(ec->frame);
ec->changes.visible = !evas_object_visible_get(ec->frame);
ec->changed = ec->changes.visible;
}
if ((ec->changes.visible) && (ec->visible) && (!ec->changed))
{
evas_object_show(ec->frame);
ec->changes.visible = !evas_object_visible_get(ec->frame);
ec->changed = ec->changes.visible;
}
}
}
@ -2682,28 +2670,16 @@ e_client_warping_get(void)
EAPI Eina_List *
e_clients_immortal_list(const E_Comp *c)
e_clients_immortal_list(void)
{
const Eina_List *l, *ll;
const Eina_List *l;
Eina_List *list = NULL;
E_Client *ec;
if (c)
{
EINA_LIST_FOREACH(c->clients, ll, ec)
{
if (ec->lock_life)
list = eina_list_append(list, ec);
}
}
else
EINA_LIST_FOREACH(e_comp->clients, l, ec)
{
EINA_LIST_FOREACH(e_comp_list(), l, c)
EINA_LIST_FOREACH(c->clients, ll, ec)
{
if (ec->lock_life)
list = eina_list_append(list, ec);
}
if (ec->lock_life)
list = eina_list_append(list, ec);
}
return list;
}
@ -3530,28 +3506,23 @@ EAPI Eina_List *
e_client_lost_windows_get(E_Zone *zone)
{
Eina_List *list = NULL;
const Eina_List *l, *ll;
const Eina_List *l;
E_Client *ec;
E_Comp *c;
int loss_overlap = 5;
E_OBJECT_CHECK_RETURN(zone, NULL);
E_OBJECT_TYPE_CHECK_RETURN(zone, E_ZONE_TYPE, NULL);
EINA_LIST_FOREACH(e_comp_list(), l, c)
EINA_LIST_FOREACH(e_comp->clients, l, ec)
{
if (zone->comp != c) continue;
EINA_LIST_FOREACH(c->clients, ll, ec)
{
if (ec->zone != zone) continue;
if (ec->zone != zone) continue;
if (!E_INTERSECTS(ec->zone->x + loss_overlap,
ec->zone->y + loss_overlap,
ec->zone->w - (2 * loss_overlap),
ec->zone->h - (2 * loss_overlap),
ec->x, ec->y, ec->w, ec->h))
{
list = eina_list_append(list, ec);
}
if (!E_INTERSECTS(ec->zone->x + loss_overlap,
ec->zone->y + loss_overlap,
ec->zone->w - (2 * loss_overlap),
ec->zone->h - (2 * loss_overlap),
ec->x, ec->y, ec->w, ec->h))
{
list = eina_list_append(list, ec);
}
}
return list;

@ -748,7 +748,7 @@ EAPI void e_client_desk_set(E_Client *ec, E_Desk *desk);
EAPI Eina_Bool e_client_comp_grabbed_get(void);
EAPI E_Client *e_client_action_get(void);
EAPI E_Client *e_client_warping_get(void);
EAPI Eina_List *e_clients_immortal_list(const E_Comp *c);
EAPI Eina_List *e_clients_immortal_list(void);
EAPI void e_client_mouse_in(E_Client *ec, int x, int y);
EAPI void e_client_mouse_out(E_Client *ec, int x, int y);
EAPI void e_client_mouse_wheel(E_Client *ec, Evas_Point *output, E_Binding_Event_Wheel *ev);

@ -21,7 +21,7 @@
static Eina_List *handlers = NULL;
static Eina_List *hooks = NULL;
static Eina_List *compositors = NULL;
EAPI E_Comp *e_comp = NULL;
static Eina_Hash *ignores = NULL;
static Eina_List *actions = NULL;
@ -532,13 +532,6 @@ _e_comp_cb_animator(void *data)
//////////////////////////////////////////////////////////////////////////
static Eina_Bool
_e_comp_cb_zone_change(void *data EINA_UNUSED, int type EINA_UNUSED, EINA_UNUSED void *event)
{
E_LIST_FOREACH(compositors, e_comp_canvas_update);
return ECORE_CALLBACK_PASS_ON;
}
#ifdef SHAPE_DEBUG
static void
_e_comp_shape_debug_rect(E_Comp *c, Eina_Rectangle *rect, E_Color *color)
@ -855,25 +848,20 @@ _e_comp_override_expire(void *data)
static Eina_Bool
_e_comp_screensaver_on(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED)
{
Eina_List *l, *ll;
Eina_List *l;
E_Zone *zone;
E_Comp *c;
ecore_frametime = ecore_animator_frametime_get();
// fixme: use hash if compositors list > 4
EINA_LIST_FOREACH(compositors, l, c)
if (e_comp->saver) return ECORE_CALLBACK_RENEW;
e_comp_override_add(e_comp);
e_comp->saver = EINA_TRUE;
if (e_comp->render_animator)
ecore_animator_freeze(e_comp->render_animator);
EINA_LIST_FOREACH(e_comp->zones, l, zone)
{
if (c->saver) continue;
e_comp_override_add(c);
c->saver = EINA_TRUE;
if (c->render_animator)
ecore_animator_freeze(c->render_animator);
EINA_LIST_FOREACH(c->zones, ll, zone)
{
e_zone_fade_handle(zone, 1, 3.0);
edje_object_signal_emit(zone->base, "e,state,screensaver,on", "e");
edje_object_signal_emit(zone->over, "e,state,screensaver,on", "e");
}
e_zone_fade_handle(zone, 1, 3.0);
edje_object_signal_emit(zone->base, "e,state,screensaver,on", "e");
edje_object_signal_emit(zone->over, "e,state,screensaver,on", "e");
}
return ECORE_CALLBACK_PASS_ON;
@ -882,30 +870,25 @@ _e_comp_screensaver_on(void *data EINA_UNUSED, int type EINA_UNUSED, void *event
static Eina_Bool
_e_comp_screensaver_off(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED)
{
Eina_List *l, *ll;
Eina_List *l;
E_Zone *zone;
E_Comp *c;
E_Client *ec;
ecore_animator_frametime_set(ecore_frametime);
// fixme: use hash if compositors list > 4
EINA_LIST_FOREACH(compositors, l, c)
if (!e_comp->saver) return ECORE_CALLBACK_RENEW;
e_comp_override_del(e_comp);
e_comp->saver = EINA_FALSE;
if (!e_comp->nocomp)
ecore_evas_manual_render_set(e_comp->ee, EINA_FALSE);
EINA_LIST_FOREACH(e_comp->zones, l, zone)
{
E_Client *ec;
if (!c->saver) continue;
e_comp_override_del(c);
c->saver = EINA_FALSE;
if (!c->nocomp)
ecore_evas_manual_render_set(c->ee, EINA_FALSE);
EINA_LIST_FOREACH(c->zones, ll, zone)
{
edje_object_signal_emit(zone->base, "e,state,screensaver,off", "e");
edje_object_signal_emit(zone->over, "e,state,screensaver,off", "e");
e_zone_fade_handle(zone, 0, 0.5);
}
E_CLIENT_FOREACH(c, ec)
if (e_comp_object_damage_exists(ec->frame))
e_comp_object_render_update_add(ec->frame);
edje_object_signal_emit(zone->base, "e,state,screensaver,off", "e");
edje_object_signal_emit(zone->over, "e,state,screensaver,off", "e");
e_zone_fade_handle(zone, 0, 0.5);
}
E_CLIENT_FOREACH(e_comp, ec)
if (e_comp_object_damage_exists(ec->frame))
e_comp_object_render_update_add(ec->frame);
return ECORE_CALLBACK_PASS_ON;
}
@ -1076,7 +1059,7 @@ e_comp_init(void)
#if defined(HAVE_WAYLAND_CLIENTS) || defined(HAVE_WAYLAND_ONLY)
e_comp_wl_init();
#endif
if (!compositors) return EINA_FALSE;
if (!e_comp) return EINA_FALSE;
out:
e_util_env_set("HYBRIS_EGLPLATFORM", NULL);
E_LIST_HANDLER_APPEND(handlers, E_EVENT_SCREENSAVER_ON, _e_comp_screensaver_on, NULL);
@ -1085,10 +1068,6 @@ out:
E_LIST_HANDLER_APPEND(handlers, ECORE_EVENT_KEY_DOWN, _e_comp_key_down, NULL);
E_LIST_HANDLER_APPEND(handlers, ECORE_EVENT_SIGNAL_USER, _e_comp_signal_user, NULL);
E_LIST_HANDLER_APPEND(handlers, E_EVENT_ZONE_MOVE_RESIZE, _e_comp_cb_zone_change, NULL);
E_LIST_HANDLER_APPEND(handlers, E_EVENT_ZONE_ADD, _e_comp_cb_zone_change, NULL);
E_LIST_HANDLER_APPEND(handlers, E_EVENT_ZONE_DEL, _e_comp_cb_zone_change, NULL);
return EINA_TRUE;
}
@ -1278,17 +1257,16 @@ EAPI E_Comp *
e_comp_new(void)
{
E_Comp *c;
char name[40];
if (e_comp)
CRI("CANNOT REPLACE EXISTING COMPOSITOR");
c = E_OBJECT_ALLOC(E_Comp, E_COMP_TYPE, _e_comp_free);
if (!c) return NULL;
c->num = eina_list_count(compositors);
snprintf(name, sizeof(name), _("Compositor %u"), c->num);
c->name = eina_stringshare_add(name);
c->name = eina_stringshare_add(_("Compositor"));
c->render_animator = ecore_animator_add(_e_comp_cb_animator, c);
ecore_animator_freeze(c->render_animator);
compositors = eina_list_append(compositors, c);
e_comp = c;
return c;
}
@ -1301,15 +1279,10 @@ e_comp_internal_save(void)
EINTERN int
e_comp_shutdown(void)
{
E_Comp *c;
E_FREE_FUNC(action_timeout, ecore_timer_del);
EINA_LIST_FREE(compositors, c)
{
while (c->clients)
e_object_del(eina_list_data_get(c->clients));
e_object_del(E_OBJECT(c));
}
while (e_comp->clients)
e_object_del(eina_list_data_get(e_comp->clients));
e_object_del(E_OBJECT(e_comp));
E_FREE_LIST(handlers, ecore_event_handler_del);
E_FREE_LIST(actions, e_object_del);
E_FREE_LIST(hooks, e_client_hook_del);
@ -1381,114 +1354,21 @@ e_comp_config_get(void)
return conf;
}
EAPI const Eina_List *
e_comp_list(void)
{
return compositors;
}
EAPI void
e_comp_shadows_reset(void)
{
Eina_List *l;
E_Comp *c;
EINA_LIST_FOREACH(compositors, l, c)
{
E_Client *ec;
E_Client *ec;
_e_comp_fps_update(c);
E_LIST_FOREACH(c->zones, e_comp_canvas_zone_update);
E_CLIENT_FOREACH(c, ec)
e_comp_object_frame_theme_set(ec->frame, E_COMP_OBJECT_FRAME_RESHADOW);
}
_e_comp_fps_update(e_comp);
E_LIST_FOREACH(e_comp->zones, e_comp_canvas_zone_update);
E_CLIENT_FOREACH(e_comp, ec)
e_comp_object_frame_theme_set(ec->frame, E_COMP_OBJECT_FRAME_RESHADOW);
}
EAPI E_Comp *
e_comp_get(const void *o)
e_comp_get(const void *o EINA_UNUSED)
{
E_Client *ec;
E_Shelf *es;
E_Menu *m;
E_Desk *desk;
E_Menu_Item *mi;
const E_Object *obj = o;
E_Zone *zone = NULL;
E_Manager *man = NULL;
E_Gadcon_Popup *gp;
E_Gadcon *gc;
E_Gadcon_Client *gcc;
E_Drag *drag;
if (!o)
{
if (!(obj = (E_Object*)e_manager_current_get()))
return NULL;
}
/* try to get to zone type first */
switch (obj->type)
{
case E_DESK_TYPE:
desk = (E_Desk*)obj;
obj = (void*)desk->zone;
EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
break;
case E_CLIENT_TYPE:
ec = (E_Client*)obj;
return ec->comp;
case E_MENU_TYPE:
m = (E_Menu*)obj;
obj = (void*)m->zone;
EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
break;
case E_MENU_ITEM_TYPE:
mi = (E_Menu_Item*)obj;
obj = (void*)mi->menu->zone;
EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
break;
case E_SHELF_TYPE:
es = (E_Shelf*)obj;
obj = (void*)es->zone;
EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
break;
case E_DRAG_TYPE:
drag = (E_Drag*)obj;
return drag->comp;
case E_GADCON_POPUP_TYPE:
gp = (E_Gadcon_Popup*)obj;
obj = (void*)gp->gcc;
EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
/* no break */
case E_GADCON_CLIENT_TYPE:
gcc = (E_Gadcon_Client*)obj;
obj = (void*)gcc->gadcon;
EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
/* no break */
case E_GADCON_TYPE:
gc = (E_Gadcon*)obj;
obj = (void*)e_gadcon_zone_get(gc);
EINA_SAFETY_ON_NULL_RETURN_VAL(obj, NULL);
break;
default:
break;
}
switch (obj->type)
{
case E_ZONE_TYPE:
if (!zone) zone = (E_Zone*)obj;
return zone->comp;
case E_MANAGER_TYPE:
if (!man) man = (E_Manager*)obj;
return man->comp;
}
if (e_obj_is_win(obj))
{
ec = e_win_client_get((void*)obj);
return e_comp_get(ec);
}
CRI("UNIMPLEMENTED TYPE PASSED! FIXME!");
return NULL;
return e_comp;
}
@ -1585,51 +1465,33 @@ FIXME
EAPI void
e_comp_block_window_add(void)
{
E_Comp *c;
Eina_List *l;
EINA_LIST_FOREACH(compositors, l, c)
{
c->block_count++;
if (c->block_win) continue;
c->block_win = ecore_x_window_new(c->man->root, c->man->x, c->man->y, c->man->w, c->man->h);
INF("BLOCK WIN: %x", c->block_win);
ecore_x_window_background_color_set(c->block_win, 0, 0, 0);
e_comp_ignore_win_add(c->block_win);
ecore_x_window_configure(c->block_win,
ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING | ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
0, 0, 0, 0, 0, ((E_Comp_Win*)c->wins)->win, ECORE_X_WINDOW_STACK_ABOVE);
ecore_x_window_show(c->block_win);
}
e_comp->block_count++;
if (e_comp->block_win) return;
e_comp->block_win = ecore_x_window_new(e_comp->man->root, e_comp->man->x, e_comp->man->y, e_comp->man->w, e_comp->man->h);
INF("BLOCK WIN: %x", e_comp->block_win);
ecore_x_window_background_color_set(e_comp->block_win, 0, 0, 0);
e_comp_ignore_win_add(e_comp->block_win);
ecore_x_window_configure(e_comp->block_win,
ECORE_X_WINDOW_CONFIGURE_MASK_SIBLING | ECORE_X_WINDOW_CONFIGURE_MASK_STACK_MODE,
0, 0, 0, 0, 0, ((E_Comp_Win*)e_comp->wins)->win, ECORE_X_WINDOW_STACK_ABOVE);
ecore_x_window_show(e_comp->block_win);
}
EAPI void
e_comp_block_window_del(void)
{
E_Comp *c;
Eina_List *l;
EINA_LIST_FOREACH(compositors, l, c)
{
if (!c->block_count) continue;
c->block_count--;
if (c->block_count) continue;
if (c->block_win) ecore_x_window_free(c->block_win);
c->block_win = 0;
}
if (!e_comp->block_count) return;
e_comp->block_count--;
if (e_comp->block_count) return;
if (e_comp->block_win) ecore_x_window_free(e_comp->block_win);
e_comp->block_win = 0;
}
#endif
EAPI E_Comp *
e_comp_find_by_window(Ecore_Window win)
{
Eina_List *l;
E_Comp *c;
EINA_LIST_FOREACH(compositors, l, c)
{
if ((c->win == win) || (c->ee_win == win) || (c->man->root == win)) return c;
}
if ((e_comp->win == win) || (e_comp->ee_win == win) || (e_comp->man->root == win)) return e_comp;
return NULL;
}
@ -1740,34 +1602,22 @@ e_comp_gl_get(void)
EAPI E_Comp *
e_comp_evas_find(const Evas *e)
{
Eina_List *l;
E_Comp *c;
EINA_LIST_FOREACH(compositors, l, c)
if (c->evas == e) return c;
if (e_comp->evas == e) return e_comp;
return NULL;
}
EAPI void
e_comp_button_bindings_ungrab_all(void)
{
Eina_List *l;
E_Comp *c;
EINA_LIST_FOREACH(compositors, l, c)
if (c->bindings_ungrab_cb)
c->bindings_ungrab_cb(c);
if (e_comp->bindings_ungrab_cb)
e_comp->bindings_ungrab_cb(e_comp);
}
EAPI void
e_comp_button_bindings_grab_all(void)
{
Eina_List *l;
E_Comp *c;
EINA_LIST_FOREACH(compositors, l, c)
if (c->bindings_grab_cb)
c->bindings_grab_cb(c);
if (e_comp->bindings_grab_cb)
e_comp->bindings_grab_cb(e_comp);
}
EAPI void

@ -163,7 +163,7 @@ EAPI void e_comp_shape_queue_block(E_Comp *c, Eina_Bool block);
EAPI E_Comp_Config *e_comp_config_get(void);
EAPI const Eina_List *e_comp_list(void);
EAPI void e_comp_shadows_reset(void);
EAPI E_Comp *e_comp_get(const void *o);
EINA_DEPRECATED EAPI E_Comp *e_comp_get(const void *o);
EAPI Ecore_Window e_comp_top_window_at_xy_get(E_Comp *c, Evas_Coord x, Evas_Coord y);
EAPI void e_comp_util_wins_print(const E_Comp *c);
EAPI void e_comp_ignore_win_add(E_Pixmap_Type type, Ecore_Window win);
@ -191,7 +191,7 @@ EINTERN Evas_Object *e_comp_style_selector_create(Evas *evas, const char **sourc
EAPI E_Config_Dialog *e_int_config_comp(Evas_Object *parent, const char *params);
EAPI E_Config_Dialog *e_int_config_comp_match(Evas_Object *parent, const char *params);
static inline E_Comp *
EINA_DEPRECATED static inline E_Comp *
e_comp_util_evas_object_comp_get(Evas_Object *obj)
{
return ecore_evas_data_get(ecore_evas_ecore_evas_get(evas_object_evas_get(obj)), "comp");
@ -209,5 +209,7 @@ e_comp_util_client_is_fullscreen(const E_Client *ec)
);
}
extern EAPI E_Comp *e_comp;
#endif
#endif

@ -1,5 +1,13 @@
#include "e.h"
static Eina_List *handlers;
static void
_e_comp_canvas_cb_del()
{
E_FREE_LIST(handlers, ecore_event_handler_del);
}
static void
_e_comp_canvas_event_compositor_resize_free(void *data EINA_UNUSED, void *event)
{
@ -87,6 +95,15 @@ _e_comp_canvas_cb_mouse_wheel(E_Comp *c, Evas *e EINA_UNUSED, Evas_Object *obj E
////////////////////////////////////
static Eina_Bool
_e_comp_cb_zone_change()
{
e_comp_canvas_update();
return ECORE_CALLBACK_PASS_ON;
}
////////////////////////////////////
static void
_e_comp_canvas_screensaver_active(void *d EINA_UNUSED, Evas_Object *obj, const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
{
@ -132,6 +149,7 @@ e_comp_canvas_init(E_Comp *c)
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, (Evas_Object_Event_Cb)_e_comp_canvas_cb_mouse_up, c);
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_IN, (Evas_Object_Event_Cb)_e_comp_canvas_cb_mouse_in, c);
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_WHEEL, (Evas_Object_Event_Cb)_e_comp_canvas_cb_mouse_wheel, c);
evas_object_event_callback_add(o, EVAS_CALLBACK_DEL, _e_comp_canvas_cb_del, NULL);
evas_object_show(o);
ecore_evas_name_class_set(c->ee, "E", "Comp_EE");
@ -155,6 +173,9 @@ e_comp_canvas_init(E_Comp *c)
}
else
e_zone_new(c, 0, 0, 0, 0, c->man->w, c->man->h);
E_LIST_HANDLER_APPEND(handlers, E_EVENT_ZONE_MOVE_RESIZE, _e_comp_cb_zone_change, NULL);
E_LIST_HANDLER_APPEND(handlers, E_EVENT_ZONE_ADD, _e_comp_cb_zone_change, NULL);
E_LIST_HANDLER_APPEND(handlers, E_EVENT_ZONE_DEL, _e_comp_cb_zone_change, NULL);
return EINA_TRUE;
}
@ -236,17 +257,6 @@ e_comp_zone_id_get(E_Comp *c, int id)
return NULL;
}
EAPI E_Comp *
e_comp_number_get(unsigned int num)
{
const Eina_List *l;
E_Comp *c;
EINA_LIST_FOREACH(e_comp_list(), l, c)
if (c->num == num) return c;
return NULL;
}
EAPI E_Desk *
e_comp_desk_window_profile_get(E_Comp *c, const char *profile)
{
@ -330,7 +340,7 @@ e_comp_canvas_zone_update(E_Zone *zone)
}
EAPI void
e_comp_canvas_update(E_Comp *c)
e_comp_canvas_update(void)
{
E_Event_Compositor_Resize *ev;
Eina_List *l, *screens, *zones = NULL, *ll;
@ -343,8 +353,8 @@ e_comp_canvas_update(E_Comp *c)
if (screens)
{
zones = c->zones;
c->zones = NULL;
zones = e_comp->zones;
e_comp->zones = NULL;
EINA_LIST_FOREACH(screens, l, scr)
{
zone = NULL;
@ -360,12 +370,12 @@ e_comp_canvas_update(E_Comp *c)
if (changed)
printf("@@@ FOUND ZONE %i %i [%p]\n", zone->num, zone->id, zone);
zones = eina_list_remove(zones, zone);
c->zones = eina_list_append(c->zones, zone);
e_comp->zones = eina_list_append(e_comp->zones, zone);
zone->num = scr->screen;
}
else
{
zone = e_zone_new(c, scr->screen, scr->escreen,
zone = e_zone_new(e_comp, scr->screen, scr->escreen,
scr->x, scr->y, scr->w, scr->h);
printf("@@@ NEW ZONE = %p\n", zone);
changed = EINA_TRUE;
@ -374,19 +384,19 @@ e_comp_canvas_update(E_Comp *c)
printf("@@@ SCREENS: %i %i | %i %i %ix%i\n",
scr->screen, scr->escreen, scr->x, scr->y, scr->w, scr->h);
}
c->zones = eina_list_sort(c->zones, 0, _e_comp_canvas_cb_zone_sort);
e_comp->zones = eina_list_sort(e_comp->zones, 0, _e_comp_canvas_cb_zone_sort);
if (zones)
{
E_Zone *spare_zone;
changed = EINA_TRUE;
spare_zone = eina_list_data_get(c->zones);
spare_zone = eina_list_data_get(e_comp->zones);
EINA_LIST_FREE(zones, zone)
{
E_Client *ec;
E_CLIENT_FOREACH(c, ec)
E_CLIENT_FOREACH(e_comp, ec)
{
if (ec->zone == zone)
{
@ -407,10 +417,10 @@ e_comp_canvas_update(E_Comp *c)
{
E_Zone *z;
z = e_comp_zone_number_get(c, 0);
z = e_comp_zone_number_get(e_comp, 0);
if (z)
{
changed |= e_zone_move_resize(z, 0, 0, c->man->w, c->man->h);
changed |= e_zone_move_resize(z, 0, 0, e_comp->man->w, e_comp->man->h);
if (changed) e_shelf_zone_move_resize_handle(z);
}
}
@ -419,12 +429,12 @@ e_comp_canvas_update(E_Comp *c)
if (!starting)
{
ev = calloc(1, sizeof(E_Event_Compositor_Resize));
ev->comp = c;
e_object_ref(E_OBJECT(c));
ev->comp = e_comp;
e_object_ref(E_OBJECT(e_comp));
ecore_event_add(E_EVENT_COMPOSITOR_RESIZE, ev, _e_comp_canvas_event_compositor_resize_free, NULL);
}
EINA_LIST_FOREACH(c->zones, l, zone)
EINA_LIST_FOREACH(e_comp->zones, l, zone)
{
E_FREE_FUNC(zone->base, evas_object_del);
E_FREE_FUNC(zone->over, evas_object_del);
@ -445,10 +455,10 @@ e_comp_canvas_update(E_Comp *c)
Eina_List *tmp = NULL;
E_Client *ec;
if (!c->layers[i].clients) continue;
if (!e_comp->layers[i].clients) continue;
/* Make temporary list as e_client_res_change_geometry_restore
* rearranges the order. */
EINA_INLIST_FOREACH(c->layers[i].clients, ec)
EINA_INLIST_FOREACH(e_comp->layers[i].clients, ec)
{
if (!e_client_util_ignored_get(ec))
tmp = eina_list_append(tmp, ec);
@ -485,7 +495,7 @@ e_comp_canvas_fps_toggle(void)
conf->fps_show = !conf->fps_show;
e_comp_internal_save();
E_LIST_FOREACH(e_comp_list(), e_comp_render_queue);
e_comp_render_queue(e_comp);
}
EAPI E_Layer

@ -22,10 +22,9 @@ EAPI void e_comp_all_thaw(void);
EAPI E_Zone * e_comp_zone_xy_get(const E_Comp *c, Evas_Coord x, Evas_Coord y);
EAPI E_Zone * e_comp_zone_number_get(E_Comp *c, int num);
EAPI E_Zone * e_comp_zone_id_get(E_Comp *c, int id);
EAPI E_Comp * e_comp_number_get(unsigned int num);
EAPI E_Desk * e_comp_desk_window_profile_get(E_Comp *c, const char *profile);
EAPI void e_comp_canvas_zone_update(E_Zone *zone);
EAPI void e_comp_canvas_update(E_Comp *c);
EAPI void e_comp_canvas_update(void);
EAPI void e_comp_canvas_fake_layers_init(E_Comp *comp);
EAPI void e_comp_canvas_fps_toggle(void);
EAPI E_Layer e_comp_canvas_layer_map_to(unsigned int layer);

@ -468,8 +468,6 @@ static Eina_Bool
_e_comp_x_post_client_idler_cb(void *d EINA_UNUSED)
{
E_Client *ec;
const Eina_List *l;
E_Comp *c;
//INF("POST IDLER");
EINA_LIST_FREE(post_clients, ec)
@ -481,6 +479,7 @@ _e_comp_x_post_client_idler_cb(void *d EINA_UNUSED)
if (ec->post_move)
{
E_Client *tmp;
Eina_List *l;
EINA_LIST_FOREACH(ec->e.state.video_child, l, tmp)
{
@ -584,12 +583,11 @@ _e_comp_x_post_client_idler_cb(void *d EINA_UNUSED)
ec->post_move = 0;
ec->post_resize = 0;
}
EINA_LIST_FOREACH(e_comp_list(), l, c)
if (c->x_comp_data->restack && (!c->new_clients))
{
e_hints_client_stacking_set();
c->x_comp_data->restack = 0;
}
if (e_comp->x_comp_data->restack && (!e_comp->new_clients))
{
e_hints_client_stacking_set();
e_comp->x_comp_data->restack = 0;
}
_e_comp_x_post_client_idler = NULL;
return EINA_FALSE;
}
@ -1018,16 +1016,10 @@ _e_comp_x_destroy(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Event_Wi
ec = _e_comp_x_client_find_by_window(ev->win);
if (!ec)
{
const Eina_List *l;
E_Comp *c;
EINA_LIST_FOREACH(e_comp_list(), l, c)
{
if (!c->x_comp_data->retry_clients) continue;
c->x_comp_data->retry_clients = eina_list_remove(c->x_comp_data->retry_clients, (uintptr_t*)(unsigned long)ev->win);
if (!c->x_comp_data->retry_clients)
E_FREE_FUNC(c->x_comp_data->retry_timer, ecore_timer_del);
}
if (!e_comp->x_comp_data->retry_clients) return ECORE_CALLBACK_RENEW;
e_comp->x_comp_data->retry_clients = eina_list_remove(e_comp->x_comp_data->retry_clients, (uintptr_t*)(unsigned long)ev->win);
if (!e_comp->x_comp_data->retry_clients)
E_FREE_FUNC(e_comp->x_comp_data->retry_timer, ecore_timer_del);
return ECORE_CALLBACK_PASS_ON;
}
if (ec->comp_data)
@ -1264,16 +1256,10 @@ _e_comp_x_hide(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Event_Windo
ec = _e_comp_x_client_find_by_window(ev->win);
if (!ec)
{
const Eina_List *l;
E_Comp *c;
EINA_LIST_FOREACH(e_comp_list(), l, c)
{
if (!c->x_comp_data->retry_clients) continue;
c->x_comp_data->retry_clients = eina_list_remove(c->x_comp_data->retry_clients, (uintptr_t*)(unsigned long)ev->win);
if (!c->x_comp_data->retry_clients)
E_FREE_FUNC(c->x_comp_data->retry_timer, ecore_timer_del);
}
if (!e_comp->x_comp_data->retry_clients) return ECORE_CALLBACK_RENEW;
e_comp->x_comp_data->retry_clients = eina_list_remove(e_comp->x_comp_data->retry_clients, (uintptr_t*)(unsigned long)ev->win);
if (!e_comp->x_comp_data->retry_clients)
E_FREE_FUNC(e_comp->x_comp_data->retry_timer, ecore_timer_del);
return ECORE_CALLBACK_PASS_ON;
}
if ((!ec->visible) || (ec->hidden && ec->unredirected_single))
@ -2017,27 +2003,25 @@ _e_comp_x_state_request(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Ev
static Eina_Bool
_e_comp_x_mapping_change(void *data EINA_UNUSED, int type EINA_UNUSED, Ecore_X_Event_Mapping_Change *ev EINA_UNUSED)
{
const Eina_List *l, *ll;
const Eina_List *l;
E_Client *ec;
E_Comp *c;
if (_e_comp_x_mapping_change_disabled) return ECORE_CALLBACK_RENEW;
e_managers_keys_ungrab();
EINA_LIST_FOREACH(e_comp_list(), l, c)
EINA_LIST_FOREACH(c->clients, ll, ec)
{
Ecore_X_Window win;
if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_X) continue;
win = e_client_util_pwin_get(ec);
if ((!ec->comp_data->first_map) || (!ec->comp_data->reparented)) continue;
_e_comp_x_focus_setdown(ec);
e_bindings_mouse_ungrab(E_BINDING_CONTEXT_WINDOW, win);
e_bindings_wheel_ungrab(E_BINDING_CONTEXT_WINDOW, win);
e_bindings_mouse_grab(E_BINDING_CONTEXT_WINDOW, win);
e_bindings_wheel_grab(E_BINDING_CONTEXT_WINDOW, win);
_e_comp_x_focus_setup(ec);
}
EINA_LIST_FOREACH(e_comp->clients, l, ec)
{
Ecore_X_Window win;
if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_X) continue;
win = e_client_util_pwin_get(ec);
if ((!ec->comp_data->first_map) || (!ec->comp_data->reparented)) continue;
_e_comp_x_focus_setdown(ec);
e_bindings_mouse_ungrab(E_BINDING_CONTEXT_WINDOW, win);
e_bindings_wheel_ungrab(E_BINDING_CONTEXT_WINDOW, win);
e_bindings_mouse_grab(E_BINDING_CONTEXT_WINDOW, win);
e_bindings_wheel_grab(E_BINDING_CONTEXT_WINDOW, win);
_e_comp_x_focus_setup(ec);
}
e_managers_keys_grab();
return ECORE_CALLBACK_PASS_ON;
}
@ -4625,16 +4609,15 @@ _e_comp_x_xinerama_setup(int rw, int rh)
}
static void
_e_comp_x_ee_resize(Ecore_Evas *ee)
_e_comp_x_ee_resize(Ecore_Evas *ee EINA_UNUSED)
{
E_Client *ec;
E_Comp *c = ecore_evas_data_get(ee, "comp");
ecore_x_netwm_desk_size_set(c->man->root, c->man->w, c->man->h);
_e_comp_x_xinerama_setup(c->man->w, c->man->h);
ecore_x_netwm_desk_size_set(e_comp->man->root, e_comp->man->w, e_comp->man->h);
_e_comp_x_xinerama_setup(e_comp->man->w, e_comp->man->h);
e_comp_canvas_update(c);
E_CLIENT_FOREACH(c, ec)
e_comp_canvas_update();
E_CLIENT_FOREACH(e_comp, ec)
{
if (!e_client_util_ignored_get(ec))
_e_comp_x_client_zone_geometry_set(ec);
@ -4856,72 +4839,61 @@ _e_comp_x_desklock_key_down(E_Comp *comp, int t EINA_UNUSED, Ecore_Event_Key *ev
static void
_e_comp_x_desklock_hide(void)
{
E_Comp *comp;
const Eina_List *l;
EINA_LIST_FOREACH(e_comp_list(), l, comp)
if (e_comp->x_comp_data->lock_win)
{
if (comp->x_comp_data->lock_win)
{
e_grabinput_release(comp->x_comp_data->lock_win, comp->x_comp_data->lock_win);
ecore_x_window_free(comp->x_comp_data->lock_win);