discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=6b2a9a0f7baae7e4fca30c7235d42498586df52b

commit 6b2a9a0f7baae7e4fca30c7235d42498586df52b
Author: Mike Blumenkrantz <zm...@osg.samsung.com>
Date:   Fri Aug 18 15:52:52 2017 -0400

    set gadget ctxpopup priority based on anchor
    
    fix T5877
---
 src/bin/e_gadget.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c
index f6fca87e3..37b23ebd4 100644
--- a/src/bin/e_gadget.c
+++ b/src/bin/e_gadget.c
@@ -2037,6 +2037,7 @@ e_gadget_util_ctxpopup_place(Evas_Object *g, Evas_Object 
*ctx, Evas_Object *pos_
    E_Layer layer;
    E_Gadget_Config *zgc;
    Evas_Object *content;
+   Elm_Ctxpopup_Direction first, second;
 
    EINA_SAFETY_ON_NULL_RETURN(g);
    zgc = evas_object_data_get(g, "__e_gadget");
@@ -2055,12 +2056,18 @@ e_gadget_util_ctxpopup_place(Evas_Object *g, 
Evas_Object *ctx, Evas_Object *pos_
    if (zgc->site->orient == E_GADGET_SITE_ORIENT_HORIZONTAL)
      {
         x += w / 2;
-        elm_ctxpopup_direction_priority_set(ctx, ELM_CTXPOPUP_DIRECTION_UP, 
ELM_CTXPOPUP_DIRECTION_DOWN, 0, 0);
+        first = ELM_CTXPOPUP_DIRECTION_UP, second = 
ELM_CTXPOPUP_DIRECTION_DOWN;
+        if (zgc->site->anchor & E_GADGET_SITE_ANCHOR_TOP)
+          first = ELM_CTXPOPUP_DIRECTION_DOWN, second = 
ELM_CTXPOPUP_DIRECTION_UP;
+        elm_ctxpopup_direction_priority_set(ctx, first, second, 0, 0);
      }
    else if (zgc->site->orient == E_GADGET_SITE_ORIENT_VERTICAL)
      {
         y += h / 2;
-        elm_ctxpopup_direction_priority_set(ctx, ELM_CTXPOPUP_DIRECTION_RIGHT, 
ELM_CTXPOPUP_DIRECTION_LEFT, 0, 0);
+        first = ELM_CTXPOPUP_DIRECTION_LEFT, second = 
ELM_CTXPOPUP_DIRECTION_RIGHT;
+        if (zgc->site->anchor & E_GADGET_SITE_ANCHOR_LEFT)
+          first = ELM_CTXPOPUP_DIRECTION_RIGHT, second = 
ELM_CTXPOPUP_DIRECTION_LEFT;
+        elm_ctxpopup_direction_priority_set(ctx, first, second, 0, 0);
      }
    evas_object_move(ctx, x, y);
    evas_object_event_callback_add(ctx, EVAS_CALLBACK_SHOW, 
_gadget_util_ctxpopup_visibility, NULL);

-- 


Reply via email to