hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=24bcf041ba5e431d996e473c9b880aed51bace5e

commit 24bcf041ba5e431d996e473c9b880aed51bace5e
Author: ChunEon Park <[email protected]>
Date:   Fri Feb 20 21:54:25 2015 +0900

    bin/live_edit: fix wrong ctxpopup position.
    
    in case of short-cut key usage,
    ctxpopup was appeared wrongly.
    now it's placed according to the live edit buton.
---
 src/bin/live_edit.c     | 11 ++++++-----
 src/bin/main.c          | 14 +++++++++++---
 src/bin/tools.c         |  9 ++++++++-
 src/include/live_edit.h |  2 +-
 src/include/tools.h     |  2 +-
 5 files changed, 27 insertions(+), 11 deletions(-)

diff --git a/src/bin/live_edit.c b/src/bin/live_edit.c
index 992ee06..310a6e7 100644
--- a/src/bin/live_edit.c
+++ b/src/bin/live_edit.c
@@ -16,6 +16,7 @@ typedef struct live_editor_s
    Evas_Object *ctxpopup;
    Evas_Object *layout;
    Evas_Object *enventor;
+   Evas_Object *trigger;
 
    struct {
       unsigned int type;
@@ -280,10 +281,9 @@ ctxpopup_create(Evas_Object *parent, live_data *ld)
 
    evas_object_smart_callback_add(ctxpopup, "dismissed", ctxpopup_dismissed_cb,
                                   ld);
-   Evas_Coord x, y;
-   evas_pointer_output_xy_get(evas_object_evas_get(parent), &x, NULL);
-   evas_object_geometry_get(parent, NULL, &y, NULL, NULL);
-   evas_object_move(ctxpopup, x, y);
+   Evas_Coord x, y, w, h;
+   evas_object_geometry_get(ld->trigger, &x, &y, &w, &h);
+   evas_object_move(ctxpopup, (x + (w/2)), (y + h));
    evas_object_show(ctxpopup);
 
    return ctxpopup;
@@ -328,7 +328,7 @@ live_edit_cancel(void)
 }
 
 void
-live_edit_init(Evas_Object *enventor)
+live_edit_init(Evas_Object *enventor, Evas_Object *trigger)
 {
    live_data *ld = calloc(1, sizeof(live_data));
    if (!ld)
@@ -338,6 +338,7 @@ live_edit_init(Evas_Object *enventor)
      }
    g_ld = ld;
    ld->enventor = enventor;
+   ld->trigger = trigger;
 }
 
 void
diff --git a/src/bin/main.c b/src/bin/main.c
index de7d4fc..c15bb71 100644
--- a/src/bin/main.c
+++ b/src/bin/main.c
@@ -272,11 +272,12 @@ main_mouse_wheel_cb(void *data, int type EINA_UNUSED, 
void *ev)
    return ECORE_CALLBACK_PASS_ON;
 }
 
-static void
+static Evas_Object *
 tools_set(Evas_Object *enventor)
 {
    Evas_Object *tools = tools_create(base_layout_get(), enventor);
    base_tools_set(tools);
+   return tools;
 }
 
 static Eina_Bool
@@ -887,6 +888,13 @@ template_show(app_data *ad)
      menu_edc_new(EINA_TRUE);
 }
 
+static void
+live_edit_set(Evas_Object *enventor, Evas_Object *tools)
+{
+   Evas_Object *trigger = tools_live_edit_get(tools);
+   live_edit_init(enventor, trigger);
+}
+
 static Eina_Bool
 init(app_data *ad, int argc, char **argv)
 {
@@ -904,8 +912,8 @@ init(app_data *ad, int argc, char **argv)
    statusbar_set();
    enventor_setup(ad);
    file_mgr_init(ad->enventor);
-   tools_set(ad->enventor);
-   live_edit_init(ad->enventor);
+   Evas_Object *tools = tools_set(ad->enventor);
+   live_edit_set(ad->enventor, tools);
 
    base_gui_show();
 
diff --git a/src/bin/tools.c b/src/bin/tools.c
index 85b4c11..840e051 100644
--- a/src/bin/tools.c
+++ b/src/bin/tools.c
@@ -86,7 +86,7 @@ console_cb(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED,
 }
 
 static void
-live_edit_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
+live_edit_cb(void *data, Evas_Object *obj, void *event_info)
 {
    if (search_is_opened()) search_close();
    if (goto_is_opened()) goto_close();
@@ -155,6 +155,7 @@ tools_create(Evas_Object *parent, Evas_Object *enventor)
    evas_object_size_hint_weight_set(btn, 0, EVAS_HINT_EXPAND);
    evas_object_size_hint_align_set(btn, 0.0, EVAS_HINT_FILL);
    elm_box_pack_end(box, btn);
+   evas_object_data_set(box, "live_edit", btn);
 
    sp = elm_separator_add(box);
    evas_object_show(sp);
@@ -199,3 +200,9 @@ tools_create(Evas_Object *parent, Evas_Object *enventor)
 
    return box;
 }
+
+Evas_Object *
+tools_live_edit_get(Evas_Object *tools)
+{
+   return evas_object_data_get(tools, "live_edit");
+}
diff --git a/src/include/live_edit.h b/src/include/live_edit.h
index 61eb0e9..a7d759a 100644
--- a/src/include/live_edit.h
+++ b/src/include/live_edit.h
@@ -1,4 +1,4 @@
-void live_edit_init(Evas_Object *enventor);
+void live_edit_init(Evas_Object *enventor, Evas_Object *trigger);
 void live_edit_term(void);
 void live_edit_toggle(void);
 void live_edit_cancel(void);
diff --git a/src/include/tools.h b/src/include/tools.h
index a22e910..dfb2a66 100644
--- a/src/include/tools.h
+++ b/src/include/tools.h
@@ -1,2 +1,2 @@
 Evas_Object *tools_create(Evas_Object *parent, Evas_Object *enventor);
-
+Evas_Object *tools_live_edit_get(Evas_Object *tools);

-- 


Reply via email to