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); --
