giant comp rejiggering commit #6:

* border->fx REMOVED, related border api REMOVED

* comp edc has new class of groups: e/comp/effects[/auto]
** these are effects which can be applied to any compositor object through the e_comp_win_effect* api and are written in embryo
*** two types - base and auto - base = manual, for use with animators; auto are "trigger and forget", for use as actual effects

* desk flip transition animations moved to comp effects and FIXED(ish)

* "zoom" effect renamed to "diagonal" for slightly less misleading name since it never did any zooming

* actual "zoom" effect added

* border hierarchy now as follows: cw->effect_obj swallows cw->shobj, cw->shobj swallows cw->bd->bg_object ?: cw->obj, if (cw->bd->bg_object) cw->bd->bg_object swallows cw->obj
** cw->effect_obj now used for all positioning and comp logic
** cw->effect_obj ONLY used for object transformation effects (moving, zooming, fading, etc)
** cw->shobj ONLY for comp visual/non-movement effects (focus effect, unfocus opacity, legacy shadows); this is a candidate for removal/rewrite in E19

* even more comp shape rewrites

* desk flip animation time now controlled by theme since edje doesn't support setting transition time in C; related config value removed

* desk flip transitions (in e_desk.c) rewritten

* various modules (evry/illume2) updated to use comp effects instead of fx offset

* desk flip configuration BROKEN(ish)
devs/devilhorns/e_wayland
Mike Blumenkrantz 11 years ago
parent 505cec1d91
commit 718dfef61d
  1. 2
      ChangeLog
  2. 2
      NEWS
  3. 309
      data/themes/edc/comp.edc
  4. 2
      data/themes/edc/illume.edc
  5. 70
      src/bin/e_border.c
  6. 11
      src/bin/e_border.h
  7. 217
      src/bin/e_comp.c
  8. 9
      src/bin/e_comp.h
  9. 18
      src/bin/e_config.c
  10. 9
      src/bin/e_config.h
  11. 2
      src/bin/e_configure_option.c
  12. 382
      src/bin/e_desk.c
  13. 3
      src/bin/e_desk.h
  14. 4
      src/bin/e_dnd.c
  15. 8
      src/bin/e_moveresize.c
  16. 2
      src/bin/e_popup.c
  17. 12
      src/modules/conf_display/e_int_config_desks.c
  18. 66
      src/modules/everything/evry_gadget.c
  19. 2
      src/modules/illume-home/e_busycover.c
  20. 2
      src/modules/illume-home/e_mod_main.c
  21. 2
      src/modules/illume-indicator/e_mod_ind_win.c
  22. 3
      src/modules/illume-softkey/e_mod_sft_win.c
  23. 43
      src/modules/illume2/e_mod_kbd.c
  24. 46
      src/modules/illume2/e_mod_quickpanel.c
  25. 13
      src/modules/illume2/policies/illume/policy.c
  26. 13
      src/modules/illume2/policies/tablet/policy.c

@ -1,6 +1,8 @@
2013-04-15 Mike Blumenkrantz
* window borders now drawn on compositor canvas
* desk flip animations moved to edje
* added e_comp_win_effect* api
2013-04-05 Jérémy Zurcher

@ -33,6 +33,7 @@ Additions:
* added E_LIST_REVERSE_FREE macro
* added e_object_ref_debug_set
* added e_gadcon_repopulate
* added e_comp_win_effect* api
Config:
* Added option for disabling icons in menus
* Added option for disabling pointer warping when performing directional focus changes using winlist
@ -127,6 +128,7 @@ Improvements:
* Don't rely on bash or zsh behavior when starting enlightenment_init and tempget.
* menus are now drawn directly on the compositor canvas
* window borders now drawn on compositor canvas
* desk flip animations moved to edje
Fixes:
* IBar menu didn't allow to configure different icon sources, show contents menu even on empty IBar.

