ctxpopup should not blindly show arrows when they are not wanted by the theme

@fix
This commit is contained in:
zmike 2014-04-28 11:00:54 -04:00
parent e585ffb4d7
commit 5757574678
1 changed files with 22 additions and 12 deletions

View File

@ -392,10 +392,13 @@ _arrow_update(Evas_Object *obj,
{ {
case ELM_CTXPOPUP_DIRECTION_RIGHT: case ELM_CTXPOPUP_DIRECTION_RIGHT:
edje_object_signal_emit(sd->arrow, "elm,state,left", "elm"); edje_object_signal_emit(sd->arrow, "elm,state,left", "elm");
edje_object_part_swallow if (!edje_object_part_swallow(wd->resize_obj,
(wd->resize_obj,
(elm_widget_mirrored_get(obj) ? "elm.swallow.arrow_right" : (elm_widget_mirrored_get(obj) ? "elm.swallow.arrow_right" :
"elm.swallow.arrow_left"), sd->arrow); "elm.swallow.arrow_left"), sd->arrow))
{
evas_object_hide(sd->arrow);
break;
}
if (base_size.h > 0) if (base_size.h > 0)
{ {
@ -415,10 +418,13 @@ _arrow_update(Evas_Object *obj,
case ELM_CTXPOPUP_DIRECTION_LEFT: case ELM_CTXPOPUP_DIRECTION_LEFT:
edje_object_signal_emit(sd->arrow, "elm,state,right", "elm"); edje_object_signal_emit(sd->arrow, "elm,state,right", "elm");
edje_object_part_swallow if (!edje_object_part_swallow(wd->resize_obj,
(wd->resize_obj,
(elm_widget_mirrored_get(obj) ? "elm.swallow.arrow_left" : (elm_widget_mirrored_get(obj) ? "elm.swallow.arrow_left" :
"elm.swallow.arrow_right"), sd->arrow); "elm.swallow.arrow_right"), sd->arrow))
{
evas_object_hide(sd->arrow);
break;
}
if (base_size.h > 0) if (base_size.h > 0)
{ {
@ -438,9 +444,11 @@ _arrow_update(Evas_Object *obj,
case ELM_CTXPOPUP_DIRECTION_DOWN: case ELM_CTXPOPUP_DIRECTION_DOWN:
edje_object_signal_emit(sd->arrow, "elm,state,top", "elm"); edje_object_signal_emit(sd->arrow, "elm,state,top", "elm");
edje_object_part_swallow if (!edje_object_part_swallow(wd->resize_obj, "elm.swallow.arrow_up", sd->arrow))
(wd->resize_obj, "elm.swallow.arrow_up", {
sd->arrow); evas_object_hide(sd->arrow);
break;
}
if (base_size.w > 0) if (base_size.w > 0)
{ {
@ -459,9 +467,11 @@ _arrow_update(Evas_Object *obj,
case ELM_CTXPOPUP_DIRECTION_UP: case ELM_CTXPOPUP_DIRECTION_UP:
edje_object_signal_emit(sd->arrow, "elm,state,bottom", "elm"); edje_object_signal_emit(sd->arrow, "elm,state,bottom", "elm");
edje_object_part_swallow if (!edje_object_part_swallow(wd->resize_obj, "elm.swallow.arrow_down", sd->arrow))
(wd->resize_obj, "elm.swallow.arrow_down", {
sd->arrow); evas_object_hide(sd->arrow);
break;
}
if (base_size.w > 0) if (base_size.w > 0)
{ {