From: Kim Shinwoo Date: Fri, 16 Dec 2011 05:15:32 +0000 (+0000) Subject: elementary/ctxpopup X-Git-Tag: v1.0.0~1374 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6345d2bbb095106f64409c00f0de806ac36e7611;p=platform%2Fupstream%2Felementary.git elementary/ctxpopup Sure, I have separated the path. The attached patch is for the using previous result which is calculated by the _calc_base_geometry(); Thanks always.. Please review this patch first. I will send second one based on the attached. Sincerely, Shinwoo Kim. Signed-Off-By: Kim Shinwoo Signed-Off-By: ChunEon Park SVN revision: 66267 --- diff --git a/src/lib/elc_ctxpopup.c b/src/lib/elc_ctxpopup.c index fa57ab2..983bb33 100644 --- a/src/lib/elc_ctxpopup.c +++ b/src/lib/elc_ctxpopup.c @@ -64,7 +64,7 @@ static void _adjust_pos_y(Evas_Coord_Point *pos, Evas_Coord_Rectangle *hover_area); static Elm_Ctxpopup_Direction _calc_base_geometry(Evas_Object *obj, Evas_Coord_Rectangle *rect); -static void _update_arrow(Evas_Object *obj, Elm_Ctxpopup_Direction dir); +static void _update_arrow(Evas_Object *obj, Elm_Ctxpopup_Direction dir, Evas_Coord_Rectangle rect); static void _sizing_eval(Evas_Object *obj); static void _shift_base_by_arrow(Evas_Object *arrow, Elm_Ctxpopup_Direction dir, @@ -504,11 +504,10 @@ _calc_base_geometry(Evas_Object *obj, Evas_Coord_Rectangle *rect) } static void -_update_arrow(Evas_Object *obj, Elm_Ctxpopup_Direction dir) +_update_arrow(Evas_Object *obj, Elm_Ctxpopup_Direction dir, Evas_Coord_Rectangle base_size) { Evas_Coord x, y; Evas_Coord_Rectangle arrow_size; - Evas_Coord_Rectangle base_size; Widget_Data *wd; double drag; @@ -518,8 +517,6 @@ _update_arrow(Evas_Object *obj, Elm_Ctxpopup_Direction dir) evas_object_geometry_get(obj, &x, &y, NULL, NULL); evas_object_geometry_get(wd->arrow, NULL, NULL, &arrow_size.w, &arrow_size.h); - evas_object_geometry_get(wd->base, &base_size.x, &base_size.y, - &base_size.w, &base_size.h); edje_object_part_unswallow(wd->base, wd->arrow); @@ -677,7 +674,7 @@ _sizing_eval(Evas_Object *obj) //Base wd->dir = _calc_base_geometry(obj, &rect); _show_signal_emit(obj, wd->dir); - _update_arrow(obj, wd->dir); + _update_arrow(obj, wd->dir, rect); _shift_base_by_arrow(wd->arrow, wd->dir, &rect); //resize scroller according to final size.