From b53917107736e25dbd6ec9a500df9a91179e8358 Mon Sep 17 00:00:00 2001 From: Stephen 'Okra' Houston Date: Fri, 28 Apr 2017 15:15:22 -0500 Subject: [PATCH] Luncher: Make transitions such as engage smoother by including the icon spacers in events. --- src/modules/luncher/bar.c | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/modules/luncher/bar.c b/src/modules/luncher/bar.c index d0c8f4179..20c082dd2 100644 --- a/src/modules/luncher/bar.c +++ b/src/modules/luncher/bar.c @@ -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) { Edje_Message_String_Float_Set *mmsg = msg; - Evas_Coord add = 0; + Evas_Coord add = 0, w, h; Icon *ic = data; double total = 0.0; ic->scale = mmsg->val[0]; if (ic->scale > 1.0) - { - total = (((double)ic->inst->size * (double)ic->scale) - (double)ic->inst->size); - add = ceil(total / 2.0); + { + evas_object_geometry_get(ic->o_layout, 0, 0, &w, &h); switch (e_gadget_site_orient_get(e_gadget_site_get(ic->inst->o_main))) { case E_GADGET_SITE_ORIENT_VERTICAL: - evas_object_resize(ic->o_spacerb, ic->inst->size, add); - evas_object_size_hint_min_set(ic->o_spacerb, ic->inst->size, add); - evas_object_resize(ic->o_spacera, ic->inst->size, total - add); - evas_object_size_hint_min_set(ic->o_spacera, ic->inst->size, total - add); + total = (((double)h * (double)ic->scale) - (double)h); + add = ceil(total / 2.0); + evas_object_resize(ic->o_spacerb, w, 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; default: - evas_object_resize(ic->o_spacerb, add, ic->inst->size); - evas_object_size_hint_min_set(ic->o_spacerb, add, ic->inst->size); - evas_object_resize(ic->o_spacera, add, ic->inst->size); - evas_object_size_hint_min_set(ic->o_spacera, add, ic->inst->size); + total = (((double)w * (double)ic->scale) - (double)w); + add = ceil(total / 2.0); + evas_object_resize(ic->o_spacerb, add, h); + 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 @@ -1268,6 +1271,10 @@ _bar_icon_add(Instance *inst, Efreet_Desktop *desktop, E_Client *non_desktop_cli _bar_icon_mouse_down, ic); evas_object_event_callback_add(ic->o_icon, EVAS_CALLBACK_MOUSE_MOVE, _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, _bar_icon_mouse_in, ic); evas_object_event_callback_add(ic->o_icon, EVAS_CALLBACK_MOUSE_OUT,