Luncher: Make transitions such as engage smoother by including the icon spacers in events.

This commit is contained in:
Stephen 'Okra' Houston 2017-04-28 15:15:22 -05:00
parent 89feae2b86
commit b539171077
1 changed files with 19 additions and 12 deletions

View File

@ -1149,28 +1149,31 @@ static void
_bar_icon_scale_message(void *data, Evas_Object *obj EINA_UNUSED, Edje_Message_Type type EINA_UNUSED, int id EINA_UNUSED, void *msg) _bar_icon_scale_message(void *data, Evas_Object *obj EINA_UNUSED, Edje_Message_Type type EINA_UNUSED, int id EINA_UNUSED, void *msg)
{ {
Edje_Message_String_Float_Set *mmsg = msg; Edje_Message_String_Float_Set *mmsg = msg;
Evas_Coord add = 0; Evas_Coord add = 0, w, h;
Icon *ic = data; Icon *ic = data;
double total = 0.0; double total = 0.0;
ic->scale = mmsg->val[0]; ic->scale = mmsg->val[0];
if (ic->scale > 1.0) if (ic->scale > 1.0)
{ {
total = (((double)ic->inst->size * (double)ic->scale) - (double)ic->inst->size); evas_object_geometry_get(ic->o_layout, 0, 0, &w, &h);
add = ceil(total / 2.0);
switch (e_gadget_site_orient_get(e_gadget_site_get(ic->inst->o_main))) switch (e_gadget_site_orient_get(e_gadget_site_get(ic->inst->o_main)))
{ {
case E_GADGET_SITE_ORIENT_VERTICAL: case E_GADGET_SITE_ORIENT_VERTICAL:
evas_object_resize(ic->o_spacerb, ic->inst->size, add); total = (((double)h * (double)ic->scale) - (double)h);
evas_object_size_hint_min_set(ic->o_spacerb, ic->inst->size, add); add = ceil(total / 2.0);
evas_object_resize(ic->o_spacera, ic->inst->size, total - add); evas_object_resize(ic->o_spacerb, w, add);
evas_object_size_hint_min_set(ic->o_spacera, ic->inst->size, total - add); evas_object_size_hint_min_set(ic->o_spacerb, w, add);
evas_object_resize(ic->o_spacera, w, add);
evas_object_size_hint_min_set(ic->o_spacera, w, add);
break; break;
default: default:
evas_object_resize(ic->o_spacerb, add, ic->inst->size); total = (((double)w * (double)ic->scale) - (double)w);
evas_object_size_hint_min_set(ic->o_spacerb, add, ic->inst->size); add = ceil(total / 2.0);
evas_object_resize(ic->o_spacera, add, ic->inst->size); evas_object_resize(ic->o_spacerb, add, h);
evas_object_size_hint_min_set(ic->o_spacera, add, ic->inst->size); evas_object_size_hint_min_set(ic->o_spacerb, add, h);
evas_object_resize(ic->o_spacera, add, h);
evas_object_size_hint_min_set(ic->o_spacera, add, h);
} }
} }
else else
@ -1268,6 +1271,10 @@ _bar_icon_add(Instance *inst, Efreet_Desktop *desktop, E_Client *non_desktop_cli
_bar_icon_mouse_down, ic); _bar_icon_mouse_down, ic);
evas_object_event_callback_add(ic->o_icon, EVAS_CALLBACK_MOUSE_MOVE, evas_object_event_callback_add(ic->o_icon, EVAS_CALLBACK_MOUSE_MOVE,
_bar_icon_mouse_move, ic); _bar_icon_mouse_move, ic);
evas_object_event_callback_add(ic->o_spacera, EVAS_CALLBACK_MOUSE_MOVE,
_bar_icon_mouse_move, ic);
evas_object_event_callback_add(ic->o_spacerb, EVAS_CALLBACK_MOUSE_MOVE,
_bar_icon_mouse_move, ic);
evas_object_event_callback_add(ic->o_icon, EVAS_CALLBACK_MOUSE_IN, evas_object_event_callback_add(ic->o_icon, EVAS_CALLBACK_MOUSE_IN,
_bar_icon_mouse_in, ic); _bar_icon_mouse_in, ic);
evas_object_event_callback_add(ic->o_icon, EVAS_CALLBACK_MOUSE_OUT, evas_object_event_callback_add(ic->o_icon, EVAS_CALLBACK_MOUSE_OUT,