discomfitor pushed a commit to branch devs/discomfitor/comp-border.
commit 4e72521f1db700d2d84bc29aaad68abb10a8b465
Author: Mike Blumenkrantz <[email protected]>
Date: Fri Mar 1 15:21:49 2013 +0000
move all desk transition stuff to edc
---
data/themes/edc/comp.edc | 163 ++++++++++++++++++++++++++-
data/themes/edc/illume.edc | 2 +
src/bin/e_config.c | 6 +-
src/bin/e_desk.c | 98 +++-------------
src/modules/everything/evry_gadget.c | 68 ++++-------
src/modules/illume-home/e_busycover.c | 2 +-
src/modules/illume-home/e_mod_main.c | 2 +-
src/modules/illume-indicator/e_mod_ind_win.c | 2 +-
src/modules/illume-softkey/e_mod_sft_win.c | 4 +-
src/modules/illume2/e_mod_kbd.c | 41 +++++--
src/modules/illume2/e_mod_quickpanel.c | 50 ++++----
src/modules/illume2/policies/illume/policy.c | 13 ++-
src/modules/illume2/policies/tablet/policy.c | 13 ++-
13 files changed, 285 insertions(+), 179 deletions(-)
diff --git a/data/themes/edc/comp.edc b/data/themes/edc/comp.edc
index 7cb8bfc..10ef095 100644
--- a/data/themes/edc/comp.edc
+++ b/data/themes/edc/comp.edc
@@ -250,7 +250,7 @@ group { name: "e/comp/effects/none";
}
}
-group { name: "e/comp/effects/linear";
+group { name: "e/comp/effects/move";
script {
public message(Msg_Type:type, id, ...) {
if ((type == MSG_INT_SET) && (id == 0)) {
@@ -263,11 +263,12 @@ group { name: "e/comp/effects/linear";
else
set_state(PART:"mover", "default", 0.0);
} else if ((type == MSG_INT_SET) && (id == 1)) {
- /* start/end point */
+ /* 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);
@@ -322,8 +323,137 @@ group { name: "e/comp/effects/linear";
}
}
+group { name: "e/comp/effects/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[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/diagonal";
+ inherit: "e/comp/effects/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/zoom";
- inherit: "e/comp/effects/linear";
+ inherit: "e/comp/effects/diagonal";
script {
public message(Msg_Type:type, id, ...) {
if ((type == MSG_INT_SET) && (id == 0)) {
@@ -345,12 +475,35 @@ group { name: "e/comp/effects/zoom";
set_state(PART:"clip", "default", 0.0);
}
} else if ((type == MSG_INT_SET) && (id == 1)) {
- /* start/end point */
- new x, y;
+ /* 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);
}
diff --git a/data/themes/edc/illume.edc b/data/themes/edc/illume.edc
index 7f55025..54d8818 100644
--- a/data/themes/edc/illume.edc
+++ b/data/themes/edc/illume.edc
@@ -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;
diff --git a/src/bin/e_config.c b/src/bin/e_config.c
index 53d46ff..3249bdf 100644
--- a/src/bin/e_config.c
+++ b/src/bin/e_config.c
@@ -1212,8 +1212,10 @@ e_config_load(void)
switch (e_config->desk_flip_animate_mode)
{
case 1: //pane
- case 2: //zoom
- e_config->desk_flip_animate_type =
eina_stringshare_add("linear");
+ e_config->desk_flip_animate_type =
eina_stringshare_add("pane");
+ break;
+ case 2: //zoom, now known as diagonal
+ e_config->desk_flip_animate_type =
eina_stringshare_add("diagonal");
break;
default:
break;
diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c
index 1f19899..7aa6897 100644
--- a/src/bin/e_desk.c
+++ b/src/bin/e_desk.c
@@ -733,6 +733,20 @@ _e_desk_event_desk_window_profile_change_free(void *data
__UNUSED__, void *event
#endif
+static Eina_Bool
+_e_desk_transition_setup(E_Border *bd, int dx, int dy, int state)
+{
+ e_comp_win_effect_set(bd->cw, e_config->desk_flip_animate_type);
+ if (e_config->desk_flip_animate_type)
+ {
+ /* set geoms */
+ e_comp_win_effect_params_set(bd->cw, 1, (int[]){bd->x, bd->y, bd->w,
bd->h, bd->zone->w, bd->zone->h, dx, dy}, 8);
+ e_comp_win_effect_params_set(bd->cw, 0, (int[]){state}, 1);
+ }
+
+ return !!e_config->desk_flip_animate_type;
+}
+
static void
_e_desk_show_end(void *data, Evas_Object *obj EINA_UNUSED, const char
*emission EINA_UNUSED, const char *source EINA_UNUSED)
{
@@ -784,7 +798,6 @@ _e_desk_show_begin(E_Desk *desk, int dx, int dy)
{
E_Border_List *bl;
E_Border *bd;
- int x, y;
if (dx < 0) dx = -1;
if (dx > 0) dx = 1;
@@ -804,51 +817,12 @@ _e_desk_show_begin(E_Desk *desk, int dx, int dy)
}
if ((bd->desk != desk) || (bd->sticky)) continue;
e_border_tmp_input_hidden_push(bd);
- if (e_config->desk_flip_animate_mode == 1)
- {
- /* set start point */
- x = bd->zone->w * (dx * 1.5);
- y = bd->zone->h * (dy * 1.5);
- }
- else if (e_config->desk_flip_animate_mode == 2)
+ if (_e_desk_transition_setup(bd, dx, dy, 1))
{
- int mx, my, bx, by;
- double fx, fy, ang, rad, len, lmax;
-
- mx = (bd->zone->w / 2);
- my = (bd->zone->h / 2);
-
- bx = bd->x + (bd->w / 2) - mx;
- by = bd->y + (bd->h / 2) - my;
- if (bx == 0) bx = 1;
- if (by == 0) by = 1;
- fx = (double)bx / (double)(bd->zone->w / 2);
- fy = (double)by / (double)(bd->zone->h / 2);
- ang = atan(fy / fx);
- if (fx < 0.0)
- ang = M_PI + ang;
- len = sqrt((bx * bx) + (by * by));
- lmax = sqrt(((bd->zone->w / 2) * (bd->zone->w / 2)) +
- ((bd->zone->h / 2) * (bd->zone->h / 2)));
- rad = sqrt((bd->w * bd->w) + (bd->h * bd->h)) / 2.0;
- x = cos(ang) * (lmax - len + rad);
- y = sin(ang) * (lmax - len + rad);
- INF("SHOW %d,%d: %d,%d", bd->x, bd->y, x, y);
- }
- if (e_config->desk_flip_animate_mode &&
e_config->desk_flip_animate_type)
- {
- //e_comp_win_effect_set(bd->cw, e_config->desk_flip_animate_type);
- e_comp_win_effect_set(bd->cw, "zoom");
- /* set start coords */
- e_comp_win_effect_params_set(bd->cw, 1, (int[]){x, y}, 2);
- /* tell it to start at custom state */
- e_comp_win_effect_params_set(bd->cw, 0, (int[]){1}, 1);
e_comp_win_effect_stop(bd->cw, _e_desk_hide_end);
e_comp_win_effect_start(bd->cw, _e_desk_show_end, bd);
desk->animate_count++;
}
- else
- e_comp_win_effect_set(bd->cw, "none");
e_border_comp_hidden_set(bd, EINA_TRUE);
e_border_show(bd);
}
@@ -860,7 +834,6 @@ _e_desk_hide_begin(E_Desk *desk, int dx, int dy)
{
E_Border_List *bl;
E_Border *bd;
- int x, y;
if (dx < 0) dx = -1;
if (dx > 0) dx = 1;
@@ -874,51 +847,12 @@ _e_desk_hide_begin(E_Desk *desk, int dx, int dy)
if ((bd->desk->zone != desk->zone) || (bd->iconic)) continue;
if (bd->moving) continue;
if ((bd->desk != desk) || (bd->sticky)) continue;
- if (e_config->desk_flip_animate_mode == 1)
+ if (_e_desk_transition_setup(bd, -dx, -dy, 0))
{
- /* set end point */
- x = - (bd->zone->w * (dx * 1.5));
- y = - (bd->zone->h * (dy * 1.5));
- }
- else if (e_config->desk_flip_animate_mode == 2)
- {
- int mx, my, bx, by;
- double fx, fy, ang, rad, len, lmax;
-
- mx = (bd->zone->w / 2);
- my = (bd->zone->h / 2);
-
- bx = bd->x + (bd->w / 2) - mx;
- by = bd->y + (bd->h / 2) - my;
- if (bx == 0) bx = 1;
- if (by == 0) by = 1;
- fx = (double)bx / (double)(bd->zone->w / 2);
- fy = (double)by / (double)(bd->zone->h / 2);
- ang = atan(fy / fx);
- if (fx < 0.0)
- ang = M_PI + ang;
- len = sqrt((bx * bx) + (by * by));
- lmax = sqrt(((bd->zone->w / 2) * (bd->zone->w / 2)) +
- ((bd->zone->h / 2) * (bd->zone->h / 2)));
- rad = sqrt((bd->w * bd->w) + (bd->h * bd->h)) / 2.0;
- x = cos(ang) * (lmax - len + rad);
- y = sin(ang) * (lmax - len + rad);
- INF("HIDE %d,%d: %d,%d", bd->x, bd->y, x, y);
- }
- if (e_config->desk_flip_animate_mode &&
e_config->desk_flip_animate_type)
- {
- //e_comp_win_effect_set(bd->cw, e_config->desk_flip_animate_type);
- e_comp_win_effect_set(bd->cw, "zoom");
- /* set end coords */
- e_comp_win_effect_params_set(bd->cw, 1, (int[]){x, y}, 2);
- /* set default state */
- e_comp_win_effect_params_set(bd->cw, 0, (int[]){0}, 1);
e_comp_win_effect_stop(bd->cw, _e_desk_show_end);
e_comp_win_effect_start(bd->cw, _e_desk_hide_end, bd);
desk->animate_count++;
}
- else
- e_comp_win_effect_set(bd->cw, "none");
e_border_comp_hidden_set(bd, EINA_TRUE);
}
e_container_border_list_free(bl);
diff --git a/src/modules/everything/evry_gadget.c
b/src/modules/everything/evry_gadget.c
index 267725b..5ff75ca 100644
--- a/src/modules/everything/evry_gadget.c
+++ b/src/modules/everything/evry_gadget.c
@@ -17,13 +17,13 @@ struct _Instance
int mouse_down;
- Ecore_Animator *hide_animator;
double hide_start;
int hide_x, hide_y;
Eina_List *handlers;
Eina_Bool hidden;
+ Eina_Bool animating;
Eina_Bool illume_mode;
};
@@ -217,7 +217,6 @@ _del_func(void *data, void *obj __UNUSED__)
e_gadcon_locked_set(inst->gcc->gadcon, 0);
- if (inst->hide_animator) ecore_animator_del(inst->hide_animator);
inst->del_fn = NULL;
inst->win = NULL;
edje_object_signal_emit(inst->o_button, "e,state,unfocused", "e");
@@ -229,41 +228,18 @@ _cb_menu_configure(void *data, E_Menu *m __UNUSED__,
E_Menu_Item *mi __UNUSED__)
_conf_dialog(data);
}
-static Eina_Bool
-_hide_animator(void *data)
+static void
+_hide_done(void *data, Evas_Object *obj EINA_UNUSED, const char *s
EINA_UNUSED, const char *ss EINA_UNUSED)
{
Instance *inst = data;
- E_Win *ewin = inst->win->ewin;
- double val;
- int finished = 0;
-
- if (!inst->hide_start)
- inst->hide_start = ecore_loop_time_get();
- val = (ecore_loop_time_get() - inst->hide_start) / 0.4;
- if (val > 0.99) finished = 1;
+ /* go bac to subject selector */
+ evry_selectors_switch(inst->win, -1, 0);
+ evry_selectors_switch(inst->win, -1, 0);
- val = ecore_animator_pos_map(val, ECORE_POS_MAP_DECELERATE, 0.0, 0.0);
-
-#warning FIXME
-/*
- e_border_fx_offset(ewin->border,
- (val * (inst->hide_x * ewin->w)),
- (val * (inst->hide_y * ewin->h)));
-*/
- if (finished)
- {
- /* go bac to subject selector */
- evry_selectors_switch(inst->win, -1, 0);
- evry_selectors_switch(inst->win, -1, 0);
-
- inst->hide_animator = NULL;
- e_border_iconify(ewin->border);
- //e_border_fx_offset(ewin->border, 0, 0);
- return EINA_FALSE;
- }
-
- return EINA_TRUE;
+ e_border_iconify(inst->win->ewin->border);
+ e_comp_win_effect_set(inst->win->ewin->border->cw, "none");
+ inst->animating = 0;
}
static void
@@ -271,9 +247,16 @@ _evry_hide_func(Evry_Window *win, int finished __UNUSED__)
{
Instance *inst = win->data;
- inst->hide_start = 0;
- inst->hide_animator = ecore_animator_add(_hide_animator, inst);
- inst->hidden = EINA_TRUE;
+ e_comp_win_effect_set(inst->win->ewin->border->cw, "pane");
+ /* set geoms */
+ e_comp_win_effect_params_set(inst->win->ewin->border->cw, 1,
+ (int[]){inst->win->ewin->x, inst->win->ewin->y,
+ inst->win->ewin->w, inst->win->ewin->h,
+ inst->win->ewin->border->zone->w,
inst->win->ewin->border->zone->h,
+ inst->hide_x, inst->hide_y}, 8);
+ e_comp_win_effect_params_set(inst->win->ewin->border->cw, 0, (int[]){0}, 1);
+ e_comp_win_effect_start(inst->win->ewin->border->cw, _hide_done, inst);
+ inst->hidden = inst->animating = EINA_TRUE;
}
static Eina_Bool
@@ -290,9 +273,6 @@ _cb_focus_out(void *data, int type __UNUSED__, void *event)
if ((!inst) || (!inst->win))
return ECORE_CALLBACK_PASS_ON;
- if (inst->hide_animator)
- return ECORE_CALLBACK_PASS_ON;
-
if (inst->win->ewin->border != ev->border)
return ECORE_CALLBACK_PASS_ON;
@@ -461,15 +441,11 @@ _button_cb_mouse_down(void *data, Evas *e __UNUSED__,
Evas_Object *obj __UNUSED_
win = inst->win;
bd = win->ewin->border;
- if (inst->hide_animator)
- {
- ecore_animator_del(inst->hide_animator);
- inst->hide_animator = NULL;
- }
-
if (inst->hidden || !bd->focused)
{
- //e_border_fx_offset(bd, 0, 0);
+ if (inst->animating)
+ e_comp_win_effect_stop(bd->cw, NULL);
+ e_comp_win_effect_set(bd->cw, "none");
e_border_uniconify(bd);
e_border_raise(bd);
e_border_focus_set(bd, 1, 1);
diff --git a/src/modules/illume-home/e_busycover.c
b/src/modules/illume-home/e_busycover.c
index 4582576..bd9035c 100644
--- a/src/modules/illume-home/e_busycover.c
+++ b/src/modules/illume-home/e_busycover.c
@@ -24,7 +24,7 @@ e_busycover_new(E_Win *win)
edje_object_part_text_set(cover->o_base, "e.text.title", _("LOADING"));
evas_object_move(cover->o_base, win->x, win->y);
evas_object_resize(cover->o_base, win->w, win->h);
- evas_object_layer_set(cover->o_base, 999); //FIXME: COMP
+ evas_object_layer_set(cover->o_base, 999);
return cover;
}
diff --git a/src/modules/illume-home/e_mod_main.c
b/src/modules/illume-home/e_mod_main.c
index c5468df..f5f24d9 100644
--- a/src/modules/illume-home/e_mod_main.c
+++ b/src/modules/illume-home/e_mod_main.c
@@ -594,7 +594,7 @@ _il_home_cb_border_add(void *data __UNUSED__, int type
__UNUSED__, void *event)
exe->border->x = exe->zone->x;
exe->border->y = exe->zone->y;
exe->border->changes.pos = 1;
- exe->border->changed = 1;
+ BD_CHANGED(exe->border);
}
if (exe->handle)
{
diff --git a/src/modules/illume-indicator/e_mod_ind_win.c
b/src/modules/illume-indicator/e_mod_ind_win.c
index 2f0ef88..c46c724 100644
--- a/src/modules/illume-indicator/e_mod_ind_win.c
+++ b/src/modules/illume-indicator/e_mod_ind_win.c
@@ -419,7 +419,7 @@ _e_mod_ind_win_cb_mouse_move(void *data, Evas *evas
__UNUSED__, Evas_Object *obj
{
bd->y = ny;
bd->changes.pos = 1;
- bd->changed = 1;
+ BD_CHANGED(bd);
e_win_move(iwin->win, iwin->win->x, ny);
}
}
diff --git a/src/modules/illume-softkey/e_mod_sft_win.c
b/src/modules/illume-softkey/e_mod_sft_win.c
index 6920fcb..04de4f7 100644
--- a/src/modules/illume-softkey/e_mod_sft_win.c
+++ b/src/modules/illume-softkey/e_mod_sft_win.c
@@ -87,7 +87,9 @@ e_mod_sft_win_new(E_Zone *zone)
_e_mod_sft_win_create_extra_buttons(swin);
edje_object_size_min_calc(swin->o_base, &mw, &mh);
-
+ e_util_size_debug_set(swin->o_base, 1);
+
+ mh = E_CLAMP(mh, 10, zone->h / 3);
/* set minimum size of this window */
e_win_size_min_set(swin->win, zone->w, mh);
diff --git a/src/modules/illume2/e_mod_kbd.c b/src/modules/illume2/e_mod_kbd.c
index 8791f45..971bb68 100644
--- a/src/modules/illume2/e_mod_kbd.c
+++ b/src/modules/illume2/e_mod_kbd.c
@@ -154,7 +154,10 @@ e_mod_kbd_show(void)
/* show the border */
if (_e_illume_kbd->border)
{
- e_border_fx_offset(_e_illume_kbd->border, 0, 0);
+ e_comp_win_effect_set(_e_illume_kbd->border->cw, "move");
+ /* unuse location */
+ e_comp_win_effect_params_set(_e_illume_kbd->border->cw, 0,
(int[]){0}, 1);
+ e_comp_win_effect_start(_e_illume_kbd->border->cw, NULL, NULL);
if (!_e_illume_kbd->border->visible)
e_border_show(_e_illume_kbd->border);
e_border_raise(_e_illume_kbd->border);
@@ -322,12 +325,12 @@ _e_mod_kbd_cb_border_focus_out(void *data __UNUSED__, int
type __UNUSED__, void
e_mod_kbd_hide();
/* tell the focused border it changed so layout gets udpated */
- if (_prev_focused_border)
+ if (_prev_focused_border &&
(!e_object_is_del(E_OBJECT(_prev_focused_border))))
{
if (!e_illume_border_is_conformant(_prev_focused_border))
{
_prev_focused_border->changes.size = 1;
- _prev_focused_border->changed = 1;
+ BD_CHANGED(_prev_focused_border);
}
}
@@ -461,8 +464,12 @@ _e_mod_kbd_hide(void)
{
if (_e_illume_kbd->border)
{
- e_border_fx_offset(_e_illume_kbd->border, 0,
- _e_illume_kbd->border->h);
+ e_comp_win_effect_set(_e_illume_kbd->border->cw, "move");
+ /* set location */
+ e_comp_win_effect_params_set(_e_illume_kbd->border->cw, 1,
(int[]){0, _e_illume_kbd->border->h}, 2);
+ /* use location */
+ e_comp_win_effect_params_set(_e_illume_kbd->border->cw, 0,
(int[]){1}, 1);
+ e_comp_win_effect_start(_e_illume_kbd->border->cw, NULL, NULL);
e_border_hide(_e_illume_kbd->border, 2);
}
}
@@ -511,9 +518,16 @@ _e_mod_kbd_cb_animate(void *data __UNUSED__)
_e_illume_kbd->adjust = ((_e_illume_kbd->adjust_end * v) +
(_e_illume_kbd->adjust_start * (1.0 - v)));
- if (_e_illume_kbd->border)
- e_border_fx_offset(_e_illume_kbd->border, 0,
- (_e_illume_kbd->border->h - _e_illume_kbd->adjust));
+ if (_e_illume_kbd->border && _e_illume_kbd->border->cw)
+ {
+ e_comp_win_effect_set(_e_illume_kbd->border->cw, "move");
+ /* set location */
+ e_comp_win_effect_params_set(_e_illume_kbd->border->cw, 1,
+ (int[]){0, _e_illume_kbd->border->h - _e_illume_kbd->adjust}, 2);
+ /* use location */
+ e_comp_win_effect_params_set(_e_illume_kbd->border->cw, 0, (int[]){1},
1);
+ e_comp_win_effect_start(_e_illume_kbd->border->cw, NULL, NULL);
+ }
if (t == _e_illume_kbd->len)
{
@@ -563,7 +577,12 @@ _e_mod_kbd_border_adopt(E_Border *bd)
if (!_e_illume_kbd->visible)
{
- e_border_fx_offset(bd, 0, bd->h);
+ e_comp_win_effect_set(bd->cw, "move");
+ /* set location */
+ e_comp_win_effect_params_set(bd->cw, 1, (int[]){0, bd->h}, 2);
+ /* use location */
+ e_comp_win_effect_params_set(bd->cw, 0, (int[]){1}, 1);
+ e_comp_win_effect_start(bd->cw, NULL, NULL);
_e_mod_kbd_layout_send();
}
}
@@ -656,7 +675,7 @@ _e_mod_kbd_changes_send(void)
if (!e_illume_border_is_conformant(_prev_focused_border))
{
_prev_focused_border->changes.size = 1;
- _prev_focused_border->changed = 1;
+ BD_CHANGED(_prev_focused_border);
}
}
}
@@ -669,7 +688,7 @@ _e_mod_kbd_changes_send(void)
if (!e_illume_border_is_conformant(_focused_border))
{
_focused_border->changes.size = 1;
- _focused_border->changed = 1;
+ BD_CHANGED(_focused_border);
}
}
}
diff --git a/src/modules/illume2/e_mod_quickpanel.c
b/src/modules/illume2/e_mod_quickpanel.c
index 0458eab..6f129c4 100644
--- a/src/modules/illume2/e_mod_quickpanel.c
+++ b/src/modules/illume2/e_mod_quickpanel.c
@@ -135,16 +135,15 @@ e_mod_quickpanel_show(E_Illume_Quickpanel *qp)
EINA_LIST_FOREACH(qp->borders, l, bd)
{
if (!bd->visible) e_illume_border_show(bd);
- if (qp->vert.dir == 0)
- {
- e_border_fx_offset(bd, 0, ny);
- ny += bd->h;
- }
- else
- {
- ny -= bd->h;
- e_border_fx_offset(bd, 0, ny);
- }
+
+ if (qp->vert.dir) ny -= bd->h;
+ e_comp_win_effect_set(bd->cw, "move");
+ /* set location */
+ e_comp_win_effect_params_set(bd->cw, 1, (int[]){0, ny}, 2);
+ /* use location */
+ e_comp_win_effect_params_set(bd->cw, 0, (int[]){1}, 1);
+ e_comp_win_effect_start(bd->cw, NULL, NULL);
+ if (qp->vert.dir == 0) ny += bd->h;
}
qp->visible = 1;
_e_mod_quickpanel_clickwin_show(qp);
@@ -458,7 +457,10 @@ _e_mod_quickpanel_hide(E_Illume_Quickpanel *qp)
/* if we are not animating, hide the qp borders */
EINA_LIST_REVERSE_FOREACH(qp->borders, l, bd)
{
- e_border_fx_offset(bd, 0, 0);
+ e_comp_win_effect_set(bd->cw, "move");
+ /* unuse location */
+ e_comp_win_effect_params_set(bd->cw, 0, (int[]){0}, 1);
+ e_comp_win_effect_start(bd->cw, NULL, NULL);
if (bd->visible) e_illume_border_hide(bd);
}
qp->visible = 0;
@@ -543,20 +545,25 @@ _e_mod_quickpanel_animate_down(E_Illume_Quickpanel *qp)
{
/* don't adjust borders that are being deleted */
if (e_object_is_del(E_OBJECT(bd))) continue;
- if (bd->fx.y != (qp->vert.adjust + pbh))
- e_border_fx_offset(bd, 0, (qp->vert.adjust + pbh));
+ e_comp_win_effect_set(bd->cw, "move");
+ /* set location */
+ e_comp_win_effect_params_set(bd->cw, 1,
+ (int[]){0, qp->vert.adjust + pbh}, 2);
+ /* use location */
+ e_comp_win_effect_params_set(bd->cw, 0, (int[]){1}, 1);
+ e_comp_win_effect_start(bd->cw, NULL, NULL);
pbh += bd->h;
if (!qp->visible)
{
- if (bd->fx.y > 0)
+ if (qp->vert.adjust + pbh > 0)
{
if (!bd->visible) e_illume_border_show(bd);
}
}
else
{
- if (bd->fx.y <= 10)
+ if (qp->vert.adjust + pbh <= 10)
{
if (bd->visible) e_illume_border_hide(bd);
}
@@ -578,19 +585,24 @@ _e_mod_quickpanel_animate_up(E_Illume_Quickpanel *qp)
/* don't adjust borders that are being deleted */
if (e_object_is_del(E_OBJECT(bd))) continue;
pbh -= bd->h;
- if (bd->fx.y != (qp->vert.adjust + pbh))
- e_border_fx_offset(bd, 0, (qp->vert.adjust + pbh));
+ e_comp_win_effect_set(bd->cw, "move");
+ /* set location */
+ e_comp_win_effect_params_set(bd->cw, 1,
+ (int[]){0, qp->vert.adjust + pbh}, 2);
+ /* use location */
+ e_comp_win_effect_params_set(bd->cw, 0, (int[]){1}, 1);
+ e_comp_win_effect_start(bd->cw, NULL, NULL);
if (!qp->visible)
{
- if (bd->fx.y < 0)
+ if (qp->vert.adjust + pbh < 0)
{
if (!bd->visible) e_illume_border_show(bd);
}
}
else
{
- if (bd->fx.y >= -10)
+ if (qp->vert.adjust + pbh >= -10)
{
if (bd->visible) e_illume_border_hide(bd);
}
diff --git a/src/modules/illume2/policies/illume/policy.c
b/src/modules/illume2/policies/illume/policy.c
index f3d4a68..5e619a2 100644
--- a/src/modules/illume2/policies/illume/policy.c
+++ b/src/modules/illume2/policies/illume/policy.c
@@ -107,7 +107,7 @@ _policy_border_move(E_Border *bd, int x, int y)
bd->x = x;
bd->y = y;
bd->changes.pos = 1;
- bd->changed = 1;
+ BD_CHANGED(bd);
}
static void
@@ -120,7 +120,7 @@ _policy_border_resize(E_Border *bd, int w, int h)
bd->client.w = (bd->w - (bd->client_inset.l + bd->client_inset.r));
bd->client.h = (bd->h - (bd->client_inset.t + bd->client_inset.b));
bd->changes.size = 1;
- bd->changed = 1;
+ BD_CHANGED(bd);
}
static void
@@ -305,12 +305,13 @@ _policy_zone_layout_update(E_Zone *zone)
if (bd->zone != zone) continue;
/* skip special windows */
+ if (e_object_is_del(E_OBJECT(bd))) continue;
if (e_illume_border_is_keyboard(bd)) continue;
if (e_illume_border_is_quickpanel(bd)) continue;
/* signal a changed pos here so layout gets updated */
bd->changes.pos = 1;
- bd->changed = 1;
+ BD_CHANGED(bd);
}
}
@@ -1513,7 +1514,7 @@ _policy_zone_move_resize(E_Zone *zone)
/* signal a changed pos here so layout gets updated */
bd->changes.pos = 1;
- bd->changed = 1;
+ BD_CHANGED(bd);
}
}
@@ -1882,7 +1883,9 @@ _policy_property_change(Ecore_X_Event_Window_Property
*event)
/* adjust for keyboard visibility because keyboard uses fx_offset */
y = 0;
- if (kbd->border->fx.y <= 0) y = kbd->border->y;
+ if (kbd->border->cw &&
+
(!e_util_strcmp(edje_object_part_state_get(kbd->border->cw->effect_obj,
"mover", NULL), "custom")))
+ y = kbd->border->y;
/* look for conformant borders */
EINA_LIST_FOREACH(e_border_client_list(), l, bd)
diff --git a/src/modules/illume2/policies/tablet/policy.c
b/src/modules/illume2/policies/tablet/policy.c
index 7a68240..935c540 100644
--- a/src/modules/illume2/policies/tablet/policy.c
+++ b/src/modules/illume2/policies/tablet/policy.c
@@ -89,7 +89,7 @@ _policy_border_move(E_Border *bd, int x, int y)
bd->x = x;
bd->y = y;
bd->changes.pos = 1;
- bd->changed = 1;
+ BD_CHANGED(bd);
}
static void
@@ -102,7 +102,7 @@ _policy_border_resize(E_Border *bd, int w, int h)
bd->client.w = (bd->w - (bd->client_inset.l + bd->client_inset.r));
bd->client.h = (bd->h - (bd->client_inset.t + bd->client_inset.b));
bd->changes.size = 1;
- bd->changed = 1;
+ BD_CHANGED(bd);
}
static void
@@ -259,12 +259,13 @@ _policy_zone_layout_update(E_Zone *zone)
if (bd->zone != zone) continue;
/* skip special windows */
+ if (e_object_is_del(E_OBJECT(bd))) continue;
if (e_illume_border_is_keyboard(bd)) continue;
if (e_illume_border_is_quickpanel(bd)) continue;
/* signal a changed pos here so layout gets updated */
bd->changes.pos = 1;
- bd->changed = 1;
+ BD_CHANGED(bd);
}
}
@@ -1165,7 +1166,7 @@ _policy_zone_move_resize(E_Zone *zone)
if (bd->zone != zone) continue;
bd->changes.pos = 1;
- bd->changed = 1;
+ BD_CHANGED(bd);
}
}
@@ -1497,7 +1498,9 @@ _policy_property_change(Ecore_X_Event_Window_Property
*event)
/* adjust Y for keyboard visibility because keyboard uses fx_offset */
y = 0;
- if (kbd->border->fx.y <= 0) y = kbd->border->y;
+ if (kbd->border->cw &&
+
(!e_util_strcmp(edje_object_part_state_get(kbd->border->cw->effect_obj,
"mover", NULL), "custom")))
+ y = kbd->border->y;
/* look for conformant borders */
EINA_LIST_FOREACH(e_border_client_list(), l, bd)
--
------------------------------------------------------------------------------
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the
endpoint security space. For insight on selecting the right partner to
tackle endpoint security challenges, access the full report.
http://p.sf.net/sfu/symantec-dev2dev