@ -241,6 +241,315 @@ group { name: "e/comp/screen/overlay/noeffects";
}
}
group { name: "e/comp/effects/none";
parts {
part { name: "e.swallow.content"; type: SWALLOW;
description { state: "default" 0.0;
}
}
}
}
/* non-auto effects are assumed to be run frame by frame by an animator */
group { name: "e/comp/effects/move";
script {
public message(Msg_Type:type, id, ...) {
if ((type == MSG_INT_SET) && (id == 0)) {
/* set state */
new st;
st = getarg(2);
if (st == 1)
set_state(PART:"mover", "custom", 0.0);
else
set_state(PART:"mover", "default", 0.0);
} else if ((type == MSG_INT_SET) && (id == 1)) {
/* x,y coords to move to */
new x, y;
x = getarg(2);
y = getarg(3);
custom_state(PART:"mover", "default", 0.0);
set_state_val(PART:"mover", STATE_REL1_OFFSET, x, y);
set_state_val(PART:"mover", STATE_REL2_OFFSET, x, y);
}
}
}
parts {
part { name: "mover"; type: SPACER;
description { state: "default" 0.0;
}
}
part { name: "e.swallow.content"; type: SWALLOW;
description { state: "default" 0.0;
rel1.to: "mover";
rel2.to: "mover";
}
}
}
programs {
program {
name: "show";
signal: "e,action,go";
source: "e";
filter: "mover" "default";
action: STATE_SET "custom" 0.0;
transition: DECELERATE 0.4 CURRENT;
target: "mover";
after: "done";
}
program {
name: "hide";
signal: "e,action,go";
source: "e";
filter: "mover" "custom";
action: STATE_SET "default" 0.0;
transition: DECELERATE 0.4 CURRENT;
target: "mover";
after: "done";
}
program {
name: "stop";
signal: "e,action,stop";
source: "e";
action: ACTION_STOP;
target: "show";
target: "hide";
}
program {
name: "done";
action: SIGNAL_EMIT "e,action,done" "e";
}
}
}
/* auto effects are "start and forget" */
group { name: "e/comp/effects/auto/pane";
//data.item: "noclip" "1"; //setting this prevents object from being clipped to its zone during effect
script {
public message(Msg_Type:type, id, ...) {
if ((type == MSG_INT_SET) && (id == 0)) {
/* set state */
new st;
st = getarg(2);
if (st == 1)
set_state(PART:"mover", "custom", 0.0);
else
set_state(PART:"mover", "default", 0.0);
} else if ((type == MSG_INT_SET) && (id == 1)) {
/* border geom[4] / screen size[2] / desk change direction[2] */
new x, y, sw, sh, dx, dy;
sw = getarg(6);
sh = getarg(7);
dx = getarg(8);
dy = getarg(9);
x = round(sw*dx*1.5);
y = round(sh*dy*1.5);
custom_state(PART:"mover", "default", 0.0);
set_state_val(PART:"mover", STATE_REL1_OFFSET, x, y);
set_state_val(PART:"mover", STATE_REL2_OFFSET, x, y);
}
}
}
parts {
part { name: "mover"; type: SPACER;
description { state: "default" 0.0;
}
}
part { name: "e.swallow.content"; type: SWALLOW;
description { state: "default" 0.0;
rel1.to: "mover";
rel2.to: "mover";
}
}
}
programs {
program {
name: "show";
signal: "e,action,go";
source: "e";
filter: "mover" "default";
action: STATE_SET "custom" 0.0;
transition: DECELERATE 0.4 CURRENT;
target: "mover";
after: "done";
}
program {
name: "hide";
signal: "e,action,go";
source: "e";
filter: "mover" "custom";
action: STATE_SET "default" 0.0;
transition: DECELERATE 0.4 CURRENT;
target: "mover";
after: "done";
}
program {
name: "stop";
signal: "e,action,stop";
source: "e";
action: ACTION_STOP;
target: "show";
target: "hide";
}
program {
name: "done";
action: SIGNAL_EMIT "e,action,done" "e";
}
}
}
group { name: "e/comp/effects/auto/diagonal";
inherit: "e/comp/effects/auto/pane";
script {
public message(Msg_Type:type, id, ...) {
if ((type == MSG_INT_SET) && (id == 0)) {
/* set state */
new st;
st = getarg(2);
if (st == 1)
set_state(PART:"mover", "custom", 0.0);
else
set_state(PART:"mover", "default", 0.0);
} else if ((type == MSG_INT_SET) && (id == 1)) {
/* border geom / screen size / desk change direction */
new x, y, w, h, sw, sh, mx, my, bx, by;
new Float:fx, Float:fy, Float:ang, Float:len, Float:lmax, Float:rad;
x = getarg(2);
y = getarg(3);
w = getarg(4);
h = getarg(5);
sw = getarg(6);
sh = getarg(7);
custom_state(PART:"mover", "default", 0.0);
mx = sw/2;
my = sh/2;
bx = x+(w/2)-mx;
by = y+(h/2)-my;
if (bx == 0) bx = 1;
if (by == 0) by = 1;
fx = bx/(w/2);
fy = by/(h/2);
ang = atan(fy/fx);
if (fx < 0.0)
ang = PI+ang;
len = sqrt((bx*bx)+(by*by));
lmax = sqrt(((sw/2)*(sw/2))+((sh/2)*(sh/2)));
rad = sqrt((w*w)+(h*h))/2.0;
x = round(cos(ang)*(lmax-len+rad));
y = round(sin(ang)*(lmax-len+rad));
set_state_val(PART:"mover", STATE_REL1_OFFSET, x, y);
set_state_val(PART:"mover", STATE_REL2_OFFSET, x, y);
}
}
}
}
group { name: "e/comp/effects/auto/zoom";
inherit: "e/comp/effects/auto/diagonal";
script {
public message(Msg_Type:type, id, ...) {
if ((type == MSG_INT_SET) && (id == 0)) {
/* set state */
new st;
st = getarg(2);
if (st == 1) {
/* starting from offscreen */
set_state_val(PART:"mover", STATE_REL1, 0.3, 0.3);
set_state_val(PART:"mover", STATE_REL2, 0.7, 0.7);
set_state(PART:"mover", "custom", 0.0);
set_state(PART:"clip", "hidden", 0.0);
} else {
/* starting from normal position */
set_state_val(PART:"mover", STATE_REL1, -1.7, -1.7);
set_state_val(PART:"mover", STATE_REL2, 1.7, 1.7);
set_state(PART:"mover", "default", 0.0);
set_state(PART:"clip", "default", 0.0);
}
} else if ((type == MSG_INT_SET) && (id == 1)) {
/* border geom / screen size / desk change direction */
new x, y, w, h, sw, sh, mx, my, bx, by;
new Float:fx, Float:fy, Float:ang, Float:len, Float:lmax, Float:rad;
x = getarg(2);
y = getarg(3);
w = getarg(4);
h = getarg(5);
sw = getarg(6);
sh = getarg(7);
custom_state(PART:"mover", "default", 0.0);
mx = sw/2;
my = sh/2;
bx = x+(w/2)-mx;
by = y+(h/2)-my;
if (bx == 0) bx = 1;
if (by == 0) by = 1;
fx = bx/(w/2);
fy = by/(h/2);
ang = atan(fy/fx);
if (fx < 0.0)
ang = PI+ang;
len = sqrt((bx*bx)+(by*by));
lmax = sqrt(((sw/2)*(sw/2))+((sh/2)*(sh/2)));
rad = sqrt((w*w)+(h*h))/2.0;
x = round(cos(ang)*(lmax-len+rad));
y = round(sin(ang)*(lmax-len+rad));
set_state_val(PART:"mover", STATE_REL1_OFFSET, x, y);
set_state_val(PART:"mover", STATE_REL2_OFFSET, x, y);
}
}
}
parts {
part { name: "clip"; type: RECT; insert_after: "mover";
description { state: "default";
rel1.to: "mover";
rel2.to: "mover";
color: 255 255 255 255;
}
description { state: "hidden";
rel1.to: "mover";
rel2.to: "mover";
color: 255 255 255 0;
}
}
part { name: "e.swallow.content"; clip_to: "clip";
}
}
programs {
program {
name: "show2";
signal: "e,action,go";
source: "e";
filter: "mover" "default";
action: STATE_SET "hidden" 0.0;
transition: ACCELERATE 0.4 CURRENT;
target: "clip";
}
program {
name: "hide2";
signal: "e,action,go";
source: "e";
filter: "mover" "custom";
action: STATE_SET "default" 0.0;
transition: ACCELERATE 0.4 CURRENT;
target: "clip";
}
}
}
group { name: "e/comp/default";
images.image: "win_shadow.png" COMP;
images.image: "win_glow.png" COMP;

@ -636,6 +636,7 @@ group { name: "modules/illume-softkey/window";
rel2.to_x: "dots_start";
rel2.relative: 1.0 1.0;
align: 0.0 0.5;
fixed: 0 1;
box { layout: "horizontal";
padding: 4 0;
align: 0.0 0.5;
@ -652,6 +653,7 @@ group { name: "modules/illume-softkey/window";
rel2.to_x: "dots_end";
rel2.relative: 0.0 1.0;
align: 1.0 0.5;
fixed: 0 1;
box { layout: "horizontal";
padding: 4 0;
align: 1.0 0.5;

@ -1171,8 +1171,8 @@ _e_border_client_move_resize_send(E_Border *bd)
bd->client_inset.t);
ecore_x_icccm_move_resize_send(bd->client.win,
bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t,
bd->x + bd->client_inset.l,
bd->y + bd->client_inset.t,
bd->client.w,
bd->client.h);
}
@ -1366,24 +1366,6 @@ e_border_center_pos_get(E_Border *bd,
if (y) *y = zy + (zh - bd->h) / 2;
}
EAPI void
e_border_fx_offset(E_Border *bd,
int x,
int y)
{
E_OBJECT_CHECK(bd);
E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
if ((x == bd->fx.x) && (y == bd->fx.y)) return;
bd->fx.x = x;
bd->fx.y = y;
bd->changes.pos = 1;
bd->changed = 1;
if (bd->moving) _e_border_move_update(bd);
}
static void
_e_border_move_resize_internal(E_Border *bd,
int x,
@ -6551,15 +6533,15 @@ _e_border_cb_mouse_down_helper(E_Border *bd, int button, Evas_Point *output, E_B
{
bd->mouse.last_down[button - 1].mx = output->x;
bd->mouse.last_down[button - 1].my = output->y;
bd->mouse.last_down[button - 1].x = bd->x + bd->fx.x;
bd->mouse.last_down[button - 1].y = bd->y + bd->fx.y;
bd->mouse.last_down[button - 1].x = bd->x;
bd->mouse.last_down[button - 1].y = bd->y;
bd->mouse.last_down[button - 1].w = bd->w;
bd->mouse.last_down[button - 1].h = bd->h;
}
else
{
bd->moveinfo.down.x = bd->x + bd->fx.x;
bd->moveinfo.down.y = bd->y + bd->fx.y;
bd->moveinfo.down.x = bd->x;
bd->moveinfo.down.y = bd->y;
bd->moveinfo.down.w = bd->w;
bd->moveinfo.down.h = bd->h;
}
@ -6584,15 +6566,15 @@ _e_border_cb_mouse_down_helper(E_Border *bd, int button, Evas_Point *output, E_B
{
bd->mouse.last_down[button - 1].mx = output->x;
bd->mouse.last_down[button - 1].my = output->y;
bd->mouse.last_down[button - 1].x = bd->x + bd->fx.x;
bd->mouse.last_down[button - 1].y = bd->y + bd->fx.y;
bd->mouse.last_down[button - 1].x = bd->x;
bd->mouse.last_down[button - 1].y = bd->y;
bd->mouse.last_down[button - 1].w = bd->w;
bd->mouse.last_down[button - 1].h = bd->h;
}
else
{
bd->moveinfo.down.x = bd->x + bd->fx.x;
bd->moveinfo.down.y = bd->y + bd->fx.y;
bd->moveinfo.down.x = bd->x;
bd->moveinfo.down.y = bd->y;
bd->moveinfo.down.w = bd->w;
bd->moveinfo.down.h = bd->h;
}
@ -6649,8 +6631,8 @@ _e_border_cb_mouse_up_helper(E_Border *bd, int button, Evas_Point *output, E_Bin
{
bd->mouse.last_up[button - 1].mx = output->x;
bd->mouse.last_up[button - 1].my = output->y;
bd->mouse.last_up[button - 1].x = bd->x + bd->fx.x;
bd->mouse.last_up[button - 1].y = bd->y + bd->fx.y;
bd->mouse.last_up[button - 1].x = bd->x;
bd->mouse.last_up[button - 1].y = bd->y;
}
bd->mouse.current.mx = output->x;
bd->mouse.current.my = output->y;
@ -6674,8 +6656,8 @@ _e_border_cb_mouse_up_helper(E_Border *bd, int button, Evas_Point *output, E_Bin
{
bd->mouse.last_up[button - 1].mx = output->x;
bd->mouse.last_up[button - 1].my = output->y;
bd->mouse.last_up[button - 1].x = bd->x + bd->fx.x;
bd->mouse.last_up[button - 1].y = bd->y + bd->fx.y;
bd->mouse.last_up[button - 1].x = bd->x;
bd->mouse.last_up[button - 1].y = bd->y;
}
bd->drag.start = 0;
@ -7000,11 +6982,9 @@ _e_border_post_move_resize_job(void *data)
ecore_x_window_move(tmp->win,
bd->x +
bd->client_inset.l +
bd->fx.x +
tmp->client.e.state.video_position.x,
bd->y +
bd->client_inset.t +
bd->fx.y +
tmp->client.e.state.video_position.y);
}
if (bd->client.e.state.video)
@ -7015,24 +6995,22 @@ _e_border_post_move_resize_job(void *data)
ecore_x_window_move(bd->win,
parent->x +
parent->client_inset.l +
parent->fx.x +
bd->client.e.state.video_position.x,
parent->y +
parent->client_inset.t +
parent->fx.y +
bd->client.e.state.video_position.y);
}
else if ((bd->post_move) && (bd->post_resize))
{
ecore_x_window_move_resize(bd->win,
bd->x + bd->fx.x + bd->client_inset.l,
bd->y + bd->fx.y + bd->client_inset.t,
bd->x + bd->client_inset.l,
bd->y + bd->client_inset.t,
bd->w - (bd->client_inset.l + bd->client_inset.r),
bd->h - (bd->client_inset.t + bd->client_inset.b));
}
else if (bd->post_move)
{
ecore_x_window_move(bd->win, bd->x + bd->fx.x + bd->client_inset.l, bd->y + bd->fx.y + bd->client_inset.t);
ecore_x_window_move(bd->win, bd->x + bd->client_inset.l, bd->y + bd->client_inset.t);
}
else if (bd->post_resize)
{
@ -7047,11 +7025,9 @@ _e_border_post_move_resize_job(void *data)
bd->win,
bd->client.e.state.video_parent_border->x +
bd->client.e.state.video_parent_border->client_inset.l +
bd->client.e.state.video_parent_border->fx.x +
bd->client.e.state.video_position.x,
bd->client.e.state.video_parent_border->y +
bd->client.e.state.video_parent_border->client_inset.t +
bd->client.e.state.video_parent_border->fx.y +
bd->client.e.state.video_position.y,
bd->w, bd->h);
}
@ -8691,11 +8667,9 @@ _e_border_eval(E_Border *bd)
ecore_x_window_move(bd->win,
bd->client.e.state.video_parent_border->x +
bd->client.e.state.video_parent_border->client_inset.l +
bd->client.e.state.video_parent_border->fx.x +
bd->client.e.state.video_position.x,
bd->client.e.state.video_parent_border->y +
bd->client.e.state.video_parent_border->client_inset.t +
bd->client.e.state.video_parent_border->fx.y +
bd->client.e.state.video_position.y);
bd->client.e.state.video_position.updated = 0;
}
@ -8713,8 +8687,8 @@ _e_border_eval(E_Border *bd)
EINA_LIST_FOREACH(bd->client.e.state.video_child, l, tmp)
ecore_x_window_move(tmp->win,
bd->x + bd->fx.x + bd->client_inset.l + tmp->client.e.state.video_position.x,
bd->y + bd->fx.y + bd->client_inset.t + tmp->client.e.state.video_position.y);
bd->x + bd->client_inset.l + tmp->client.e.state.video_position.x,
bd->y + bd->client_inset.t + tmp->client.e.state.video_position.y);
}
if ((!bd->shaded) || (bd->shading))
@ -8744,7 +8718,7 @@ _e_border_eval(E_Border *bd)
bd->post_job = ecore_idle_enterer_add(_e_border_post_move_resize_job, bd);
bd->post_move = 1;
e_container_shape_move(bd->shape, bd->x + bd->fx.x + bd->client_inset.l, bd->y + bd->fx.y + bd->client_inset.t);
e_container_shape_move(bd->shape, bd->x + bd->client_inset.l, bd->y + bd->client_inset.t);
_e_border_client_move_resize_send(bd);
@ -8923,8 +8897,8 @@ _e_border_eval(E_Border *bd)
if (bd->cur_mouse_action)
{
bd->moveinfo.down.x = bd->x + bd->fx.x;
bd->moveinfo.down.y = bd->y + bd->fx.y;
bd->moveinfo.down.x = bd->x;
bd->moveinfo.down.y = bd->y;
bd->moveinfo.down.w = bd->w;
bd->moveinfo.down.h = bd->h;
bd->mouse.current.mx = x;

@ -175,16 +175,6 @@ struct _E_Border
E_Zone *zone;
E_Desk *desk;
struct
{
int x, y;
struct
{
int x, y;
double t;
} start;
} fx;
struct
{
int l, r, t, b;
@ -733,7 +723,6 @@ EAPI void e_border_move_intercept_cb_set(E_Border *bd, E_Border_Move_I
EAPI void e_border_move_without_border(E_Border *bd, int x, int y);
EAPI void e_border_center(E_Border *bd);
EAPI void e_border_center_pos_get(E_Border *bd, int *x, int *y);
EAPI void e_border_fx_offset(E_Border *bd, int x, int y);
EAPI void e_border_resize(E_Border *bd, int w, int h);
EAPI void e_border_resize_without_border(E_Border *bd, int w, int h);
EAPI void e_border_move_resize(E_Border *bd, int x, int y, int w, int h);

@ -153,7 +153,7 @@ _e_comp_event_source_configure(E_Comp_Win *cw)
static void
_e_comp_child_show(E_Comp_Win *cw)
{
evas_object_show(cw->shobj);
evas_object_show(cw->effect_obj);
if (cw->bd)
{
Eina_List *l;
@ -166,7 +166,7 @@ _e_comp_child_show(E_Comp_Win *cw)
tcw = eina_hash_find(borders, e_util_winid_str_get(tmp->client.win));
if (!tcw) continue;
evas_object_show(tcw->shobj);
evas_object_show(tcw->effect_obj);
}
}
}
@ -174,7 +174,7 @@ _e_comp_child_show(E_Comp_Win *cw)
static void
_e_comp_child_hide(E_Comp_Win *cw)
{
evas_object_hide(cw->shobj);
evas_object_hide(cw->effect_obj);
if (cw->bd)
{
Eina_List *l;
@ -187,7 +187,7 @@ _e_comp_child_hide(E_Comp_Win *cw)
tcw = eina_hash_find(borders, e_util_winid_str_get(tmp->client.win));
if (!tcw) continue;
evas_object_hide(tcw->shobj);
evas_object_hide(tcw->effect_obj);
}
}
}
@ -413,7 +413,7 @@ _e_comp_win_ready_timeout_setup(E_Comp_Win *cw)
static void
_e_comp_win_layout_populate(E_Comp_Win *cw)
{
e_layout_pack(cw->c->layout, cw->shobj);
e_layout_pack(cw->c->layout, cw->effect_obj);
}
static void
@ -430,13 +430,13 @@ _e_comp_win_restack(E_Comp_Win *cw)
if (cwp)
{
e_layout_child_raise_above(cw->shobj, cwp->shobj);
e_layout_child_raise_above(cw->effect_obj, cwp->effect_obj);
cw->c->wins = eina_inlist_remove(cw->c->wins, EINA_INLIST_GET(cw));
cw->c->wins = eina_inlist_append_relative(cw->c->wins, EINA_INLIST_GET(cw), EINA_INLIST_GET(cwp));
}
else if (cwn)
{
e_layout_child_raise_above(cw->shobj, cwn->shobj);
e_layout_child_raise_above(cw->effect_obj, cwn->effect_obj);
cw->c->wins = eina_inlist_remove(cw->c->wins, EINA_INLIST_GET(cw));
cw->c->wins = eina_inlist_append_relative(cw->c->wins, EINA_INLIST_GET(cw), EINA_INLIST_GET(cwn));
}
@ -450,7 +450,7 @@ _e_comp_win_restack(E_Comp_Win *cw)
tcw = eina_hash_find(borders, e_util_winid_str_get(tmp->client.win));
if (!tcw) continue;
e_layout_child_lower_below(tcw->shobj, cw->shobj);
e_layout_child_lower_below(tcw->effect_obj, cw->effect_obj);
cw->c->wins = eina_inlist_remove(cw->c->wins, EINA_INLIST_GET(tcw));
cw->c->wins = eina_inlist_prepend_relative(cw->c->wins, EINA_INLIST_GET(tcw), EINA_INLIST_GET(cw));
}
@ -483,13 +483,13 @@ _e_comp_win_geometry_update(E_Comp_Win *cw)
w = cw->pw, h = cw->ph;
if (cw->not_in_layout)
{
evas_object_resize(cw->shobj, w, h);
evas_object_move(cw->shobj, x, y);
evas_object_resize(cw->effect_obj, w, h);
evas_object_move(cw->effect_obj, x, y);
}
else
{
e_layout_child_move(cw->shobj, x, y);
e_layout_child_resize(cw->shobj, w, h);
e_layout_child_move(cw->effect_obj, x, y);
e_layout_child_resize(cw->effect_obj, w, h);
}
}
@ -637,9 +637,9 @@ _e_comp_win_update(E_Comp_Win *cw)
return;
}
// evas_object_move(cw->shobj, cw->x, cw->y);
// evas_object_move(cw->effect_obj, cw->x, cw->y);
// was cw->w / cw->h
// evas_object_resize(cw->shobj, cw->pw, cw->ph);
// evas_object_resize(cw->effect_obj, cw->pw, cw->ph);
_e_comp_win_geometry_update(cw);
if ((cw->c->gl) && (conf->texture_from_pixmap) &&
@ -844,7 +844,7 @@ _e_comp_win_update(E_Comp_Win *cw)
if (/*(!cw->update) &&*/ (cw->visible) && (cw->dmg_updates >= 1) &&
(cw->show_ready) && (!cw->bd || cw->bd->visible))
{
if (!evas_object_visible_get(cw->shobj))
if (!evas_object_visible_get(cw->effect_obj))
{
if (!cw->hidden_override)
{
@ -1042,7 +1042,7 @@ _e_comp_cb_nocomp_begin(E_Comp *c)
}
cw = cwf;
INF("NOCOMP win %x shobj %p", cw->win, cw->shobj);
INF("NOCOMP win %x effect_obj %p", cw->win, cw->effect_obj);
_e_comp_win_release(cw);
@ -1123,7 +1123,7 @@ _e_comp_cb_nocomp_end(E_Comp *c)
_e_comp_win_adopt(cw);
INF("restore comp %x --- %p", cw->win, cw->shobj);
INF("restore comp %x --- %p", cw->win, cw->effect_obj);
if (cw->visible)
{
@ -2003,25 +2003,39 @@ _e_comp_win_dummy_add(E_Comp *c, Evas_Object *obj, E_Object *eobj, Eina_Bool nol
if (cw->shape) cw->shape->comp_win = cw;
if (conf->grab) ecore_x_grab();
evas_object_geometry_get(obj, &x, &y, &w, &h);
cw->effect_obj = edje_object_add(c->evas);
e_theme_edje_object_set(cw->effect_obj, "base/theme/comp", "e/comp/effects/none");
cw->shobj = edje_object_add(c->evas);
_e_comp_win_shadow_setup(cw);
edje_object_part_swallow(cw->effect_obj, "e.swallow.content", cw->shobj);
edje_object_signal_callback_add(cw->shobj, "e,action,show,done", "e", _e_comp_show_done, cw);
edje_object_signal_callback_add(cw->shobj, "e,action,hide,done", "e", _e_comp_hide_done, cw);
evas_object_geometry_get(obj, &x, &y, &w, &h);
_e_comp_win_configure(cw, x, y, w, h, 0);
if (!nolayout) _e_comp_win_layout_populate(cw);
if (cw->bd) evas_object_data_set(cw->shobj, "border", cw->bd);
else if (cw->pop)
evas_object_data_set(cw->shobj, "popup", cw->pop);
if (cw->pop)
{
evas_object_data_set(cw->shobj, "popup", cw->pop);
evas_object_data_set(cw->effect_obj, "popup", cw->pop);
evas_object_name_set(cw->shobj, "cw->shobj::POPUP");
evas_object_name_set(cw->effect_obj, "cw->effect_obj::POPUP");
}
else if (cw->menu)
evas_object_data_set(cw->shobj, "menu", cw->menu);
{
evas_object_data_set(cw->shobj, "menu", cw->menu);
evas_object_data_set(cw->effect_obj, "menu", cw->menu);
evas_object_name_set(cw->shobj, "cw->shobj::MENU");
evas_object_name_set(cw->effect_obj, "cw->effect_obj::MENU");
}
cw->pending_count++;
_e_comp_event_source_add(cw);
evas_object_data_set(cw->effect_obj, "comp_win", cw);
evas_object_data_set(cw->shobj, "comp_win", cw);
evas_object_data_set(cw->obj, "comp_win", cw);
@ -2146,6 +2160,8 @@ _e_comp_win_add(E_Comp *c, Ecore_X_Window win, E_Border *bd)
cw->damage = ecore_x_damage_new
(cw->win, ECORE_X_DAMAGE_REPORT_DELTA_RECTANGLES);
eina_hash_add(damages, e_util_winid_str_get(cw->damage), cw);
cw->effect_obj = edje_object_add(c->evas);
e_theme_edje_object_set(cw->effect_obj, "base/theme/comp", "e/comp/effects/none");
cw->shobj = edje_object_add(c->evas);
cw->obj = evas_object_image_filled_add(c->evas);
evas_object_image_colorspace_set(cw->obj, EVAS_COLORSPACE_ARGB8888);
@ -2153,6 +2169,7 @@ _e_comp_win_add(E_Comp *c, Ecore_X_Window win, E_Border *bd)
else evas_object_image_alpha_set(cw->obj, 0);
_e_comp_win_shadow_setup(cw);
edje_object_part_swallow(cw->effect_obj, "e.swallow.content", cw->shobj);
edje_object_signal_callback_add(cw->shobj, "e,action,show,done", "e", _e_comp_show_done, cw);
edje_object_signal_callback_add(cw->shobj, "e,action,hide,done", "e", _e_comp_hide_done, cw);
@ -2179,20 +2196,15 @@ _e_comp_win_add(E_Comp *c, Ecore_X_Window win, E_Border *bd)
if (cw->bd)
{
evas_object_data_set(cw->shobj, "border", cw->bd);
evas_object_data_set(cw->effect_obj, "border", cw->bd);
evas_object_name_set(cw->shobj, "cw->shobj::BORDER");
evas_object_name_set(cw->effect_obj, "cw->effect_obj::BORDER");
}
else if (cw->pop)
{
evas_object_data_set(cw->shobj, "popup", cw->pop);
evas_object_name_set(cw->shobj, "cw->shobj::POPUP");
}
else if (cw->menu)
else
{
evas_object_data_set(cw->shobj, "menu", cw->menu);
evas_object_name_set(cw->shobj, "cw->shobj::MENU");
evas_object_name_set(cw->shobj, "cw->shobj::WINDOW");
evas_object_name_set(cw->effect_obj, "cw->effect_obj::WINDOW");
}
else
evas_object_name_set(cw->shobj, "cw->shobj::WINDOW");
evas_object_name_set(cw->obj, "cw->obj");
@ -2201,13 +2213,13 @@ _e_comp_win_add(E_Comp *c, Ecore_X_Window win, E_Border *bd)
}
else
{
cw->shobj = evas_object_rectangle_add(c->evas);
cw->effect_obj = evas_object_rectangle_add(c->evas);
_e_comp_win_layout_populate(cw);
evas_object_color_set(cw->shobj, 0, 0, 0, 0);
evas_object_color_set(cw->effect_obj, 0, 0, 0, 0);
}
evas_object_data_set(cw->shobj, "win", (void *)((unsigned long)cw->win));
evas_object_data_set(cw->shobj, "comp_win", cw);
if (cw->shobj) evas_object_data_set(cw->shobj, "comp_win", cw);
evas_object_data_set(cw->effect_obj, "comp_win", cw);
c->wins_invalid = 1;
c->wins = eina_inlist_append(c->wins, EINA_INLIST_GET(cw));
@ -2354,16 +2366,9 @@ _e_comp_win_del(E_Comp_Win *cw)
evas_object_event_callback_del_full(cw->obj, EVAS_CALLBACK_FOCUS_IN, _e_comp_injected_win_focus_in_cb, cw);
evas_object_event_callback_del_full(cw->obj, EVAS_CALLBACK_FOCUS_OUT, _e_comp_injected_win_focus_out_cb, cw);
}
if (cw->obj)
{
evas_object_del(cw->obj);
cw->obj = NULL;
}
if (cw->shobj)
{
evas_object_del(cw->shobj);
cw->shobj = NULL;
}
E_FREE_FUNC(cw->obj, evas_object_del);
E_FREE_FUNC(cw->shobj, evas_object_del);
E_FREE_FUNC(cw->effect_obj, evas_object_del);
if (cw->free_shape) E_FREE_FUNC(cw->shape, e_object_del);
@ -2549,6 +2554,7 @@ _e_comp_win_hide(E_Comp_Win *cw)
cw->defer_hide = 0;
cw->force = 0;
_e_comp_child_hide(cw);
edje_object_signal_emit(cw->shobj, "e,state,visible,off", "e");
if (cw->update_timeout)
{
@ -2697,7 +2703,7 @@ _e_comp_win_configure(E_Comp_Win *cw, int x, int y, int w, int h, int border)
DBG(" [0x%x] mov %4i %4i", cw->win, x, y);
cw->x = x;
cw->y = y;
// evas_object_move(cw->shobj, cw->x, cw->y);
// evas_object_move(cw->effect_obj, cw->x, cw->y);
moved = EINA_TRUE;
}
cw->hidden.x = x;
@ -2714,7 +2720,7 @@ _e_comp_win_configure(E_Comp_Win *cw, int x, int y, int w, int h, int border)
cw->h = h;
cw->needpix = 1;
// was cw->w / cw->h
// evas_object_resize(cw->shobj, cw->pw, cw->ph);
// evas_object_resize(cw->effect_obj, cw->pw, cw->ph);
resized = EINA_TRUE;
_e_comp_win_damage(cw, 0, 0, cw->w, cw->h, 0);
#else
@ -2724,7 +2730,7 @@ _e_comp_win_configure(E_Comp_Win *cw, int x, int y, int w, int h, int border)
{
cw->needpix = 1;
// was cw->w / cw->h
// evas_object_resize(cw->shobj, cw->pw, cw->ph);
// evas_object_resize(cw->effect_obj, cw->pw, cw->ph);
resized = EINA_TRUE;
_e_comp_win_damage(cw, 0, 0, cw->w, cw->h, 0);
}
@ -2744,7 +2750,7 @@ _e_comp_win_configure(E_Comp_Win *cw, int x, int y, int w, int h, int border)
cw->border = border;
cw->needpix = 1;
// was cw->w / cw->h
// evas_object_resize(cw->shobj, cw->pw, cw->ph);
// evas_object_resize(cw->effect_obj, cw->pw, cw->ph);
resized = EINA_TRUE;
_e_comp_win_damage(cw, 0, 0, cw->w, cw->h, 0);
}
@ -2759,7 +2765,7 @@ _e_comp_win_configure(E_Comp_Win *cw, int x, int y, int w, int h, int border)
cw->h = h;
cw->needpix = 1;
// was cw->w / cw->h
// evas_object_resize(cw->shobj, cw->pw, cw->ph);
// evas_object_resize(cw->effect_obj, cw->pw, cw->ph);
resized = EINA_TRUE;
if (!cw->real_obj) _e_comp_win_damage(cw, 0, 0, cw->w, cw->h, 0);
}
@ -2767,7 +2773,7 @@ _e_comp_win_configure(E_Comp_Win *cw, int x, int y, int w, int h, int border)
{
cw->border = border;
cw->needpix = 1;
// evas_object_resize(cw->shobj, cw->pw, cw->ph);
// evas_object_resize(cw->effect_obj, cw->pw, cw->ph);
resized = EINA_TRUE;
_e_comp_win_damage(cw, 0, 0, cw->w, cw->h, 0);
}
@ -3076,7 +3082,7 @@ _e_comp_message(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
cw->h = cw->hidden.h;
cw->needpix = 1;
// was cw->w / cw->h
// evas_object_resize(cw->shobj, cw->pw, cw->ph);
// evas_object_resize(cw->effect_obj, cw->pw, cw->ph);
_e_comp_win_geometry_update(cw);
_e_comp_win_damage(cw, 0, 0, cw->w, cw->h, 0);
}
@ -5140,7 +5146,7 @@ e_comp_top_window_at_xy_get(E_Comp *c, Evas_Coord x, Evas_Coord y, Ecore_X_Windo
{
cw = e_comp_win_find(ignore[i]);
if (cw)
ignore_list = eina_list_append(ignore_list, cw->shobj);
ignore_list = eina_list_append(ignore_list, cw->effect_obj);
}
}
o = e_layout_top_child_at_xy_get(c->layout, x, y, ignore_list);
@ -5286,7 +5292,7 @@ e_comp_canvas_layer_set(Evas_Object *obj, E_Comp_Canvas_Layer comp_layer, E_Laye
else
{
cw = e_comp_object_add(c, obj, evas_object_data_get(obj, "eobj"));
evas_object_layer_set(cw->shobj, comp_layer);
evas_object_layer_set(cw->effect_obj, comp_layer);
if (comp_layer > E_COMP_CANVAS_LAYER_LAYOUT)
e_comp_override_add(c);
}
@ -5405,6 +5411,107 @@ e_comp_block_window_del(void)
}
}
EAPI void
e_comp_win_effect_set(E_Comp_Win *cw, const char *effect)
{
char buf[4096];
Eina_Stringshare *grp;
EINA_SAFETY_ON_NULL_RETURN(cw);
EINA_SAFETY_ON_NULL_RETURN(effect);
EINA_SAFETY_ON_TRUE_RETURN(!effect[0]);
if (!cw->shobj) return; //input window
snprintf(buf, sizeof(buf), "e/comp/effects/%s", effect);
edje_object_file_get(cw->effect_obj, NULL, &grp);
if (!e_util_strcmp(buf, grp)) return;
if (!e_theme_edje_object_set(cw->effect_obj, "base/theme/comp", buf))
{
snprintf(buf, sizeof(buf), "e/comp/effects/auto/%s", effect);
if (!e_theme_edje_object_set(cw->effect_obj, "base/theme/comp", buf))
if (!e_theme_edje_object_set(cw->effect_obj, "base/theme/comp", "e/comp/effects/none")) return;
}
if (cw->bd && cw->bd->bg_object)
{
edje_object_part_swallow(cw->bd->bg_object, "e.swallow.client", cw->obj);
edje_object_part_swallow(cw->shobj, "e.swallow.content", cw->bd->bg_object);
}
else
edje_object_part_swallow(cw->shobj, "e.swallow.content", cw->obj);
edje_object_part_swallow(cw->effect_obj, "e.swallow.content", cw->shobj);
if (cw->effect_clip)
{
evas_object_clip_unset(cw->effect_obj);
cw->effect_clip = 0;
}
cw->effect_clip_able = !edje_object_data_get(cw->shobj, "noclip");
}
EAPI void
e_comp_win_effect_params_set(E_Comp_Win *cw, int id, int *params, unsigned int count)
{
Edje_Message_Int_Set *msg;
unsigned int x;
EINA_SAFETY_ON_NULL_RETURN(cw);
EINA_SAFETY_ON_NULL_RETURN(params);
EINA_SAFETY_ON_FALSE_RETURN(count);
msg = alloca(sizeof(Edje_Message_Int_Set) + ((count - 1) * sizeof(int)));
msg->count = (int)count;
for (x = 0; x < count; x++)
msg->val[x] = params[x];
edje_object_message_send(cw->effect_obj, EDJE_MESSAGE_INT_SET, id, msg);
edje_object_message_signal_process(cw->effect_obj);
}
static void
_e_comp_win_effect_end_cb(void *data, Evas_Object *obj, const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
{
edje_object_signal_callback_del(obj, "e,action,done", "e", data);
edje_object_signal_callback_del_full(obj, "e,action,done", "e", _e_comp_win_effect_end_cb, data);
}
EAPI void
e_comp_win_effect_start(E_Comp_Win *cw, Edje_Signal_Cb end_cb, const void *end_data)
{
EINA_SAFETY_ON_NULL_RETURN(cw);
EINA_SAFETY_ON_FALSE_RETURN(cw->bd); //FIXME
edje_object_signal_callback_del(cw->effect_obj, "e,action,done", "e", end_cb);
edje_object_signal_callback_del(cw->effect_obj, "e,action,done", "e", _e_comp_win_effect_end_cb);
if (cw->effect_clip)
{
evas_object_clip_unset(cw->effect_obj);
cw->effect_clip = 0;
}
if (cw->effect_clip_able)
{
if (cw->bd->zone)
{
evas_object_clip_set(cw->effect_obj, cw->bd->zone->bg_clip_object);
cw->effect_clip = 1;
}
}
/* this is a stack, so the callbacks added first will be called last */
edje_object_signal_callback_add(cw->effect_obj, "e,action,done", "e", _e_comp_win_effect_end_cb, end_cb);
edje_object_signal_callback_add(cw->effect_obj, "e,action,done", "e", end_cb, (void*)end_data);
edje_object_signal_emit(cw->effect_obj, "e,action,go", "e");
}
EAPI void
e_comp_win_effect_stop(E_Comp_Win *cw, Edje_Signal_Cb end_cb)
{
EINA_SAFETY_ON_NULL_RETURN(cw);
if (cw->effect_clip)
{
evas_object_clip_unset(cw->effect_obj);
cw->effect_clip = 0;
}
edje_object_signal_emit(cw->effect_obj, "e,action,stop", "e");
edje_object_signal_callback_del(cw->effect_obj, "e,action,done", "e", end_cb);
edje_object_signal_callback_del(cw->effect_obj, "e,action,done", "e", _e_comp_win_effect_end_cb);
}
EAPI unsigned int
e_comp_e_object_layer_get(const E_Object *obj)
{

@ -126,6 +126,7 @@ struct _E_Comp_Win
int depth; // window depth
Evas_Object *obj; // composite object
Evas_Object *shobj; // shadow object
Evas_Object *effect_obj; // effects object
E_Object *eobj; // internal e object
E_Comp_Win *cw_above; // comp win that should always be stacked above this one
Eina_List *stack_below; // list of objects to keep stacked below this one
@ -189,6 +190,9 @@ struct _E_Comp_Win
Eina_Bool free_shape : 1; // container shape needs to be freed
Eina_Bool real_obj : 1; // real object (for dummy comp wins)
Eina_Bool not_in_layout : 1; // object is a dummy not in comp layout
Eina_Bool effect_clip : 1; //effect_obj is clipped
Eina_Bool effect_clip_able : 1; //effect_obj will be clipped for effects
};
struct E_Event_Comp
@ -227,6 +231,11 @@ EAPI void e_comp_zone_update(E_Comp_Zone *cz);
EAPI void e_comp_override_del(E_Comp *c);
EAPI void e_comp_override_add(E_Comp *c);
EAPI void e_comp_win_effect_set(E_Comp_Win *cw, const char *effect);
EAPI void e_comp_win_effect_params_set(E_Comp_Win *cw, int id, int *params, unsigned int count);
EAPI void e_comp_win_effect_start(E_Comp_Win *cw, Edje_Signal_Cb end_cb, const void *end_data);
EAPI void e_comp_win_effect_stop(E_Comp_Win *cw, Edje_Signal_Cb end_cb);
EAPI E_Comp_Win *e_comp_win_find_client_win(Ecore_X_Window win);
EAPI E_Comp_Win *e_comp_win_find(Ecore_X_Window win);
EAPI const Eina_List *e_comp_win_list_get(E_Comp *c);

@ -625,8 +625,8 @@ _e_config_edd_init(Eina_Bool old)
E_CONFIG_VAL(D, T, icon_theme_overrides, UCHAR);
E_CONFIG_VAL(D, T, desk_flip_animate_mode, INT);
E_CONFIG_VAL(D, T, desk_flip_animate_type, STR);
E_CONFIG_VAL(D, T, desk_flip_animate_interpolation, INT);
E_CONFIG_VAL(D, T, desk_flip_animate_time, DOUBLE);
E_CONFIG_VAL(D, T, wallpaper_import_last_dev, STR);
E_CONFIG_VAL(D, T, wallpaper_import_last_path, STR);
@ -1206,6 +1206,21 @@ e_config_load(void)
e_config->pointer_warp_speed = e_config->winlist_warp_speed;
e_config->winlist_warp_speed = 0;
}
CONFIG_VERSION_CHECK(12)
{
CONFIG_VERSION_UPDATE_INFO(12);
switch (e_config->desk_flip_animate_mode)
{
case 1: //pane
e_config->desk_flip_animate_type = eina_stringshare_add("auto/pane");
break;
case 2: //zoom, now known as diagonal
e_config->desk_flip_animate_type = eina_stringshare_add("auto/diagonal");
break;
default:
break;
}
}
}
if (!e_config->remember_internal_fm_windows)
e_config->remember_internal_fm_windows = !!(e_config->remember_internal_windows & E_REMEMBER_INTERNAL_FM_WINS);
@ -2145,6 +2160,7 @@ _e_config_free(E_Config *ecf)
e_config_xkb_layout_free(ecf->xkb.current_layout);
e_config_xkb_layout_free(ecf->xkb.sel_layout);
e_config_xkb_layout_free(ecf->xkb.lock_layout);
eina_stringshare_del(ecf->desk_flip_animate_type);
if (ecf->transition_start) eina_stringshare_del(ecf->transition_start);
if (ecf->transition_desk) eina_stringshare_del(ecf->transition_desk);
if (ecf->transition_change) eina_stringshare_del(ecf->transition_change);

@ -48,7 +48,7 @@ typedef enum
/* increment this whenever a new set of config values are added but the users
* config doesn't need to be wiped - simply new values need to be put in
*/
#define E_CONFIG_FILE_GENERATION 11
#define E_CONFIG_FILE_GENERATION 12
#define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH * 1000000) + E_CONFIG_FILE_GENERATION)
#define E_CONFIG_BINDINGS_VERSION 0 // DO NOT INCREMENT UNLESS YOU WANT TO WIPE ALL BINDINGS!!!!!
@ -265,9 +265,14 @@ struct _E_Config
const char *icon_theme; // GUI
unsigned char icon_theme_overrides; // GUI
/* modes:
* 1-"pane") horizontal or vertical movement to/from next/previous "screen"
* 2-"zoom") 45degree diagonal movement based on border position
*/
int desk_flip_animate_mode; // GUI
/* types based on theme */
Eina_Stringshare *desk_flip_animate_type; // GUI
int desk_flip_animate_interpolation; // GUI
double desk_flip_animate_time; // GUI
const char *wallpaper_import_last_dev; // INTERNAL
const char *wallpaper_import_last_path; // INTERNAL

@ -1825,8 +1825,6 @@ e_configure_option_init(void)
co->info_cb = _e_configure_desk_flip_animate_mode_info_cb;
OPT_ICON("preferences-desktop");
//OPT_ADD(INT, desk_flip_animate_interpolation, _("vdesk"), _("animate"), _("flip")); //NOT USED?
OPT_ADD(DOUBLE, desk_flip_animate_time, _("Desk flip animation length"), _("vdesk"), _("animate"), _("flip"), _("speed"));
OPT_MINMAX_STEP_FMT(0, 5, 0.05, "%1.2f seconds");
OPT_ADD(STR, theme_default_border_style, _("Default window border style"), _("border"), _("theme"));
co->info_cb = _e_configure_border_style_info_cb;

@ -11,12 +11,8 @@ static void _e_desk_event_desk_before_show_free(void *data, void *ev);
static void _e_desk_event_desk_after_show_free(void *data, void *ev);
static void _e_desk_event_desk_deskshow_free(void *data, void *ev);
static void _e_desk_event_desk_name_change_free(void *data, void *ev);
static void _e_desk_show_begin(E_Desk *desk, int mode, int x, int dy);
static void _e_desk_show_end(E_Desk *desk);
static Eina_Bool _e_desk_show_animator(void *data);
static void _e_desk_hide_begin(E_Desk *desk, int mode, int dx, int dy);
static void _e_desk_hide_end(E_Desk *desk);
static Eina_Bool _e_desk_hide_animator(void *data);
static void _e_desk_show_begin(E_Desk *desk, int dx, int dy);
static void _e_desk_hide_begin(E_Desk *desk, int dx, int dy);
#if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8)
static void _e_desk_event_desk_window_profile_change_free(void *data, void *ev);
static void _e_desk_window_profile_change_protocol_set(void);
@ -222,8 +218,6 @@ e_desk_name_update(void)
EAPI void
e_desk_show(E_Desk *desk)
{
E_Border_List *bl;
E_Border *bd;
E_Event_Desk_Show *ev;
E_Event_Desk_Before_Show *eev;
E_Event_Desk_After_Show *eeev;
@ -273,9 +267,7 @@ e_desk_show(E_Desk *desk)
dx = desk->x - desk2->x;
dy = desk->y - desk2->y;
}
if (e_config->desk_flip_animate_mode > 0)
_e_desk_hide_begin(desk2, e_config->desk_flip_animate_mode,
dx, dy);
_e_desk_hide_begin(desk2, dx, dy);
break;
}
}
@ -287,37 +279,17 @@ e_desk_show(E_Desk *desk)
desk->zone->desk_y_current = desk->y;
desk->visible = 1;
msg = alloca(sizeof(Edje_Message_Float_Set) + (4 * sizeof(double)));
msg->count = 5;
msg->val[0] = e_config->desk_flip_animate_time;
msg->val[1] = (double)desk->x;
msg->val[2] = (double)desk->zone->desk_x_count;
msg->val[3] = (double)desk->y;
msg->val[4] = (double)desk->zone->desk_y_count;
edje_object_message_send(desk->zone->bg_object, EDJE_MESSAGE_FLOAT_SET, 0, msg);
msg = alloca(sizeof(Edje_Message_Int_Set) + (3 * sizeof(int)));
msg->count = 4;
</