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.

2011년 12월 13일 오후 1:21, ChunEon Park <her...@naver.com>님의 말:

> Reverted.
> Unfortunately, this patch should not be applied.
> The reason is I replied already.
> ------------------------------------
> -Regards, Hermet-
>
> -----Original Message-----
> From: "Carsten Haitzler"&lt;ras...@rasterman.com&gt;
> To: "Enlightenment developer list"&
> lt;enlightenment-devel@lists.sourceforge.net&gt;
> Cc: "cnook"&lt;kimci...@gmail.com&gt;
> Sent: 11-12-13(화) 12:37:51
> Subject: Re: [E-devel] [Patch] elc_ctxpopup: using calculated value,
> getting size from the style also.
> On Mon, 5 Dec 2011 15:20:36 +0900 cnook &lt;kimci...@gmail.com&gt; said:
> looked at it - nothing obviously wrong in the reading of it. formatting all
> looks fine to me. in svn it goes. thanks!
> > Dear All, Hello!
> >
> > As the title, attached patch has followings.
> >
> > 1) Using Calculated Value: The _update_arrow(); had used
> > evas_object_geometry_get(); internally for getting its base size.
> > But the _calc_base_geometry(); already got the base size which
> > is more accurate.
> >
> > 2) Getting Size From The Style Also: If the ctxpopup has content
> > which is composed using the style (means, the size of
> > content can get from *.edc file only), then ctxpopup does not
> > come properly. So resolving this, the patch is using a box,
> > and add a RESIZE callback to the box. When the box is resized,
> > the callback calls elm_box_recalculate();
> >
> > Then, please review this patch and give any feedbacks. Thanks a lot.
> >
> > Sincerely,
> > Shinwoo Kim.
> --
> ------------- Codito, ergo sum - "I code, therefore I am" --------------
> The Rasterman (Carsten Haitzler) ras...@rasterman.com
>
> ------------------------------------------------------------------------------
> Systems Optimization Self Assessment
> Improve efficiency and utilization of IT resources. Drive out cost and
> improve service delivery. Take 5 minutes to use this Systems Optimization
> Self Assessment. http://www.accelacomm.com/jaw/sdnl/114/51450054/
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
> ------------------------------------------------------------------------------
> Systems Optimization Self Assessment
> Improve efficiency and utilization of IT resources. Drive out cost and
> improve service delivery. Take 5 minutes to use this Systems Optimization
> Self Assessment. http://www.accelacomm.com/jaw/sdnl/114/51450054/
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
Index: src/lib/elc_ctxpopup.c
===================================================================
--- src/lib/elc_ctxpopup.c	(revision 66135)
+++ src/lib/elc_ctxpopup.c	(working copy)
@@ -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_R
 }
 
 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 @@ static void
    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.
------------------------------------------------------------------------------
Systems Optimization Self Assessment
Improve efficiency and utilization of IT resources. Drive out cost and 
improve service delivery. Take 5 minutes to use this Systems Optimization 
Self Assessment. http://www.accelacomm.com/jaw/sdnl/114/51450054/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to