remove most E_Comp usage from e_comp
This commit is contained in:
parent
089ef5aa14
commit
138e84370d
273
src/bin/e_comp.c
273
src/bin/e_comp.c
|
@ -167,7 +167,7 @@ _e_comp_visible_object_is_above(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Ev
|
|||
}
|
||||
|
||||
static E_Client *
|
||||
_e_comp_fullscreen_check(E_Comp *c)
|
||||
_e_comp_fullscreen_check(void)
|
||||
{
|
||||
E_Client *ec;
|
||||
|
||||
|
@ -185,7 +185,7 @@ _e_comp_fullscreen_check(E_Comp *c)
|
|||
while (o)
|
||||
{
|
||||
if (_e_comp_visible_object_is_above
|
||||
(o, 0, 0, c->man->w, c->man->h)) return NULL;
|
||||
(o, 0, 0, e_comp->man->w, e_comp->man->h)) return NULL;
|
||||
o = evas_object_smart_parent_get(o);
|
||||
}
|
||||
return ec;
|
||||
|
@ -194,63 +194,63 @@ _e_comp_fullscreen_check(E_Comp *c)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_comp_fps_update(E_Comp *c)
|
||||
_e_comp_fps_update(void)
|
||||
{
|
||||
if (conf->fps_show)
|
||||
{
|
||||
if (c->fps_bg) return;
|
||||
if (e_comp->fps_bg) return;
|
||||
|
||||
c->fps_bg = evas_object_rectangle_add(c->evas);
|
||||
evas_object_color_set(c->fps_bg, 0, 0, 0, 128);
|
||||
evas_object_layer_set(c->fps_bg, E_LAYER_MAX);
|
||||
evas_object_name_set(c->fps_bg, "c->fps_bg");
|
||||
evas_object_lower(c->fps_bg);
|
||||
evas_object_show(c->fps_bg);
|
||||
e_comp->fps_bg = evas_object_rectangle_add(e_comp->evas);
|
||||
evas_object_color_set(e_comp->fps_bg, 0, 0, 0, 128);
|
||||
evas_object_layer_set(e_comp->fps_bg, E_LAYER_MAX);
|
||||
evas_object_name_set(e_comp->fps_bg, "e_comp->fps_bg");
|
||||
evas_object_lower(e_comp->fps_bg);
|
||||
evas_object_show(e_comp->fps_bg);
|
||||
|
||||
c->fps_fg = evas_object_text_add(c->evas);
|
||||
evas_object_text_font_set(c->fps_fg, "Sans", 10);
|
||||
evas_object_text_text_set(c->fps_fg, "???");
|
||||
evas_object_color_set(c->fps_fg, 255, 255, 255, 255);
|
||||
evas_object_layer_set(c->fps_fg, E_LAYER_MAX);
|
||||
evas_object_name_set(c->fps_bg, "c->fps_fg");
|
||||
evas_object_stack_above(c->fps_fg, c->fps_bg);
|
||||
evas_object_show(c->fps_fg);
|
||||
e_comp->fps_fg = evas_object_text_add(e_comp->evas);
|
||||
evas_object_text_font_set(e_comp->fps_fg, "Sans", 10);
|
||||
evas_object_text_text_set(e_comp->fps_fg, "???");
|
||||
evas_object_color_set(e_comp->fps_fg, 255, 255, 255, 255);
|
||||
evas_object_layer_set(e_comp->fps_fg, E_LAYER_MAX);
|
||||
evas_object_name_set(e_comp->fps_bg, "e_comp->fps_fg");
|
||||
evas_object_stack_above(e_comp->fps_fg, e_comp->fps_bg);
|
||||
evas_object_show(e_comp->fps_fg);
|
||||
}
|
||||
else
|
||||
{
|
||||
E_FREE_FUNC(c->fps_fg, evas_object_del);
|
||||
E_FREE_FUNC(c->fps_bg, evas_object_del);
|
||||
E_FREE_FUNC(e_comp->fps_fg, evas_object_del);
|
||||
E_FREE_FUNC(e_comp->fps_bg, evas_object_del);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_e_comp_cb_nocomp_begin(E_Comp *c)
|
||||
_e_comp_cb_nocomp_begin(void)
|
||||
{
|
||||
E_Client *ec, *ecf;
|
||||
|
||||
if (c->nocomp) return;
|
||||
if (e_comp->nocomp) return;
|
||||
|
||||
E_FREE_FUNC(c->nocomp_delay_timer, ecore_timer_del);
|
||||
E_FREE_FUNC(e_comp->nocomp_delay_timer, ecore_timer_del);
|
||||
|
||||
ecf = _e_comp_fullscreen_check(c);
|
||||
ecf = _e_comp_fullscreen_check();
|
||||
if (!ecf) return;
|
||||
c->nocomp_ec = ecf;
|
||||
e_comp->nocomp_ec = ecf;
|
||||
E_CLIENT_FOREACH(ec)
|
||||
if (ec != ecf) e_client_redirected_set(ec, 0);
|
||||
|
||||
INF("NOCOMP %p: frame %p", ecf, ecf->frame);
|
||||
c->nocomp = 1;
|
||||
e_comp->nocomp = 1;
|
||||
|
||||
evas_object_raise(ecf->frame);
|
||||
e_client_redirected_set(ecf, 0);
|
||||
|
||||
//ecore_evas_manual_render_set(c->ee, EINA_TRUE);
|
||||
ecore_evas_hide(c->ee);
|
||||
//ecore_evas_manual_render_set(e_comp->ee, EINA_TRUE);
|
||||
ecore_evas_hide(e_comp->ee);
|
||||
edje_file_cache_flush();
|
||||
edje_collection_cache_flush();
|
||||
evas_image_cache_flush(c->evas);
|
||||
evas_font_cache_flush(c->evas);
|
||||
evas_render_dump(c->evas);
|
||||
evas_image_cache_flush(e_comp->evas);
|
||||
evas_font_cache_flush(e_comp->evas);
|
||||
evas_render_dump(e_comp->evas);
|
||||
|
||||
DBG("JOB2...");
|
||||
e_comp_render_queue();
|
||||
|
@ -259,15 +259,15 @@ _e_comp_cb_nocomp_begin(E_Comp *c)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_comp_cb_nocomp_end(E_Comp *c)
|
||||
_e_comp_cb_nocomp_end(void)
|
||||
{
|
||||
E_Client *ec;
|
||||
|
||||
if (!c->nocomp) return;
|
||||
if (!e_comp->nocomp) return;
|
||||
|
||||
INF("COMP RESUME!");
|
||||
//ecore_evas_manual_render_set(c->ee, EINA_FALSE);
|
||||
ecore_evas_show(c->ee);
|
||||
//ecore_evas_manual_render_set(e_comp->ee, EINA_FALSE);
|
||||
ecore_evas_show(e_comp->ee);
|
||||
E_CLIENT_FOREACH(ec)
|
||||
{
|
||||
e_client_redirected_set(ec, 1);
|
||||
|
@ -275,7 +275,7 @@ _e_comp_cb_nocomp_end(E_Comp *c)
|
|||
e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h);
|
||||
}
|
||||
#ifndef HAVE_WAYLAND_ONLY
|
||||
e_comp_x_nocomp_end(c);
|
||||
e_comp_x_nocomp_end();
|
||||
#endif
|
||||
e_comp_render_queue();
|
||||
e_comp_shape_queue_block(0);
|
||||
|
@ -283,15 +283,13 @@ _e_comp_cb_nocomp_end(E_Comp *c)
|
|||
}
|
||||
|
||||
static Eina_Bool
|
||||
_e_comp_cb_nocomp_begin_timeout(void *data)
|
||||
_e_comp_cb_nocomp_begin_timeout(void *data EINA_UNUSED)
|
||||
{
|
||||
E_Comp *c = data;
|
||||
|
||||
c->nocomp_delay_timer = NULL;
|
||||
if (c->nocomp_override == 0)
|
||||
e_comp->nocomp_delay_timer = NULL;
|
||||
if (e_comp->nocomp_override == 0)
|
||||
{
|
||||
if (_e_comp_fullscreen_check(c)) c->nocomp_want = 1;
|
||||
_e_comp_cb_nocomp_begin(c);
|
||||
if (_e_comp_fullscreen_check()) e_comp->nocomp_want = 1;
|
||||
_e_comp_cb_nocomp_begin();
|
||||
}
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
@ -340,46 +338,46 @@ _e_comp_client_update(E_Client *ec)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_comp_nocomp_end(E_Comp *c)
|
||||
_e_comp_nocomp_end(void)
|
||||
{
|
||||
c->nocomp_want = 0;
|
||||
E_FREE_FUNC(c->nocomp_delay_timer, ecore_timer_del);
|
||||
_e_comp_cb_nocomp_end(c);
|
||||
c->nocomp_ec = NULL;
|
||||
e_comp->nocomp_want = 0;
|
||||
E_FREE_FUNC(e_comp->nocomp_delay_timer, ecore_timer_del);
|
||||
_e_comp_cb_nocomp_end();
|
||||
e_comp->nocomp_ec = NULL;
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_e_comp_cb_update(E_Comp *c)
|
||||
_e_comp_cb_update(void)
|
||||
{
|
||||
E_Client *ec;
|
||||
Eina_List *l;
|
||||
// static int doframeinfo = -1;
|
||||
|
||||
if (!c) return EINA_FALSE;
|
||||
if (c->update_job)
|
||||
c->update_job = NULL;
|
||||
if (!e_comp) return EINA_FALSE;
|
||||
if (e_comp->update_job)
|
||||
e_comp->update_job = NULL;
|
||||
else
|
||||
ecore_animator_freeze(c->render_animator);
|
||||
ecore_animator_freeze(e_comp->render_animator);
|
||||
DBG("UPDATE ALL");
|
||||
if (c->nocomp) goto nocomp;
|
||||
if (conf->grab && (!c->grabbed))
|
||||
if (e_comp->nocomp) goto nocomp;
|
||||
if (conf->grab && (!e_comp->grabbed))
|
||||
{
|
||||
if (c->grab_cb) c->grab_cb(c);
|
||||
c->grabbed = 1;
|
||||
if (e_comp->grab_cb) e_comp->grab_cb();
|
||||
e_comp->grabbed = 1;
|
||||
}
|
||||
l = c->updates;
|
||||
c->updates = NULL;
|
||||
l = e_comp->updates;
|
||||
e_comp->updates = NULL;
|
||||
EINA_LIST_FREE(l, ec)
|
||||
{
|
||||
/* clear update flag */
|
||||
e_comp_object_render_update_del(ec->frame);
|
||||
if (_e_comp_client_update(ec))
|
||||
{
|
||||
c->post_updates = eina_list_append(c->post_updates, ec);
|
||||
e_comp->post_updates = eina_list_append(e_comp->post_updates, ec);
|
||||
e_object_ref(E_OBJECT(ec));
|
||||
}
|
||||
}
|
||||
_e_comp_fps_update(c);
|
||||
_e_comp_fps_update();
|
||||
if (conf->fps_show)
|
||||
{
|
||||
char buf[128];
|
||||
|
@ -393,21 +391,21 @@ _e_comp_cb_update(E_Comp *c)
|
|||
conf->fps_average_range = 30;
|
||||
else if (conf->fps_average_range > 120)
|
||||
conf->fps_average_range = 120;
|
||||
dt = t - c->frametimes[conf->fps_average_range - 1];
|
||||
dt = t - e_comp->frametimes[conf->fps_average_range - 1];
|
||||
if (dt > 0.0) fps = (double)conf->fps_average_range / dt;
|
||||
else fps = 0.0;
|
||||
if (fps > 0.0) snprintf(buf, sizeof(buf), "FPS: %1.1f", fps);
|
||||
else snprintf(buf, sizeof(buf), "N/A");
|
||||
for (i = 121; i >= 1; i--)
|
||||
c->frametimes[i] = c->frametimes[i - 1];
|
||||
c->frametimes[0] = t;
|
||||
c->frameskip++;
|
||||
if (c->frameskip >= conf->fps_average_range)
|
||||
e_comp->frametimes[i] = e_comp->frametimes[i - 1];
|
||||
e_comp->frametimes[0] = t;
|
||||
e_comp->frameskip++;
|
||||
if (e_comp->frameskip >= conf->fps_average_range)
|
||||
{
|
||||
c->frameskip = 0;
|
||||
evas_object_text_text_set(c->fps_fg, buf);
|
||||
e_comp->frameskip = 0;
|
||||
evas_object_text_text_set(e_comp->fps_fg, buf);
|
||||
}
|
||||
evas_object_geometry_get(c->fps_fg, NULL, NULL, &w, &h);
|
||||
evas_object_geometry_get(e_comp->fps_fg, NULL, NULL, &w, &h);
|
||||
w += 8;
|
||||
h += 8;
|
||||
z = e_zone_current_get();
|
||||
|
@ -435,23 +433,23 @@ _e_comp_cb_update(E_Comp *c)
|
|||
break;
|
||||
}
|
||||
}
|
||||
evas_object_move(c->fps_bg, x, y);
|
||||
evas_object_resize(c->fps_bg, w, h);
|
||||
evas_object_move(c->fps_fg, x + 4, y + 4);
|
||||
evas_object_move(e_comp->fps_bg, x, y);
|
||||
evas_object_resize(e_comp->fps_bg, w, h);
|
||||
evas_object_move(e_comp->fps_fg, x + 4, y + 4);
|
||||
}
|
||||
if (conf->lock_fps)
|
||||
{
|
||||
DBG("MANUAL RENDER...");
|
||||
// if (!c->nocomp) ecore_evas_manual_render(c->ee);
|
||||
// if (!e_comp->nocomp) ecore_evas_manual_render(e_comp->ee);
|
||||
}
|
||||
|
||||
if (conf->grab && c->grabbed)
|
||||
if (conf->grab && e_comp->grabbed)
|
||||
{
|
||||
if (c->grab_cb) c->grab_cb(c);
|
||||
c->grabbed = 0;
|
||||
if (e_comp->grab_cb) e_comp->grab_cb();
|
||||
e_comp->grabbed = 0;
|
||||
}
|
||||
if (c->updates && (!c->update_job))
|
||||
ecore_animator_thaw(c->render_animator);
|
||||
if (e_comp->updates && (!e_comp->update_job))
|
||||
ecore_animator_thaw(e_comp->render_animator);
|
||||
/*
|
||||
if (doframeinfo == -1)
|
||||
{
|
||||
|
@ -477,56 +475,56 @@ _e_comp_cb_update(E_Comp *c)
|
|||
}
|
||||
*/
|
||||
nocomp:
|
||||
ec = _e_comp_fullscreen_check(c);
|
||||
ec = _e_comp_fullscreen_check();
|
||||
if (ec)
|
||||
{
|
||||
if (conf->nocomp_fs)
|
||||
{
|
||||
if (c->nocomp && c->nocomp_ec)
|
||||
if (e_comp->nocomp && e_comp->nocomp_ec)
|
||||
{
|
||||
E_Client *nec = NULL;
|
||||
for (ec = e_client_top_get(), nec = e_client_below_get(ec);
|
||||
(ec && nec) && (ec != nec); ec = nec, nec = e_client_below_get(ec))
|
||||
{
|
||||
if (ec == c->nocomp_ec) break;
|
||||
if (evas_object_layer_get(ec->frame) < evas_object_layer_get(c->nocomp_ec->frame)) break;
|
||||
if (ec == e_comp->nocomp_ec) break;
|
||||
if (evas_object_layer_get(ec->frame) < evas_object_layer_get(e_comp->nocomp_ec->frame)) break;
|
||||
if (e_client_is_stacking(ec)) continue;
|
||||
if (!ec->visible) continue;
|
||||
if (evas_object_data_get(ec->frame, "comp_skip")) continue;
|
||||
if (e_object_is_del(E_OBJECT(ec)) || (!e_client_util_desk_visible(ec, e_desk_current_get(ec->zone)))) continue;
|
||||
if (ec->override || (e_config->allow_above_fullscreen && (!e_config->mode.presentation)))
|
||||
{
|
||||
_e_comp_nocomp_end(c);
|
||||
_e_comp_nocomp_end();
|
||||
break;
|
||||
}
|
||||
else
|
||||
evas_object_stack_below(ec->frame, c->nocomp_ec->frame);
|
||||
evas_object_stack_below(ec->frame, e_comp->nocomp_ec->frame);
|
||||
}
|
||||
}
|
||||
else if ((!c->nocomp) && (!c->nocomp_override > 0))
|
||||
else if ((!e_comp->nocomp) && (!e_comp->nocomp_override > 0))
|
||||
{
|
||||
if (!c->nocomp_delay_timer)
|
||||
c->nocomp_delay_timer = ecore_timer_add(1.0, _e_comp_cb_nocomp_begin_timeout, c);
|
||||
if (!e_comp->nocomp_delay_timer)
|
||||
e_comp->nocomp_delay_timer = ecore_timer_add(1.0, _e_comp_cb_nocomp_begin_timeout, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
_e_comp_nocomp_end(c);
|
||||
_e_comp_nocomp_end();
|
||||
|
||||
return ECORE_CALLBACK_RENEW;
|
||||
}
|
||||
|
||||
static void
|
||||
_e_comp_cb_job(void *data)
|
||||
_e_comp_cb_job(void *data EINA_UNUSED)
|
||||
{
|
||||
DBG("UPDATE ALL JOB...");
|
||||
_e_comp_cb_update(data);
|
||||
_e_comp_cb_update();
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_e_comp_cb_animator(void *data)
|
||||
_e_comp_cb_animator(void *data EINA_UNUSED)
|
||||
{
|
||||
return _e_comp_cb_update(data);
|
||||
return _e_comp_cb_update();
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
@ -534,12 +532,12 @@ _e_comp_cb_animator(void *data)
|
|||
|
||||
#ifdef SHAPE_DEBUG
|
||||
static void
|
||||
_e_comp_shape_debug_rect(E_Comp *c, Eina_Rectangle *rect, E_Color *color)
|
||||
_e_comp_shape_debug_rect(Eina_Rectangle *rect, E_Color *color)
|
||||
{
|
||||
Evas_Object *o;
|
||||
|
||||
#define COLOR_INCREMENT 30
|
||||
o = evas_object_rectangle_add(c->evas);
|
||||
o = evas_object_rectangle_add(e_comp->evas);
|
||||
if (color->r < 256 - COLOR_INCREMENT)
|
||||
evas_object_color_set(o, (color->r += COLOR_INCREMENT), 0, 0, 255);
|
||||
else if (color->g < 256 - COLOR_INCREMENT)
|
||||
|
@ -550,19 +548,19 @@ _e_comp_shape_debug_rect(E_Comp *c, Eina_Rectangle *rect, E_Color *color)
|
|||
evas_object_layer_set(o, E_LAYER_MENU - 1);
|
||||
evas_object_move(o, rect->x, rect->y);
|
||||
evas_object_resize(o, rect->w, rect->h);
|
||||
c->debug_rects = eina_list_append(c->debug_rects, o);
|
||||
e_comp->debug_rects = eina_list_append(e_comp->debug_rects, o);
|
||||
evas_object_show(o);
|
||||
}
|
||||
#endif
|
||||
|
||||
static Eina_Bool
|
||||
_e_comp_shapes_update_object_checker_function_thingy(E_Comp *c, Evas_Object *o)
|
||||
_e_comp_shapes_update_object_checker_function_thingy(Evas_Object *o)
|
||||
{
|
||||
Eina_List *l;
|
||||
E_Zone *zone;
|
||||
|
||||
if (o == c->bg_blank_object) return EINA_TRUE;
|
||||
EINA_LIST_FOREACH(c->zones, l, zone)
|
||||
if (o == e_comp->bg_blank_object) return EINA_TRUE;
|
||||
EINA_LIST_FOREACH(e_comp->zones, l, zone)
|
||||
{
|
||||
if ((o == zone->over) || (o == zone->base)) return EINA_TRUE;
|
||||
if ((o == zone->bg_object) || (o == zone->bg_event_object) ||
|
||||
|
@ -675,14 +673,14 @@ _e_comp_shapes_update_comp_client_shape_comp_helper(E_Client *ec, Eina_Tiler *tb
|
|||
}
|
||||
|
||||
static void
|
||||
_e_comp_shapes_update_object_shape_comp_helper(E_Comp *c, Evas_Object *o, Eina_Tiler *tb)
|
||||
_e_comp_shapes_update_object_shape_comp_helper(Evas_Object *o, Eina_Tiler *tb)
|
||||
{
|
||||
int x, y, w, h;
|
||||
|
||||
/* ignore hidden and pass-event objects */
|
||||
if ((!evas_object_visible_get(o)) || evas_object_pass_events_get(o) || evas_object_repeat_events_get(o)) return;
|
||||
/* ignore canvas objects */
|
||||
if (_e_comp_shapes_update_object_checker_function_thingy(c, o)) return;
|
||||
if (_e_comp_shapes_update_object_checker_function_thingy(o)) return;
|
||||
SHAPE_INF("OBJ: %p:%s", o, evas_object_name_get(o));
|
||||
evas_object_geometry_get(o, &x, &y, &w, &h);
|
||||
eina_tiler_rect_add(tb, &(Eina_Rectangle){x, y, w, h});
|
||||
|
@ -690,7 +688,7 @@ _e_comp_shapes_update_object_shape_comp_helper(E_Comp *c, Evas_Object *o, Eina_T
|
|||
}
|
||||
|
||||
static void
|
||||
_e_comp_shapes_update_job(E_Comp *c)
|
||||
_e_comp_shapes_update_job(void *d EINA_UNUSED)
|
||||
{
|
||||
Eina_Tiler *tb;
|
||||
E_Client *ec;
|
||||
|
@ -707,11 +705,11 @@ _e_comp_shapes_update_job(E_Comp *c)
|
|||
INF("---------------------");
|
||||
#endif
|
||||
|
||||
E_FREE_LIST(c->debug_rects, evas_object_del);
|
||||
tb = eina_tiler_new(c->man->w, c->man->h);
|
||||
E_FREE_LIST(e_comp->debug_rects, evas_object_del);
|
||||
tb = eina_tiler_new(e_comp->man->w, e_comp->man->h);
|
||||
eina_tiler_tile_size_set(tb, 1, 1);
|
||||
/* background */
|
||||
eina_tiler_rect_add(tb, &(Eina_Rectangle){0, 0, c->man->w, c->man->h});
|
||||
eina_tiler_rect_add(tb, &(Eina_Rectangle){0, 0, e_comp->man->w, e_comp->man->h});
|
||||
|
||||
ec = e_client_bottom_get();
|
||||
if (ec) o = ec->frame;
|
||||
|
@ -722,7 +720,7 @@ _e_comp_shapes_update_job(E_Comp *c)
|
|||
layer = evas_object_layer_get(o);
|
||||
if (e_comp_canvas_client_layer_map(layer) == 9999) //not a client layer
|
||||
{
|
||||
_e_comp_shapes_update_object_shape_comp_helper(c, o, tb);
|
||||
_e_comp_shapes_update_object_shape_comp_helper(o, tb);
|
||||
continue;
|
||||
}
|
||||
ec = e_comp_object_client_get(o);
|
||||
|
@ -734,7 +732,7 @@ _e_comp_shapes_update_job(E_Comp *c)
|
|||
);
|
||||
|
||||
else
|
||||
_e_comp_shapes_update_object_shape_comp_helper(c, o, tb);
|
||||
_e_comp_shapes_update_object_shape_comp_helper(o, tb);
|
||||
}
|
||||
|
||||
ti = eina_tiler_iterator_new(tb);
|
||||
|
@ -749,7 +747,7 @@ _e_comp_shapes_update_job(E_Comp *c)
|
|||
#ifdef SHAPE_DEBUG
|
||||
Eina_List *l;
|
||||
|
||||
_e_comp_shape_debug_rect(c, &exr[i - 1], &color);
|
||||
_e_comp_shape_debug_rect(&exr[i - 1], &color);
|
||||
INF("%d,%d @ %dx%d", exr[i - 1].x, exr[i - 1].y, exr[i - 1].w, exr[i - 1].h);
|
||||
EINA_LIST_FOREACH(rl, l, r)
|
||||
{
|
||||
|
@ -760,7 +758,7 @@ _e_comp_shapes_update_job(E_Comp *c)
|
|||
}
|
||||
|
||||
#ifndef HAVE_WAYLAND_ONLY
|
||||
ecore_x_window_shape_input_rectangles_set(c->win, (Ecore_X_Rectangle*)exr, i);
|
||||
ecore_x_window_shape_input_rectangles_set(e_comp->win, (Ecore_X_Rectangle*)exr, i);
|
||||
#endif
|
||||
|
||||
#ifdef SHAPE_DEBUG
|
||||
|
@ -770,7 +768,7 @@ _e_comp_shapes_update_job(E_Comp *c)
|
|||
free(exr);
|
||||
eina_iterator_free(ti);
|
||||
eina_tiler_free(tb);
|
||||
c->shape_job = NULL;
|
||||
e_comp->shape_job = NULL;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
@ -828,17 +826,15 @@ _e_comp_free(E_Comp *c)
|
|||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
static Eina_Bool
|
||||
_e_comp_override_expire(void *data)
|
||||
_e_comp_override_expire(void *data EINA_UNUSED)
|
||||
{
|
||||
E_Comp *c = data;
|
||||
e_comp->nocomp_override_timer = NULL;
|
||||
e_comp->nocomp_override--;
|
||||
|
||||
c->nocomp_override_timer = NULL;
|
||||
c->nocomp_override--;
|
||||
|
||||
if (c->nocomp_override <= 0)
|
||||
if (e_comp->nocomp_override <= 0)
|
||||
{
|
||||
c->nocomp_override = 0;
|
||||
if (c->nocomp_want) _e_comp_cb_nocomp_begin(c);
|
||||
e_comp->nocomp_override = 0;
|
||||
if (e_comp->nocomp_want) _e_comp_cb_nocomp_begin();
|
||||
}
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
@ -1261,18 +1257,15 @@ e_comp_style_selector_create(Evas *evas, const char **source)
|
|||
EAPI E_Comp *
|
||||
e_comp_new(void)
|
||||
{
|
||||
E_Comp *c;
|
||||
|
||||
if (e_comp)
|
||||
CRI("CANNOT REPLACE EXISTING COMPOSITOR");
|
||||
c = E_OBJECT_ALLOC(E_Comp, E_COMP_TYPE, _e_comp_free);
|
||||
if (!c) return NULL;
|
||||
e_comp = E_OBJECT_ALLOC(E_Comp, E_COMP_TYPE, _e_comp_free);
|
||||
if (!e_comp) return NULL;
|
||||
|
||||
c->name = eina_stringshare_add(_("Compositor"));
|
||||
c->render_animator = ecore_animator_add(_e_comp_cb_animator, c);
|
||||
ecore_animator_freeze(c->render_animator);
|
||||
e_comp = c;
|
||||
return c;
|
||||
e_comp->name = eina_stringshare_add(_("Compositor"));
|
||||
e_comp->render_animator = ecore_animator_add(_e_comp_cb_animator, NULL);
|
||||
ecore_animator_freeze(e_comp->render_animator);
|
||||
return e_comp;
|
||||
}
|
||||
|
||||
EAPI int
|
||||
|
@ -1310,11 +1303,8 @@ e_comp_shutdown(void)
|
|||
}
|
||||
|
||||
EAPI void
|
||||
e_comp_render_queue()
|
||||
e_comp_render_queue(void)
|
||||
{
|
||||
E_OBJECT_CHECK(e_comp);
|
||||
E_OBJECT_TYPE_CHECK(e_comp, E_COMP_TYPE);
|
||||
|
||||
if (conf->lock_fps)
|
||||
{
|
||||
ecore_animator_thaw(e_comp->render_animator);
|
||||
|
@ -1332,20 +1322,16 @@ e_comp_render_queue()
|
|||
}
|
||||
|
||||
EAPI void
|
||||
e_comp_shape_queue()
|
||||
e_comp_shape_queue(void)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN(e_comp);
|
||||
|
||||
if (e_comp->comp_type != E_PIXMAP_TYPE_X) return;
|
||||
if (!e_comp->shape_job)
|
||||
e_comp->shape_job = ecore_job_add((Ecore_Cb)_e_comp_shapes_update_job, e_comp);
|
||||
e_comp->shape_job = ecore_job_add(_e_comp_shapes_update_job, NULL);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_comp_shape_queue_block(Eina_Bool block)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN(e_comp);
|
||||
|
||||
e_comp->shape_queue_blocked = !!block;
|
||||
if (block)
|
||||
E_FREE_FUNC(e_comp->shape_job, ecore_job_del);
|
||||
|
@ -1364,7 +1350,7 @@ e_comp_shadows_reset(void)
|
|||
{
|
||||
E_Client *ec;
|
||||
|
||||
_e_comp_fps_update(e_comp);
|
||||
_e_comp_fps_update();
|
||||
E_LIST_FOREACH(e_comp->zones, e_comp_canvas_zone_update);
|
||||
E_CLIENT_FOREACH(ec)
|
||||
e_comp_object_frame_theme_set(ec->frame, E_COMP_OBJECT_FRAME_RESHADOW);
|
||||
|
@ -1446,7 +1432,7 @@ e_comp_override_del()
|
|||
if (e_comp->nocomp_override <= 0)
|
||||
{
|
||||
e_comp->nocomp_override = 0;
|
||||
if (e_comp->nocomp_want) _e_comp_cb_nocomp_begin(e_comp);
|
||||
if (e_comp->nocomp_want) _e_comp_cb_nocomp_begin();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1454,7 +1440,7 @@ EAPI void
|
|||
e_comp_override_add()
|
||||
{
|
||||
e_comp->nocomp_override++;
|
||||
if ((e_comp->nocomp_override > 0) && (e_comp->nocomp)) _e_comp_cb_nocomp_end(e_comp);
|
||||
if ((e_comp->nocomp_override > 0) && (e_comp->nocomp)) _e_comp_cb_nocomp_end();
|
||||
}
|
||||
|
||||
#if 0
|
||||
|
@ -1493,14 +1479,13 @@ e_comp_find_by_window(Ecore_Window win)
|
|||
}
|
||||
|
||||
EAPI void
|
||||
e_comp_override_timed_pop()
|
||||
e_comp_override_timed_pop(void)
|
||||
{
|
||||
EINA_SAFETY_ON_NULL_RETURN(e_comp);
|
||||
if (e_comp->nocomp_override <= 0) return;
|
||||
if (e_comp->nocomp_override_timer)
|
||||
e_comp->nocomp_override--;
|
||||
else
|
||||
e_comp->nocomp_override_timer = ecore_timer_add(1.0, _e_comp_override_expire, e_comp);
|
||||
e_comp->nocomp_override_timer = ecore_timer_add(1.0, _e_comp_override_expire, NULL);
|
||||
}
|
||||
|
||||
EAPI unsigned int
|
||||
|
@ -1601,14 +1586,14 @@ EAPI void
|
|||
e_comp_button_bindings_ungrab_all(void)
|
||||
{
|
||||
if (e_comp->bindings_ungrab_cb)
|
||||
e_comp->bindings_ungrab_cb(e_comp);
|
||||
e_comp->bindings_ungrab_cb();
|
||||
}
|
||||
|
||||
EAPI void
|
||||
e_comp_button_bindings_grab_all(void)
|
||||
{
|
||||
if (e_comp->bindings_grab_cb)
|
||||
e_comp->bindings_grab_cb(e_comp);
|
||||
e_comp->bindings_grab_cb();
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
|
|
@ -55,6 +55,8 @@ typedef enum _E_Layer
|
|||
extern EAPI int E_EVENT_COMPOSITOR_DISABLE;
|
||||
extern EAPI int E_EVENT_COMPOSITOR_ENABLE;
|
||||
|
||||
typedef void (*E_Comp_Grab_Cb)(void);
|
||||
|
||||
struct _E_Comp
|
||||
{
|
||||
E_Object e_obj_inherit;
|
||||
|
@ -124,9 +126,9 @@ struct _E_Comp
|
|||
unsigned int input_key_grabs;
|
||||
unsigned int input_mouse_grabs;
|
||||
|
||||
Ecore_Cb grab_cb;
|
||||
Ecore_Cb bindings_grab_cb;
|
||||
Ecore_Cb bindings_ungrab_cb;
|
||||
E_Comp_Grab_Cb grab_cb;
|
||||
E_Comp_Grab_Cb bindings_grab_cb;
|
||||
E_Comp_Grab_Cb bindings_ungrab_cb;
|
||||
|
||||
Eina_Bool gl : 1;
|
||||
Eina_Bool grabbed : 1;
|
||||
|
|
|
@ -4124,7 +4124,7 @@ _e_comp_x_hook_client_redirect(void *d EINA_UNUSED, E_Client *ec)
|
|||
else if (e_comp->nocomp)
|
||||
{
|
||||
/* first window */
|
||||
e_comp_x_nocomp_end(e_comp);
|
||||
e_comp_x_nocomp_end();
|
||||
ecore_x_window_reparent(_e_comp_x_client_window_get(ec), e_comp->man->root, ec->client.x, ec->client.y);
|
||||
_e_comp_x_client_stack(ec);
|
||||
}
|
||||
|
@ -4887,12 +4887,12 @@ _e_comp_x_manage_windows(E_Comp *c)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_comp_x_bindings_grab_cb(E_Comp *c)
|
||||
_e_comp_x_bindings_grab_cb(void)
|
||||
{
|
||||
Eina_List *l;
|
||||
E_Client *ec;
|
||||
|
||||
EINA_LIST_FOREACH(c->clients, l, ec)
|
||||
EINA_LIST_FOREACH(e_comp->clients, l, ec)
|
||||
{
|
||||
if (e_client_util_ignored_get(ec)) continue;
|
||||
_e_comp_x_focus_setup(ec);
|
||||
|
@ -4902,12 +4902,12 @@ _e_comp_x_bindings_grab_cb(E_Comp *c)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_comp_x_bindings_ungrab_cb(E_Comp *c)
|
||||
_e_comp_x_bindings_ungrab_cb(void)
|
||||
{
|
||||
Eina_List *l;
|
||||
E_Client *ec;
|
||||
|
||||
EINA_LIST_FOREACH(c->clients, l, ec)
|
||||
EINA_LIST_FOREACH(e_comp->clients, l, ec)
|
||||
{
|
||||
if (e_client_util_ignored_get(ec)) continue;
|
||||
_e_comp_x_focus_setdown(ec);
|
||||
|
@ -4917,9 +4917,9 @@ _e_comp_x_bindings_ungrab_cb(E_Comp *c)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_comp_x_grab_cb(E_Comp *c)
|
||||
_e_comp_x_grab_cb(void)
|
||||
{
|
||||
if (!c->grabbed)
|
||||
if (!e_comp->grabbed)
|
||||
{
|
||||
ecore_x_grab();
|
||||
ecore_x_sync();
|
||||
|
@ -5124,9 +5124,9 @@ _e_comp_x_setup(E_Comp *c, Ecore_X_Window root, int w, int h)
|
|||
|
||||
ecore_evas_callback_resize_set(c->ee, _e_comp_x_ee_resize);
|
||||
ecore_evas_data_set(c->ee, "comp", c);
|
||||
c->grab_cb = (Ecore_Cb)_e_comp_x_grab_cb;
|
||||
c->bindings_grab_cb = (Ecore_Cb)_e_comp_x_bindings_grab_cb;
|
||||
c->bindings_ungrab_cb = (Ecore_Cb)_e_comp_x_bindings_ungrab_cb;
|
||||
c->grab_cb = _e_comp_x_grab_cb;
|
||||
c->bindings_grab_cb = _e_comp_x_bindings_grab_cb;
|
||||
c->bindings_ungrab_cb = _e_comp_x_bindings_ungrab_cb;
|
||||
|
||||
if (!e_comp_canvas_init()) return EINA_FALSE;
|
||||
|
||||
|
@ -5379,10 +5379,10 @@ e_comp_x_shutdown(void)
|
|||
}
|
||||
|
||||
EINTERN void
|
||||
e_comp_x_nocomp_end(E_Comp *comp)
|
||||
e_comp_x_nocomp_end(void)
|
||||
{
|
||||
comp->nocomp = 0;
|
||||
ecore_x_window_show(comp->win);
|
||||
ecore_x_composite_redirect_subwindows(comp->man->root, ECORE_X_COMPOSITE_UPDATE_MANUAL);
|
||||
_e_comp_x_focus_check(comp);
|
||||
e_comp->nocomp = 0;
|
||||
ecore_x_window_show(e_comp->win);
|
||||
ecore_x_composite_redirect_subwindows(e_comp->man->root, ECORE_X_COMPOSITE_UPDATE_MANUAL);
|
||||
_e_comp_x_focus_check(e_comp);
|
||||
}
|
||||
|
|
|
@ -109,6 +109,6 @@ EINTERN Eina_Bool e_comp_x_init(void);
|
|||
EINTERN void e_comp_x_shutdown(void);
|
||||
|
||||
EAPI void e_alert_composite_win(Ecore_X_Window root, Ecore_X_Window win);
|
||||
EINTERN void e_comp_x_nocomp_end(E_Comp *comp);
|
||||
EINTERN void e_comp_x_nocomp_end(void);
|
||||
# endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue