diff options
Diffstat (limited to 'src/modules/ibar/e_mod_main.c')
-rw-r--r-- | src/modules/ibar/e_mod_main.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c index 88d6dae246..2efde053d2 100644 --- a/src/modules/ibar/e_mod_main.c +++ b/src/modules/ibar/e_mod_main.c @@ -1948,10 +1948,22 @@ _ibar_cb_icon_move(void *data, Evas *e, Evas_Object *obj, void *event_info EINA_ if (!zone) zone = eina_list_data_get(e_comp->zones); } - if (chx - (len / 2) < zone->x) + if ((ic->ibar->inst->orient == E_GADCON_ORIENT_LEFT) || + (ic->ibar->inst->orient == E_GADCON_ORIENT_CORNER_LT) || + (ic->ibar->inst->orient == E_GADCON_ORIENT_CORNER_LB)) sig = "e,origin,left"; - else if ((chx + (len / 2) > cw) || ((chx + (len / 2) > zone->x + zone->w))) + else if ((ic->ibar->inst->orient == E_GADCON_ORIENT_RIGHT) || + (ic->ibar->inst->orient == E_GADCON_ORIENT_CORNER_RT) || + (ic->ibar->inst->orient == E_GADCON_ORIENT_CORNER_RB)) sig = "e,origin,right"; + else + { + if (chx - (len / 2) < zone->x) + sig = "e,origin,left"; + else if ((chx + (len / 2) > cw) || ((chx + (len / 2) > zone->x + zone->w))) + sig = "e,origin,right"; + } + printf("EMIT: %p %s\n", ic, sig); _ibar_icon_signal_emit(ic, sig, "e"); } |