Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get().
so wait a minute...everyone fights against this for literally over a year, and now it gets in without further discussion because applications require it seriously? On Mon, Sep 2, 2013 at 9:25 AM, ChunEon Park - Enlightenment Git no-re...@enlightenment.org wrote: hermet pushed a commit to branch master. commit ddc3cf80ce0a50a9161fcb212d3414f5d7b5898c Author: ChunEon Park her...@hermet.pe.kr Date: Mon Sep 2 17:19:36 2013 +0900 elementary/widget - introduce elm_object_item_object_get(). We've countered application's requirements multiple times to they have the object handle from the elm_object_item. Now we introduce it for their convenient but they should use it carefully. --- ChangeLog | 6 +- NEWS | 1 + src/lib/elm_main.c| 6 ++ src/lib/elm_object_item.h | 19 +++ src/lib/elm_removed.h | 15 +-- src/lib/elm_widget.c | 7 +++ src/lib/elm_widget.h | 1 + 7 files changed, 40 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4c59fdc..1695f01 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1578,6 +1578,10 @@ * Gengrid: implement selectraise feature. -2013-08-28 DAniel Juyung Seo (SeoZ) +2013-08-28 Daniel Juyung Seo (SeoZ) * Bg: Add bg reset feature. + +2013-09-02 ChunEon Park (Hermet) + +* Widget: Introduce elm_object_item_object_get() API. diff --git a/NEWS b/NEWS index c2056f3..c6046bd 100644 --- a/NEWS +++ b/NEWS @@ -85,6 +85,7 @@ Additions: * Add elm_win_focus_highlight_animate_set/get(). * Add selectraise feature to gengrid. * Add bg reset feature. + * Add elm_object_item_object_get(). Improvements: diff --git a/src/lib/elm_main.c b/src/lib/elm_main.c index 2fa2ea0..9f138b2 100644 --- a/src/lib/elm_main.c +++ b/src/lib/elm_main.c @@ -1859,3 +1859,9 @@ elm_object_item_cursor_engine_only_get(const Elm_Object_Item *it) { return elm_widget_item_cursor_engine_only_get(it); } + +EAPI const Evas_Object * +elm_object_item_object_get(const Elm_Object_Item *it) +{ + return _elm_widget_item_object_get((Elm_Widget_Item*)it); +} diff --git a/src/lib/elm_object_item.h b/src/lib/elm_object_item.h index 8a0ccde..f256a63 100644 --- a/src/lib/elm_object_item.h +++ b/src/lib/elm_object_item.h @@ -34,6 +34,25 @@ typedef void (*Elm_Object_Item_Signal_Cb)(void *data, Elm_Objec EAPI Evas_Object *elm_object_item_widget_get(const Elm_Object_Item *it); /** + * Get the object item's internal object handle. + * + * @param it The Elementary object item + * @return The Internal object of the object item. + * + * @note This function should only be used if you really need to refer the + * internal object's properties (i.e geometry). Since the object items are + * managed/controlled by the widget, you should not modify the object directly + * nor you should not treat the object without validation. + * + * Some widget items may return @c NULL for this API if the items @p are not + * based on the evas object. + * + * @since 1.8 + * @ingroup General + */ +EAPI const Evas_Object *elm_object_item_object_get(const Elm_Object_Item *it); + +/** * Set a content of an object item * * @param it The Elementary object item diff --git a/src/lib/elm_removed.h b/src/lib/elm_removed.h index 416726a..59b982f 100644 --- a/src/lib/elm_removed.h +++ b/src/lib/elm_removed.h @@ -490,19 +490,6 @@ EINA_DEPRECATED EAPI Elm_Gen_Item *elm_gen_item_prev_get(const Elm_Gen_Item *it) EINA_DEPRECATED EAPI Evas_Object *elm_gen_item_widget_get(const Elm_Gen_Item *it); /** - * Get the widget object's handle which contains a given item - * - * @param it The Elementary object item - * @return The widget object - * - * @note This returns the widget object itself that an item belongs to. - * @note Every elm_object_item supports this API - * @deprecated Use elm_object_item_widget_get() instead - * @ingroup General - */ -EINA_DEPRECATED EAPI Evas_Object *elm_object_item_object_get(const Elm_Object_Item *it); - -/** * Set the text to show in the anchorblock * * Sets the text of the anchorblock to @p text. This text can include markup @@ -3303,7 +3290,7 @@ EINA_DEPRECATED EAPI void elm_slideshow_show(Elm_Object_Item *i * * This returns the toolbar object itself that an item belongs to. * - * @deprecated use elm_object_item_object_get() instead. + * @deprecated use elm_object_item_widget_get() instead. */ EINA_DEPRECATED EAPI Evas_Object *elm_toolbar_item_toolbar_get(const Elm_Object_Item *it); diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c index 5f1aae8..9bcec72 100644 --- a/src/lib/elm_widget.c +++ b/src/lib/elm_widget.c @@ -5771,6 +5771,13 @@ _elm_widget_item_translate(Elm_Widget_Item *item) #endif } +EAPI const Evas_Object * +_elm_widget_item_object_get(const
Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get().
If they know what they are doing exactly, then it won' t be problem. This gives the applications a chance to decorate their appilcation easily. -Regards, Hermet- -Original Message- From: Michael Blumenkrantzmichael.blumenkra...@gmail.com To: Enlightenment developer listenlightenment-devel@lists.sourceforge.net; Cc: Sent: 2013-09-02 (월) 17:29:41 Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get(). so wait a minute...everyone fights against this for literally over a year, and now it gets in without further discussion because applications require it seriously? On Mon, Sep 2, 2013 at 9:25 AM, ChunEon Park - Enlightenment Git no-re...@enlightenment.org wrote: hermet pushed a commit to branch master. commit ddc3cf80ce0a50a9161fcb212d3414f5d7b5898c Author: ChunEon Park hermet@hermet.pe.kr Date: Mon Sep 2 17:19:36 2013 +0900 elementary/widget - introduce elm_object_item_object_get(). We've countered application's requirements multiple times to they have the object handle from the elm_object_item. Now we introduce it for their convenient but they should use it carefully. --- ChangeLog 6 +- NEWS1 + src/lib/elm_main.c 6 ++ src/lib/elm_object_item.h 19 +++ src/lib/elm_removed.h 15 +-- src/lib/elm_widget.c7 +++ src/lib/elm_widget.h1 + 7 files changed, 40 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4c59fdc..1695f01 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1578,6 +1578,10 @@ * Gengrid: implement selectraise feature. -2013-08-28 DAniel Juyung Seo (SeoZ) +2013-08-28 Daniel Juyung Seo (SeoZ) * Bg: Add bg reset feature. + +2013-09-02 ChunEon Park (Hermet) + +* Widget: Introduce elm_object_item_object_get() API. diff --git a/NEWS b/NEWS index c2056f3..c6046bd 100644 --- a/NEWS +++ b/NEWS @@ -85,6 +85,7 @@ Additions: * Add elm_win_focus_highlight_animate_set/get(). * Add selectraise feature to gengrid. * Add bg reset feature. + * Add elm_object_item_object_get(). Improvements: diff --git a/src/lib/elm_main.c b/src/lib/elm_main.c index 2fa2ea0..9f138b2 100644 --- a/src/lib/elm_main.c +++ b/src/lib/elm_main.c @@ -1859,3 +1859,9 @@ elm_object_item_cursor_engine_only_get(const Elm_Object_Item *it) { return elm_widget_item_cursor_engine_only_get(it); } + +EAPI const Evas_Object * +elm_object_item_object_get(const Elm_Object_Item *it) +{ + return _elm_widget_item_object_get((Elm_Widget_Item*)it); +} diff --git a/src/lib/elm_object_item.h b/src/lib/elm_object_item.h index 8a0ccde..f256a63 100644 --- a/src/lib/elm_object_item.h +++ b/src/lib/elm_object_item.h @@ -34,6 +34,25 @@ typedef void (*Elm_Object_Item_Signal_Cb)(void *data, Elm_Objec EAPI Evas_Object *elm_object_item_widget_get(const Elm_Object_Item *it); /** + * Get the object item's internal object handle. + * + * @param it The Elementary object item + * @return The Internal object of the object item. + * + * @note This function should only be used if you really need to refer the + * internal object's properties (i.e geometry). Since the object items are + * managed/controlled by the widget, you should not modify the object directly + * nor you should not treat the object without validation. + * + * Some widget items may return @c NULL for this API if the items @p are not + * based on the evas object. + * + * @since 1.8 + * @ingroup General + */ +EAPI const Evas_Object *elm_object_item_object_get(const Elm_Object_Item *it); + +/** * Set a content of an object item * * @param it The Elementary object item diff --git a/src/lib/elm_removed.h b/src/lib/elm_removed.h index 416726a..59b982f 100644 --- a/src/lib/elm_removed.h +++ b/src/lib/elm_removed.h @@ -490,19 +490,6 @@ EINA_DEPRECATED EAPI Elm_Gen_Item *elm_gen_item_prev_get(const Elm_Gen_Item *it) EINA_DEPRECATED EAPI Evas_Object *elm_gen_item_widget_get(const Elm_Gen_Item *it); /** - * Get the widget object's handle which contains a given item - * - * @param it The Elementary object item - * @return The widget object - * - * @note This returns the widget object itself that an item belongs to. - * @note Every elm_object_item supports this API - * @deprecated Use elm_object_item_widget_get() instead - * @ingroup General - */ -EINA_DEPRECATED EAPI Evas_Object *elm_object_item_object_get(const Elm_Object_Item *it); - -/** * Set the text to show in the anchorblock * * Sets the text of the anchorblock to @p text. This text can include markup @@ -3303,7 +3290,7 @@ EINA_DEPRECATED EAPI void elm_slideshow_show(Elm_Object_Item *i * * This returns the toolbar object itself that an item belongs to. * - *
Re: [E-devel] Fw: Enlightenment presentation? (ping #2)
Hi Rasterman, I live in the East of the Netherlands and I am thinking about attending the Software Freedom Day. Unfortunately I know to little about the present enlightenment development that I will not be able to give a presentation and let alone answer difficult questions. In the past I did some small hacks on modules, but that is how far my experience goes with development. I do use e17 on a daily basis. BTW, are there any Dutchmen working actively on the enlightenment project? -- Mark-Willem rawnar Jansen Date: Thu, 29 Aug 2013 17:20:19 +0900 From: ras...@rasterman.com To: enlightenment-devel@lists.sourceforge.net; enlightenment-us...@lists.sourceforge.net Subject: [E-devel] Fw: Enlightenment presentation? (ping #2) is anyone nearish amsterdam mid sept who wants to do this? :) this is a second ping in case someone missed the first... ? Begin chunk 'o stuff: Date: Sat, 03 Aug 2013 00:44:39 +0200 From: Bas de Lange b...@basdelange.com To: ras...@rasterman.com Subject: Enlightenment presentation? Dear Rasterman, We are looking for someone from the Amsterdam area willing to give a talk about Enlightenment during Software Freedom Day 2013 at the CWI, Science Park Amsterdam. This on wednesday 18th of september: http://www.softwarefreedomday.eu/ BTW, we are also organising the International Bitcoin Conference 2013 at the Science Park Amsterdam. This on wednesday 6th to friday 8th of november. If you know people interested, please inform them? http://bitcoinference.com/ -- International Bitcoin Conference 2013, wednesday 6 to friday 8 november Science Park Amsterdam http://bitcoinference.com/ Met vriendelijke groet, Best regards, Bas de Lange +31 (0)6 166 26 950 -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get().
I have to side with Mike here. Both the decision process and the solution smell badly. Worse than Mike's tuna breakfasts. -- Tom. On 02/09/13 09:48, ChunEon Park wrote: If they know what they are doing exactly, then it won' t be problem. This gives the applications a chance to decorate their appilcation easily. -Regards, Hermet- -Original Message- From: Michael Blumenkrantzmichael.blumenkra...@gmail.com To: Enlightenment developer listenlightenment-devel@lists.sourceforge.net; Cc: Sent: 2013-09-02 (월) 17:29:41 Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get(). so wait a minute...everyone fights against this for literally over a year, and now it gets in without further discussion because applications require it seriously? On Mon, Sep 2, 2013 at 9:25 AM, ChunEon Park - Enlightenment Git no-re...@enlightenment.org wrote: hermet pushed a commit to branch master. commit ddc3cf80ce0a50a9161fcb212d3414f5d7b5898c Author: ChunEon Park hermet@hermet.pe.kr Date: Mon Sep 2 17:19:36 2013 +0900 elementary/widget - introduce elm_object_item_object_get(). We've countered application's requirements multiple times to they have the object handle from the elm_object_item. Now we introduce it for their convenient but they should use it carefully. --- ChangeLog 6 +- NEWS1 + src/lib/elm_main.c 6 ++ src/lib/elm_object_item.h 19 +++ src/lib/elm_removed.h 15 +-- src/lib/elm_widget.c7 +++ src/lib/elm_widget.h1 + 7 files changed, 40 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4c59fdc..1695f01 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1578,6 +1578,10 @@ * Gengrid: implement selectraise feature. -2013-08-28 DAniel Juyung Seo (SeoZ) +2013-08-28 Daniel Juyung Seo (SeoZ) * Bg: Add bg reset feature. + +2013-09-02 ChunEon Park (Hermet) + +* Widget: Introduce elm_object_item_object_get() API. diff --git a/NEWS b/NEWS index c2056f3..c6046bd 100644 --- a/NEWS +++ b/NEWS @@ -85,6 +85,7 @@ Additions: * Add elm_win_focus_highlight_animate_set/get(). * Add selectraise feature to gengrid. * Add bg reset feature. + * Add elm_object_item_object_get(). Improvements: diff --git a/src/lib/elm_main.c b/src/lib/elm_main.c index 2fa2ea0..9f138b2 100644 --- a/src/lib/elm_main.c +++ b/src/lib/elm_main.c @@ -1859,3 +1859,9 @@ elm_object_item_cursor_engine_only_get(const Elm_Object_Item *it) { return elm_widget_item_cursor_engine_only_get(it); } + +EAPI const Evas_Object * +elm_object_item_object_get(const Elm_Object_Item *it) +{ + return _elm_widget_item_object_get((Elm_Widget_Item*)it); +} diff --git a/src/lib/elm_object_item.h b/src/lib/elm_object_item.h index 8a0ccde..f256a63 100644 --- a/src/lib/elm_object_item.h +++ b/src/lib/elm_object_item.h @@ -34,6 +34,25 @@ typedef void (*Elm_Object_Item_Signal_Cb)(void *data, Elm_Objec EAPI Evas_Object *elm_object_item_widget_get(const Elm_Object_Item *it); /** + * Get the object item's internal object handle. + * + * @param it The Elementary object item + * @return The Internal object of the object item. + * + * @note This function should only be used if you really need to refer the + * internal object's properties (i.e geometry). Since the object items are + * managed/controlled by the widget, you should not modify the object directly + * nor you should not treat the object without validation. + * + * Some widget items may return @c NULL for this API if the items @p are not + * based on the evas object. + * + * @since 1.8 + * @ingroup General + */ +EAPI const Evas_Object *elm_object_item_object_get(const Elm_Object_Item *it); + +/** * Set a content of an object item * * @param it The Elementary object item diff --git a/src/lib/elm_removed.h b/src/lib/elm_removed.h index 416726a..59b982f 100644 --- a/src/lib/elm_removed.h +++ b/src/lib/elm_removed.h @@ -490,19 +490,6 @@ EINA_DEPRECATED EAPI Elm_Gen_Item *elm_gen_item_prev_get(const Elm_Gen_Item *it) EINA_DEPRECATED EAPI Evas_Object *elm_gen_item_widget_get(const Elm_Gen_Item *it); /** - * Get the widget object's handle which contains a given item - * - * @param it The Elementary object item - * @return The widget object - * - * @note This returns the widget object itself that an item belongs to. - * @note Every elm_object_item supports this API - * @deprecated Use elm_object_item_widget_get() instead - * @ingroup General - */ -EINA_DEPRECATED EAPI Evas_Object *elm_object_item_object_get(const Elm_Object_Item *it); - -/** * Set the text to show in the anchorblock * * Sets the text of the anchorblock to @p
Re: [E-devel] [EGIT] [core/elementary] elementary-1.7 01/01: Added clouseau integration.
On 01/09/13 05:08, Iván Briano wrote: On Sat, Aug 31, 2013 at 8:03 PM, Daniel Juyung Seo seojuyu...@gmail.com wrote: Tom, I like this patch but I don't think this can go into 1.7 branch as per this is not a bug fix that we have been doing for release branch so far. This can be a precedence. Someone else will quote this commit later when they want to do something more than a bug fix in a release branch. (It reminds me of multibuttenentry commit disaster.) And I think your commit has influence considering your position in efl world. I also want to listen to other's opinion. Yes, but it's not so much introducing a new features as it is providing with support for a handy development tool. Yes, that's what I was thinking. That's the only reason why I even considered adding a feature to a stable branch. The fact that it's only activated by an env var, and that although it's a feature by the plain definition of the word, it's actually there to make us less buggy, made me include it. But as you can see, I asked for outside review, as it's a touchy subject. -- Tom. -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get().
Sorry for the dumb question but resize callback can't help on that? Imo, storing pointers to obsolete objects can be very dangerous. But it is just my opinion ;-) Vive Valgrind! Vive la France! JackDanielZ, alias daniel On 09/02/2013 01:53 PM, ChunEon Park wrote: I think figuring out the items geometry can be one of the common scenarios in app side. This is already raised before but nobody answered solution properly as far as I remember. My conclusion is, this is a fight between flexibilty and stable For stable, we don't provide that api. But i don't think this gurantee application stable and developers satisfy. Maybe this may cause them painful to find out proper solutions and they may try more dangerous and difficult method in worse case. This causes app go around too much. And we don't need to make app developers hard to make it. -Regards, Hermet- -Original Message- From: Tom Hacohentom.haco...@samsung.com To: Enlightenment developer listenlightenment-devel@lists.sourceforge.net; Cc: Sent: 2013-09-02 (월) 18:20:35 Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get(). I have to side with Mike here. Both the decision process and the solution smell badly. Worse than Mike's tuna breakfasts. -- Tom. On 02/09/13 09:48, ChunEon Park wrote: If they know what they are doing exactly, then it won' t be problem. This gives the applications a chance to decorate their appilcation easily. -Regards, Hermet- -Original Message- From: Michael Blumenkrantzmichael.blumenkrantz@gmail.com To: Enlightenment developer listenlightenment-devel@lists.sourceforge.net; Cc: Sent: 2013-09-02 (월) 17:29:41 Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get(). so wait a minute...everyone fights against this for literally over a year, and now it gets in without further discussion because applications require it seriously? On Mon, Sep 2, 2013 at 9:25 AM, ChunEon Park - Enlightenment Git no-re...@enlightenment.org wrote: hermet pushed a commit to branch master. commit ddc3cf80ce0a50a9161fcb212d3414f5d7b5898c Author: ChunEon Park hermet@hermet.pe.kr Date: Mon Sep 2 17:19:36 2013 +0900 elementary/widget - introduce elm_object_item_object_get(). We've countered application's requirements multiple times to they have the object handle from the elm_object_item. Now we introduce it for their convenient but they should use it carefully. --- ChangeLog 6 +- NEWS1 + src/lib/elm_main.c 6 ++ src/lib/elm_object_item.h 19 +++ src/lib/elm_removed.h 15 +-- src/lib/elm_widget.c7 +++ src/lib/elm_widget.h1 + 7 files changed, 40 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4c59fdc..1695f01 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1578,6 +1578,10 @@ * Gengrid: implement selectraise feature. -2013-08-28 DAniel Juyung Seo (SeoZ) +2013-08-28 Daniel Juyung Seo (SeoZ) * Bg: Add bg reset feature. + +2013-09-02 ChunEon Park (Hermet) + +* Widget: Introduce elm_object_item_object_get() API. diff --git a/NEWS b/NEWS index c2056f3..c6046bd 100644 --- a/NEWS +++ b/NEWS @@ -85,6 +85,7 @@ Additions: * Add elm_win_focus_highlight_animate_set/get(). * Add selectraise feature to gengrid. * Add bg reset feature. + * Add elm_object_item_object_get(). Improvements: diff --git a/src/lib/elm_main.c b/src/lib/elm_main.c index 2fa2ea0..9f138b2 100644 --- a/src/lib/elm_main.c +++ b/src/lib/elm_main.c @@ -1859,3 +1859,9 @@ elm_object_item_cursor_engine_only_get(const Elm_Object_Item *it) { return elm_widget_item_cursor_engine_only_get(it); } + +EAPI const Evas_Object * +elm_object_item_object_get(const Elm_Object_Item *it) +{ + return _elm_widget_item_object_get((Elm_Widget_Item*)it); +} diff --git a/src/lib/elm_object_item.h b/src/lib/elm_object_item.h index 8a0ccde..f256a63 100644 --- a/src/lib/elm_object_item.h +++ b/src/lib/elm_object_item.h @@ -34,6 +34,25 @@ typedef void (*Elm_Object_Item_Signal_Cb)(void *data, Elm_Objec EAPI Evas_Object *elm_object_item_widget_get(const Elm_Object_Item *it); /** + * Get the object item's internal object handle. + * + * @param it The Elementary object item + * @return The Internal object of the object item. + * + * @note This function should only be used if you really need to refer the + * internal object's properties (i.e geometry). Since the object items are + * managed/controlled by the widget, you should not modify the object directly + * nor you should not treat the object without
Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get().
Actually I want to discuss about this kinds of APIs for long time ago. http://sourceforge.net/mailarchive/message.php?msg_id=31297258 But nobody is interested in this. ;-( This API is dangerous but the root cause was from App. developers. For the genlist/gengrid cases, App can use realized/unrealized callback for checking evas object of the object item. 2013/9/2 ChunEon Park her...@naver.com I think figuring out the items geometry can be one of the common scenarios in app side. This is already raised before but nobody answered solution properly as far as I remember. My conclusion is, this is a fight between flexibilty and stable For stable, we don't provide that api. But i don't think this gurantee application stable and developers satisfy. Maybe this may cause them painful to find out proper solutions and they may try more dangerous and difficult method in worse case. This causes app go around too much. And we don't need to make app developers hard to make it. -Regards, Hermet- -Original Message- From: Tom Hacohentom.haco...@samsung.com To: Enlightenment developer list enlightenment-devel@lists.sourceforge.net; Cc: Sent: 2013-09-02 (월) 18:20:35 Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get(). I have to side with Mike here. Both the decision process and the solution smell badly. Worse than Mike's tuna breakfasts. -- Tom. On 02/09/13 09:48, ChunEon Park wrote: If they know what they are doing exactly, then it won' t be problem. This gives the applications a chance to decorate their appilcation easily. -Regards, Hermet- -Original Message- From: Michael Blumenkrantzmichael.blumenkrantz@gmail.com To: Enlightenment developer listenlightenment-devel@ lists.sourceforge.net; Cc: Sent: 2013-09-02 (월) 17:29:41 Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get(). so wait a minute...everyone fights against this for literally over a year, and now it gets in without further discussion because applications require it seriously? On Mon, Sep 2, 2013 at 9:25 AM, ChunEon Park - Enlightenment Git no-re...@enlightenment.org wrote: hermet pushed a commit to branch master. commit ddc3cf80ce0a50a9161fcb212d3414f5d7b5898c Author: ChunEon Park hermet@hermet.pe.kr Date: Mon Sep 2 17:19:36 2013 +0900 elementary/widget - introduce elm_object_item_object_get(). We've countered application's requirements multiple times to they have the object handle from the elm_object_item. Now we introduce it for their convenient but they should use it carefully. --- ChangeLog 6 +- NEWS1 + src/lib/elm_main.c 6 ++ src/lib/elm_object_item.h 19 +++ src/lib/elm_removed.h 15 +-- src/lib/elm_widget.c7 +++ src/lib/elm_widget.h1 + 7 files changed, 40 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4c59fdc..1695f01 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1578,6 +1578,10 @@ * Gengrid: implement selectraise feature. -2013-08-28 DAniel Juyung Seo (SeoZ) +2013-08-28 Daniel Juyung Seo (SeoZ) * Bg: Add bg reset feature. + +2013-09-02 ChunEon Park (Hermet) + +* Widget: Introduce elm_object_item_object_get() API. diff --git a/NEWS b/NEWS index c2056f3..c6046bd 100644 --- a/NEWS +++ b/NEWS @@ -85,6 +85,7 @@ Additions: * Add elm_win_focus_highlight_animate_set/get(). * Add selectraise feature to gengrid. * Add bg reset feature. + * Add elm_object_item_object_get(). Improvements: diff --git a/src/lib/elm_main.c b/src/lib/elm_main.c index 2fa2ea0..9f138b2 100644 --- a/src/lib/elm_main.c +++ b/src/lib/elm_main.c @@ -1859,3 +1859,9 @@ elm_object_item_cursor_engine_only_get(const Elm_Object_Item *it) { return elm_widget_item_cursor_engine_only_get(it); } + +EAPI const Evas_Object * +elm_object_item_object_get(const Elm_Object_Item *it) +{ + return _elm_widget_item_object_get((Elm_Widget_Item*)it); +} diff --git a/src/lib/elm_object_item.h b/src/lib/elm_object_item.h index 8a0ccde..f256a63 100644 --- a/src/lib/elm_object_item.h +++ b/src/lib/elm_object_item.h @@ -34,6 +34,25 @@ typedef void (*Elm_Object_Item_Signal_Cb)(void *data, Elm_Objec EAPI Evas_Object *elm_object_item_widget_get(const Elm_Object_Item *it); /** + * Get the object item's internal object handle. + * + * @param it The Elementary object item + * @return The Internal object of the object item. + * + * @note This function should only be used if you really need to refer the
Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get().
On 02/09/13 12:01, daniel.za...@samsung.com wrote: Sorry for the dumb question but resize callback can't help on that? Imo, storing pointers to obsolete objects can be very dangerous. But it is just my opinion ;-) It's not just your opinion, it's objectively dangerous. Vive Valgrind! Vive la France! Remind me again, where does your allegiance lie? I wonder if this will become one of those threads in which everyone argue against, until there's no one more to argue against, so the thread dies. After which, we forget about it, and the bad API just stays in until the next stable version. Maybe we need a pre-release new API review as another opportunity for getting rid of smelly API. -- Tom. -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get().
I think it's too late to get rid of bad API considering the state of elm at 1.0 On Mon, Sep 2, 2013 at 1:12 PM, Tom Hacohen tom.haco...@samsung.com wrote: On 02/09/13 12:01, daniel.za...@samsung.com wrote: Sorry for the dumb question but resize callback can't help on that? Imo, storing pointers to obsolete objects can be very dangerous. But it is just my opinion ;-) It's not just your opinion, it's objectively dangerous. Vive Valgrind! Vive la France! Remind me again, where does your allegiance lie? I wonder if this will become one of those threads in which everyone argue against, until there's no one more to argue against, so the thread dies. After which, we forget about it, and the bad API just stays in until the next stable version. Maybe we need a pre-release new API review as another opportunity for getting rid of smelly API. -- Tom. -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Fw: Enlightenment presentation? (ping #2)
On Mon, 2 Sep 2013 10:52:21 +0200 Mark-Willem Jansen markwil...@hotmail.com said: Hi Rasterman, I live in the East of the Netherlands and I am thinking about attending the Software Freedom Day. Unfortunately I know to little about the present enlightenment development that I will not be able to give a presentation and let alone answer difficult questions. In the past I did some small hacks on modules, but that is how far my experience goes with development. I do use e17 on a daily basis. BTW, are there any Dutchmen working actively on the enlightenment project? you could do something from a user point of view? like what makes e good for you? is it good for you? where? why? :) as for dutch guys hmm no - not at the moment anyway in tersm of active devs... we're dutch-free :) -- Mark-Willem rawnar Jansen Date: Thu, 29 Aug 2013 17:20:19 +0900 From: ras...@rasterman.com To: enlightenment-devel@lists.sourceforge.net; enlightenment-us...@lists.sourceforge.net Subject: [E-devel] Fw: Enlightenment presentation? (ping #2) is anyone nearish amsterdam mid sept who wants to do this? :) this is a second ping in case someone missed the first... ? Begin chunk 'o stuff: Date: Sat, 03 Aug 2013 00:44:39 +0200 From: Bas de Lange b...@basdelange.com To: ras...@rasterman.com Subject: Enlightenment presentation? Dear Rasterman, We are looking for someone from the Amsterdam area willing to give a talk about Enlightenment during Software Freedom Day 2013 at the CWI, Science Park Amsterdam. This on wednesday 18th of september: http://www.softwarefreedomday.eu/ BTW, we are also organising the International Bitcoin Conference 2013 at the Science Park Amsterdam. This on wednesday 6th to friday 8th of november. If you know people interested, please inform them? http://bitcoinference.com/ -- International Bitcoin Conference 2013, wednesday 6 to friday 8 november Science Park Amsterdam http://bitcoinference.com/ Met vriendelijke groet, Best regards, Bas de Lange +31 (0)6 166 26 950 -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/01: evas: focus_set can fail... internally handle that case properly now.
isn't better to just check the focus object afterwards? This focus_set() signature became strange :-/ On Mon, Sep 2, 2013 at 8:29 AM, Cedric Bail - Enlightenment Git no-re...@enlightenment.org wrote: cedric pushed a commit to branch master. commit a007a3af1398e66ba90eae005ccbf31dfb81788a Author: Cedric Bail cedric.b...@samsung.com Date: Mon Sep 2 20:28:23 2013 +0900 evas: focus_set can fail... internally handle that case properly now. --- src/lib/evas/Evas_Eo.h | 2 +- src/lib/evas/canvas/evas_focus.c | 21 - 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/lib/evas/Evas_Eo.h b/src/lib/evas/Evas_Eo.h index e4b83e8..fc61c0a 100644 --- a/src/lib/evas/Evas_Eo.h +++ b/src/lib/evas/Evas_Eo.h @@ -5232,7 +5232,7 @@ enum * * @see evas_object_focus_set */ -#define evas_obj_focus_set(focus) EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_FOCUS_SET), EO_TYPECHECK(Eina_Bool, focus) +#define evas_obj_focus_set(focus, succeed) EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_FOCUS_SET), EO_TYPECHECK(Eina_Bool, focus), EO_TYPECHECK(Eina_Bool *, succeed) /** * @def evas_obj_focus_get diff --git a/src/lib/evas/canvas/evas_focus.c b/src/lib/evas/canvas/evas_focus.c index 757f585..5294ee6 100644 --- a/src/lib/evas/canvas/evas_focus.c +++ b/src/lib/evas/canvas/evas_focus.c @@ -10,29 +10,36 @@ EAPI void evas_object_focus_set(Evas_Object *eo_obj, Eina_Bool focus) { - eo_do(eo_obj, evas_obj_focus_set(focus)); + eo_do(eo_obj, evas_obj_focus_set(focus, NULL)); } void _focus_set(Eo *eo_obj, void *_pd, va_list *list) { Eina_Bool focus = va_arg(*list, int); + Eina_Bool *r = va_arg(*list, Eina_Bool *); int event_id = 0; MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ); return; MAGIC_CHECK_END(); - Evas_Object_Protected_Data *obj = _pd; + Evas_Object_Protected_Data *obj = _pd; + + if (r) *r = EINA_FALSE; _evas_object_event_new(); event_id = _evas_event_counter; - if (obj-focused == focus) goto end; + if (obj-focused == focus) goto success_end; if (evas_object_intercept_call_focus_set(eo_obj, obj, focus)) goto end; if (focus) { +Eina_Bool success = EINA_TRUE; + if (obj-layer-evas-focused) - evas_object_focus_set(obj-layer-evas-focused, 0); + eo_do(obj-layer-evas-focused, +evas_obj_focus_set(0, success)); +if (!success) goto end; obj-focused = 1; obj-layer-evas-focused = eo_obj; evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FOCUS_IN, NULL, event_id); @@ -47,7 +54,11 @@ _focus_set(Eo *eo_obj, void *_pd, va_list *list) evas_event_callback_call(obj-layer-evas-evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, eo_obj); } - end: + + success_end: + if (r) *r = EINA_TRUE; + + end: _evas_post_event_callback_call(obj-layer-evas-evas, obj-layer-evas); } -- -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk -- Gustavo Sverzut Barbieri -- Mobile: +55 (19) 9225-2202 Contact: http://www.gustavobarbieri.com.br/contact -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get().
On Mon, Sep 2, 2013 at 9:23 AM, Tom Hacohen tom.haco...@samsung.com wrote: On 02/09/13 13:16, Michael Blumenkrantz wrote: I think it's too late to get rid of bad API considering the state of elm at 1.0 Obviously. I was thinking about 2.0. I have a few widgets on my kill-list. Yeah, me too. Namely, all but layout. -- Tom. -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/01: evas: focus_set can fail... internally handle that case properly now.
but that would make sense! On Mon, Sep 2, 2013 at 2:49 PM, Gustavo Sverzut Barbieri barbi...@gmail.com wrote: isn't better to just check the focus object afterwards? This focus_set() signature became strange :-/ On Mon, Sep 2, 2013 at 8:29 AM, Cedric Bail - Enlightenment Git no-re...@enlightenment.org wrote: cedric pushed a commit to branch master. commit a007a3af1398e66ba90eae005ccbf31dfb81788a Author: Cedric Bail cedric.b...@samsung.com Date: Mon Sep 2 20:28:23 2013 +0900 evas: focus_set can fail... internally handle that case properly now. --- src/lib/evas/Evas_Eo.h | 2 +- src/lib/evas/canvas/evas_focus.c | 21 - 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/lib/evas/Evas_Eo.h b/src/lib/evas/Evas_Eo.h index e4b83e8..fc61c0a 100644 --- a/src/lib/evas/Evas_Eo.h +++ b/src/lib/evas/Evas_Eo.h @@ -5232,7 +5232,7 @@ enum * * @see evas_object_focus_set */ -#define evas_obj_focus_set(focus) EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_FOCUS_SET), EO_TYPECHECK(Eina_Bool, focus) +#define evas_obj_focus_set(focus, succeed) EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_FOCUS_SET), EO_TYPECHECK(Eina_Bool, focus), EO_TYPECHECK(Eina_Bool *, succeed) /** * @def evas_obj_focus_get diff --git a/src/lib/evas/canvas/evas_focus.c b/src/lib/evas/canvas/evas_focus.c index 757f585..5294ee6 100644 --- a/src/lib/evas/canvas/evas_focus.c +++ b/src/lib/evas/canvas/evas_focus.c @@ -10,29 +10,36 @@ EAPI void evas_object_focus_set(Evas_Object *eo_obj, Eina_Bool focus) { - eo_do(eo_obj, evas_obj_focus_set(focus)); + eo_do(eo_obj, evas_obj_focus_set(focus, NULL)); } void _focus_set(Eo *eo_obj, void *_pd, va_list *list) { Eina_Bool focus = va_arg(*list, int); + Eina_Bool *r = va_arg(*list, Eina_Bool *); int event_id = 0; MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ); return; MAGIC_CHECK_END(); - Evas_Object_Protected_Data *obj = _pd; + Evas_Object_Protected_Data *obj = _pd; + + if (r) *r = EINA_FALSE; _evas_object_event_new(); event_id = _evas_event_counter; - if (obj-focused == focus) goto end; + if (obj-focused == focus) goto success_end; if (evas_object_intercept_call_focus_set(eo_obj, obj, focus)) goto end; if (focus) { +Eina_Bool success = EINA_TRUE; + if (obj-layer-evas-focused) - evas_object_focus_set(obj-layer-evas-focused, 0); + eo_do(obj-layer-evas-focused, +evas_obj_focus_set(0, success)); +if (!success) goto end; obj-focused = 1; obj-layer-evas-focused = eo_obj; evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FOCUS_IN, NULL, event_id); @@ -47,7 +54,11 @@ _focus_set(Eo *eo_obj, void *_pd, va_list *list) evas_event_callback_call(obj-layer-evas-evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, eo_obj); } - end: + + success_end: + if (r) *r = EINA_TRUE; + + end: _evas_post_event_callback_call(obj-layer-evas-evas, obj-layer-evas); } -- -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk -- Gustavo Sverzut Barbieri -- Mobile: +55 (19) 9225-2202 Contact: http://www.gustavobarbieri.com.br/contact -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net
Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get().
On 02/09/13 14:52, Iván Briano wrote: On Mon, Sep 2, 2013 at 9:23 AM, Tom Hacohen tom.haco...@samsung.com wrote: On 02/09/13 13:16, Michael Blumenkrantz wrote: I think it's too late to get rid of bad API considering the state of elm at 1.0 Obviously. I was thinking about 2.0. I have a few widgets on my kill-list. Yeah, me too. Namely, all but layout. Without making any generalizations, it is apparent from the past efforts of the ex-Profusion team that you guys like the layout widget. :) -- Tom. -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get().
On Mon, 02 Sep 2013 14:56:31 +0100 Tom Hacohen tom.haco...@samsung.com wrote: On 02/09/13 14:52, Iván Briano wrote: On Mon, Sep 2, 2013 at 9:23 AM, Tom Hacohen tom.haco...@samsung.com wrote: On 02/09/13 13:16, Michael Blumenkrantz wrote: I think it's too late to get rid of bad API considering the state of elm at 1.0 Obviously. I was thinking about 2.0. I have a few widgets on my kill-list. Yeah, me too. Namely, all but layout. Without making any generalizations, it is apparent from the past efforts of the ex-Profusion team that you guys like the layout widget. :) -- Tom. imo we just delete all the widgets and use e widgets -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/01: other async render issue - sync ALL rendering canvases, not just one
Raster, On Sat, Aug 31, 2013 at 1:31 AM, Carsten Haitzler ras...@rasterman.com wrote: On Fri, 30 Aug 2013 10:58:55 -0300 Ulisses Furquim uliss...@gmail.com said: Raster, On Fri, Aug 30, 2013 at 5:11 AM, Carsten Haitzler ras...@rasterman.com wrote: On Thu, 29 Aug 2013 10:26:50 -0300 Ulisses Furquim uliss...@gmail.com said: Raster, On Thu, Aug 29, 2013 at 9:18 AM, Carsten Haitzler - Enlightenment Git no-re...@enlightenment.org wrote: raster pushed a commit to branch master. commit 42a46214c4f9b35c0e1f5a84c56ea76ba2235eae Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Thu Aug 29 21:18:04 2013 +0900 other async render issue - sync ALL rendering canvases, not just one --- src/lib/evas/canvas/evas_render.c | 2 ++ src/lib/evas/common/evas_thread_render.c | 21 - src/lib/evas/include/evas_common_private.h | 4 +++- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index b04d606..4fbe9e2 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -2235,6 +2235,7 @@ _canvas_render_dump(Eo *eo_e EINA_UNUSED, void *_pd, va_list *list EINA_UNUSED) Evas_Public_Data *e = _pd; Evas_Layer *lay; + evas_thread_queue_block(); evas_render_rendering_wait(e); evas_cache_async_freeze(); This might deadlock. If the queue is no empty and we have there the commands for e then we'll wait forever in _rendering_wait() in the main thread and the render thread will sleep forever trying to acquire the evas_thread_block_lock. Right? fixed. i didnt notice evas-rendering was set in evas_render as opposed to the rendering handle in the async thread. :) Well, yes, your change solves the deadlock. But I want to know what you want, really. Do you want a call to sync all canvases? This lock is not doing that. We'd need to wait all canvases rendering flags to be set to false and then return. This way we wouldn't have any pending commands in the render thread. in doing the async rendering the code to dump data was totally disabled. image data with refcounts 0 were now never dumped. why? why fix for i have a background thread still using that data to render while my mainloop is dumping. the wait for evas to finish waits for the GIVEN evas to finish... ONLY that one. but the background async renderer may march on to the NEXT canvas wanting a render in the queue and it doesn't wait for that. it continues and we just now dumped images from memory it needs. as the load data is done before the async renderer begins and it assumes data is there and ready, so this block basically forces the dump cal to wait for the async renderer to finish going through ALL queued rendering so far - not just once canvas, but all of them, since its a mutex lock around that block of code. this then allows all image data to be dumped from memory (even refcount 0) which is what the original intent and code was doing. now it's safe and any new renders come from the mainloop afte the dump and they can/will re-load data from files if needed for the async renderer to work properly. no - it's not pretty, but it fixed the dump functionality. This problem is now hard to reproduce but we still have a race with your fix. That lock doesn't guarantee what you want. If you happen to acquire the lock in the main thread just before the render thread tries to acquire it then after you clean up and release the lock the render thread will acquire it and we have a problem. Even though still difficult to happen this race is more prone to happen if the canvas you passed to _rendering_wait() is not rendering at that moment. Moreover, I don't like this lock in the render thread and being able to block/unblock it. It's a deadlock wanting to happen. I'll see what I can do here but we need a proper sync all canvases function. It should be simple if we can just wait on the rendering flags for all canvases. -- Ulisses -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get().
There is no way to add resize callback to the object item at this moment. And sure, this api can be dangerous if app uses it incorrectly. However, If this api should be used by all apps obligatorily, then I won't add it. Problem is, we can't sure all apis are perfect in the world. simply like double free(). So we provide api doc to warn the developers for dangerous cases. -Regards, Hermet- -Original Message- From: daniel.za...@samsung.comdaniel.za...@samsung.com To: Enlightenment developer listenlightenment-devel@lists.sourceforge.net; Cc: ChunEon Parkher...@naver.com; Sent: 2013-09-02 (월) 20:01:07 Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get(). Sorry for the dumb question but resize callback can't help on that? Imo, storing pointers to obsolete objects can be very dangerous. But it is just my opinion ;-) Vive Valgrind! Vive la France! JackDanielZ, alias daniel On 09/02/2013 01:53 PM, ChunEon Park wrote: I think figuring out the items geometry can be one of the common scenarios in app side. This is already raised before but nobody answered solution properly as far as I remember. My conclusion is, this is a fight between flexibilty and stable For stable, we don't provide that api. But i don't think this gurantee application stable and developers satisfy. Maybe this may cause them painful to find out proper solutions and they may try more dangerous and difficult method in worse case. This causes app go around too much. And we don't need to make app developers hard to make it. -Regards, Hermet- -Original Message- From: Tom Hacohentom.hacohen@samsung.com To: Enlightenment developer listenlightenment-devel@lists.sourceforge.net; Cc: Sent: 2013-09-02 (월) 18:20:35 Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get(). I have to side with Mike here. Both the decision process and the solution smell badly. Worse than Mike's tuna breakfasts. -- Tom. On 02/09/13 09:48, ChunEon Park wrote: If they know what they are doing exactly, then it won' t be problem. This gives the applications a chance to decorate their appilcation easily. -Regards, Hermet- -Original Message- From: Michael Blumenkrantzmichael.blumenkrantz@gmail.com To: Enlightenment developer listenlightenment-devel@lists.sourceforge.net; Cc: Sent: 2013-09-02 (월) 17:29:41 Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get(). so wait a minute...everyone fights against this for literally over a year, and now it gets in without further discussion because applications require it seriously? On Mon, Sep 2, 2013 at 9:25 AM, ChunEon Park - Enlightenment Git no-re...@enlightenment.org wrote: hermet pushed a commit to branch master. commit ddc3cf80ce0a50a9161fcb212d3414f5d7b5898c Author: ChunEon Park hermet@hermet.pe.kr Date: Mon Sep 2 17:19:36 2013 +0900 elementary/widget - introduce elm_object_item_object_get(). We've countered application's requirements multiple times to they have the object handle from the elm_object_item. Now we introduce it for their convenient but they should use it carefully. --- ChangeLog 6 +- NEWS1 + src/lib/elm_main.c 6 ++ src/lib/elm_object_item.h 19 +++ src/lib/elm_removed.h 15 +-- src/lib/elm_widget.c7 +++ src/lib/elm_widget.h1 + 7 files changed, 40 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4c59fdc..1695f01 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1578,6 +1578,10 @@ * Gengrid: implement selectraise feature. -2013-08-28 DAniel Juyung Seo (SeoZ) +2013-08-28 Daniel Juyung Seo (SeoZ) * Bg: Add bg reset feature. + +2013-09-02 ChunEon Park (Hermet) + +* Widget: Introduce elm_object_item_object_get() API. diff --git a/NEWS b/NEWS index c2056f3..c6046bd 100644 --- a/NEWS +++ b/NEWS @@ -85,6 +85,7 @@ Additions: * Add elm_win_focus_highlight_animate_set/get(). * Add selectraise feature to gengrid. * Add bg reset feature. + * Add elm_object_item_object_get(). Improvements: diff --git a/src/lib/elm_main.c b/src/lib/elm_main.c index 2fa2ea0..9f138b2 100644 --- a/src/lib/elm_main.c +++ b/src/lib/elm_main.c @@ -1859,3 +1859,9 @@ elm_object_item_cursor_engine_only_get(const Elm_Object_Item *it) { return elm_widget_item_cursor_engine_only_get(it); } + +EAPI const Evas_Object * +elm_object_item_object_get(const Elm_Object_Item *it) +{ + return _elm_widget_item_object_get((Elm_Widget_Item*)it); +} diff --git
Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get().
On Tue, 3 Sep 2013 02:52:14 +0900 (KST) ChunEon Park her...@naver.com wrote: There is no way to add resize callback to the object item at this moment. And sure, this api can be dangerous if app uses it incorrectly. C can be dangerous if app uses it incorrectly. It's well known for it in fact. B-) Safety is for high level languages. C is for people that want or need to get their hands on nasty low level details. I really don't think much effort should be spent on protecting C coders from themselves, at the expense of making it hard to do stuff. This is just a general principle though, I've not looked at the API in question. signature.asc Description: PGP signature -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 03/04: eldbus: Add eldbus_object_manager_interfaces_added/removed()
zeh, I think you should wrap the callback as well... expect people parse the complex properties are not that good, otherwise they would just register the signal directly. Create a struct and add members: str: ifacename, hash: propname=propvalue (eina_value) and list of invalidated properties (str). This should be the event_info for the added signal. Similarly for the del signal you give it a string with removed interface. I'd say there is no need to have eldbus_object_signal_handler_add() and eldbus_object_manager_interfaces_removed(), just use the already existing eldbus event callback system. You should always listen for that while you do monitor() as you cache properties already... then you already created the Eina_Value, you just need to put those in the hash when you emit the signal. On Mon, Sep 2, 2013 at 4:16 PM, José Roberto de Souza - Enlightenment Git no-re...@enlightenment.org wrote: zehortigoza pushed a commit to branch master. commit 356a4aa8e96c5df87d24384b5a0d9bcb9cd636b3 Author: José Roberto de Souza jose.so...@intel.com Date: Fri Aug 30 10:23:28 2013 -0300 eldbus: Add eldbus_object_manager_interfaces_added/removed() --- src/lib/eldbus/eldbus_freedesktop.c | 14 ++ src/lib/eldbus/eldbus_freedesktop.h | 4 2 files changed, 18 insertions(+) diff --git a/src/lib/eldbus/eldbus_freedesktop.c b/src/lib/eldbus/eldbus_freedesktop.c index 2862753..f0a79bd 100644 --- a/src/lib/eldbus/eldbus_freedesktop.c +++ b/src/lib/eldbus/eldbus_freedesktop.c @@ -81,6 +81,20 @@ eldbus_object_managed_objects_get(Eldbus_Object *obj, Eldbus_Message_Cb cb, cons return p; } +EAPI Eldbus_Signal_Handler * +eldbus_object_manager_interfaces_added(Eldbus_Object *obj, Eldbus_Signal_Cb cb, const void *cb_data) +{ + return eldbus_object_signal_handler_add(obj, ELDBUS_FDO_INTERFACE_OBJECT_MANAGER, + InterfacesAdded, cb, cb_data); +} + +EAPI Eldbus_Signal_Handler * +eldbus_object_manager_interfaces_removed(Eldbus_Object *obj, Eldbus_Signal_Cb cb, const void *cb_data) +{ + return eldbus_object_signal_handler_add(obj, ELDBUS_FDO_INTERFACE_OBJECT_MANAGER, + InterfacesRemoved, cb, cb_data); +} + EAPI Eldbus_Pending * eldbus_hello(Eldbus_Connection *conn, Eldbus_Message_Cb cb, const void *cb_data) { diff --git a/src/lib/eldbus/eldbus_freedesktop.h b/src/lib/eldbus/eldbus_freedesktop.h index 5644d44..8a66b06 100644 --- a/src/lib/eldbus/eldbus_freedesktop.h +++ b/src/lib/eldbus/eldbus_freedesktop.h @@ -139,6 +139,10 @@ EAPI const Eina_Hash *eldbus_proxy_property_local_get_all(Eldbus_Proxy *pro EAPI Eldbus_Pending*eldbus_object_managed_objects_get(Eldbus_Object *obj, Eldbus_Message_Cb cb, const void *data) EINA_ARG_NONNULL(1, 2); +EAPI Eldbus_Signal_Handler *eldbus_object_manager_interfaces_added(Eldbus_Object *obj, Eldbus_Signal_Cb cb, const void *cb_data) EINA_ARG_NONNULL(1); + +EAPI Eldbus_Signal_Handler *eldbus_object_manager_interfaces_removed(Eldbus_Object *obj, Eldbus_Signal_Cb cb, const void *cb_data) EINA_ARG_NONNULL(1); + /** * @} */ -- -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk -- Gustavo Sverzut Barbieri -- Mobile: +55 (19) 9225-2202 Contact: http://www.gustavobarbieri.com.br/contact -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get().
On Tue, 3 Sep 2013 04:19:37 +1000 David Seikel onef...@gmail.com said: On Tue, 3 Sep 2013 02:52:14 +0900 (KST) ChunEon Park her...@naver.com wrote: There is no way to add resize callback to the object item at this moment. And sure, this api can be dangerous if app uses it incorrectly. C can be dangerous if app uses it incorrectly. It's well known for it in fact. B-) Safety is for high level languages. C is for people that want or need to get their hands on nasty low level details. I really don't think much effort should be spent on protecting C coders from themselves, at the expense of making it hard to do stuff. This is just a general principle though, I've not looked at the API in question. i used to think that... but in the past 4 years or so... reality has changed my mind on this. :) p.s. just to set the record - efl, even back to imlib2 and imlib2 has always had a habit of assuming programmer is dumb and pick up the pieces for them - that's why there was always a cache... assume programmer will be dumb and load 1 image 100 times, so go de-duplicate on load for them by matching file path keys etc. ... and keep images around for a bit in case needed again soon - this allows a certain amount of laziness for the programmer - early on that was me - to just be dumb and know the lib will be smart for them. but this is a different kind of protection. it's assuming a programmer is lazy and will do the lazy thing... so make up for it, but the core principle is the same - assume programmer will be bad and save them from themselves. :) -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/01: other async render issue - sync ALL rendering canvases, not just one
On Mon, 2 Sep 2013 11:27:16 -0300 Ulisses Furquim uliss...@gmail.com said: Raster, On Sat, Aug 31, 2013 at 1:31 AM, Carsten Haitzler ras...@rasterman.com wrote: On Fri, 30 Aug 2013 10:58:55 -0300 Ulisses Furquim uliss...@gmail.com said: Raster, On Fri, Aug 30, 2013 at 5:11 AM, Carsten Haitzler ras...@rasterman.com wrote: On Thu, 29 Aug 2013 10:26:50 -0300 Ulisses Furquim uliss...@gmail.com said: Raster, On Thu, Aug 29, 2013 at 9:18 AM, Carsten Haitzler - Enlightenment Git no-re...@enlightenment.org wrote: raster pushed a commit to branch master. commit 42a46214c4f9b35c0e1f5a84c56ea76ba2235eae Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Thu Aug 29 21:18:04 2013 +0900 other async render issue - sync ALL rendering canvases, not just one --- src/lib/evas/canvas/evas_render.c | 2 ++ src/lib/evas/common/evas_thread_render.c | 21 - src/lib/evas/include/evas_common_private.h | 4 +++- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index b04d606..4fbe9e2 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -2235,6 +2235,7 @@ _canvas_render_dump(Eo *eo_e EINA_UNUSED, void *_pd, va_list *list EINA_UNUSED) Evas_Public_Data *e = _pd; Evas_Layer *lay; + evas_thread_queue_block(); evas_render_rendering_wait(e); evas_cache_async_freeze(); This might deadlock. If the queue is no empty and we have there the commands for e then we'll wait forever in _rendering_wait() in the main thread and the render thread will sleep forever trying to acquire the evas_thread_block_lock. Right? fixed. i didnt notice evas-rendering was set in evas_render as opposed to the rendering handle in the async thread. :) Well, yes, your change solves the deadlock. But I want to know what you want, really. Do you want a call to sync all canvases? This lock is not doing that. We'd need to wait all canvases rendering flags to be set to false and then return. This way we wouldn't have any pending commands in the render thread. in doing the async rendering the code to dump data was totally disabled. image data with refcounts 0 were now never dumped. why? why fix for i have a background thread still using that data to render while my mainloop is dumping. the wait for evas to finish waits for the GIVEN evas to finish... ONLY that one. but the background async renderer may march on to the NEXT canvas wanting a render in the queue and it doesn't wait for that. it continues and we just now dumped images from memory it needs. as the load data is done before the async renderer begins and it assumes data is there and ready, so this block basically forces the dump cal to wait for the async renderer to finish going through ALL queued rendering so far - not just once canvas, but all of them, since its a mutex lock around that block of code. this then allows all image data to be dumped from memory (even refcount 0) which is what the original intent and code was doing. now it's safe and any new renders come from the mainloop afte the dump and they can/will re-load data from files if needed for the async renderer to work properly. no - it's not pretty, but it fixed the dump functionality. This problem is now hard to reproduce but we still have a race with your fix. That lock doesn't guarantee what you want. If you happen to acquire the lock in the main thread just before the render thread tries to acquire it then after you clean up and release the lock the render thread will acquire it and we have a problem. Even though still difficult to happen this race is more prone to happen if the canvas you passed to _rendering_wait() is not rendering at that moment. Moreover, I don't like this lock in the render thread and being able to block/unblock it. It's a deadlock wanting to happen. I'll see what I can do here but we need a proper sync all canvases function. It should be simple if we can just wait on the rendering flags for all canvases. that was my other option for the fix. but then i'd have to track a list of all canvases etc. etc. so this was was simpler. :) i was taking the view that since it is the mainloop that triggers the render and also does the dump - any rendering will have been triggered long before this. we could add a counter to the cond wakeups. ie if mainloop issues a cond wakeup, reander thread needs to decrement it when its done and back waiting (another lock plus counter). then we lock+unlock (to force a big sleeping block if rendering is busy) and just check counter is 0, since mainloop is the only one that ++'s the counter it can only go down now... until it hits 0. - if not we have a race -- - Codito, ergo sum - I
Re: [E-devel] [EGIT] [core/efl] master 01/01: other async render issue - sync ALL rendering canvases, not just one
Raster, On Mon, Sep 2, 2013 at 8:19 PM, Carsten Haitzler ras...@rasterman.com wrote: On Mon, 2 Sep 2013 11:27:16 -0300 Ulisses Furquim uliss...@gmail.com said: Raster, On Sat, Aug 31, 2013 at 1:31 AM, Carsten Haitzler ras...@rasterman.com wrote: On Fri, 30 Aug 2013 10:58:55 -0300 Ulisses Furquim uliss...@gmail.com said: Raster, On Fri, Aug 30, 2013 at 5:11 AM, Carsten Haitzler ras...@rasterman.com wrote: On Thu, 29 Aug 2013 10:26:50 -0300 Ulisses Furquim uliss...@gmail.com said: Raster, On Thu, Aug 29, 2013 at 9:18 AM, Carsten Haitzler - Enlightenment Git no-re...@enlightenment.org wrote: raster pushed a commit to branch master. commit 42a46214c4f9b35c0e1f5a84c56ea76ba2235eae Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Thu Aug 29 21:18:04 2013 +0900 other async render issue - sync ALL rendering canvases, not just one --- src/lib/evas/canvas/evas_render.c | 2 ++ src/lib/evas/common/evas_thread_render.c | 21 - src/lib/evas/include/evas_common_private.h | 4 +++- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index b04d606..4fbe9e2 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -2235,6 +2235,7 @@ _canvas_render_dump(Eo *eo_e EINA_UNUSED, void *_pd, va_list *list EINA_UNUSED) Evas_Public_Data *e = _pd; Evas_Layer *lay; + evas_thread_queue_block(); evas_render_rendering_wait(e); evas_cache_async_freeze(); This might deadlock. If the queue is no empty and we have there the commands for e then we'll wait forever in _rendering_wait() in the main thread and the render thread will sleep forever trying to acquire the evas_thread_block_lock. Right? fixed. i didnt notice evas-rendering was set in evas_render as opposed to the rendering handle in the async thread. :) Well, yes, your change solves the deadlock. But I want to know what you want, really. Do you want a call to sync all canvases? This lock is not doing that. We'd need to wait all canvases rendering flags to be set to false and then return. This way we wouldn't have any pending commands in the render thread. in doing the async rendering the code to dump data was totally disabled. image data with refcounts 0 were now never dumped. why? why fix for i have a background thread still using that data to render while my mainloop is dumping. the wait for evas to finish waits for the GIVEN evas to finish... ONLY that one. but the background async renderer may march on to the NEXT canvas wanting a render in the queue and it doesn't wait for that. it continues and we just now dumped images from memory it needs. as the load data is done before the async renderer begins and it assumes data is there and ready, so this block basically forces the dump cal to wait for the async renderer to finish going through ALL queued rendering so far - not just once canvas, but all of them, since its a mutex lock around that block of code. this then allows all image data to be dumped from memory (even refcount 0) which is what the original intent and code was doing. now it's safe and any new renders come from the mainloop afte the dump and they can/will re-load data from files if needed for the async renderer to work properly. no - it's not pretty, but it fixed the dump functionality. This problem is now hard to reproduce but we still have a race with your fix. That lock doesn't guarantee what you want. If you happen to acquire the lock in the main thread just before the render thread tries to acquire it then after you clean up and release the lock the render thread will acquire it and we have a problem. Even though still difficult to happen this race is more prone to happen if the canvas you passed to _rendering_wait() is not rendering at that moment. Moreover, I don't like this lock in the render thread and being able to block/unblock it. It's a deadlock wanting to happen. I'll see what I can do here but we need a proper sync all canvases function. It should be simple if we can just wait on the rendering flags for all canvases. that was my other option for the fix. but then i'd have to track a list of all canvases etc. etc. so this was was simpler. :) i was taking the view that since it is the mainloop that triggers the render and also does the dump - any rendering will have been triggered long before this. we could add a counter to the cond wakeups. ie if mainloop issues a cond wakeup, reander thread needs to decrement it when its done and back waiting (another lock plus counter). then we lock+unlock (to force a big sleeping block if rendering is busy) and just check counter is 0, since mainloop is the only one that ++'s the counter it can
Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get().
On Tue, 3 Sep 2013 08:24:59 +0900 Carsten Haitzler (The Rasterman) ras...@rasterman.com wrote: On Tue, 3 Sep 2013 04:19:37 +1000 David Seikel onef...@gmail.com said: On Tue, 3 Sep 2013 02:52:14 +0900 (KST) ChunEon Park her...@naver.com wrote: There is no way to add resize callback to the object item at this moment. And sure, this api can be dangerous if app uses it incorrectly. C can be dangerous if app uses it incorrectly. It's well known for it in fact. B-) Safety is for high level languages. C is for people that want or need to get their hands on nasty low level details. I really don't think much effort should be spent on protecting C coders from themselves, at the expense of making it hard to do stuff. This is just a general principle though, I've not looked at the API in question. i used to think that... but in the past 4 years or so... reality has changed my mind on this. :) p.s. just to set the record - efl, even back to imlib2 and imlib2 has always had a habit of assuming programmer is dumb and pick up the pieces for them - that's why there was always a cache... assume programmer will be dumb and load 1 image 100 times, so go de-duplicate on load for them by matching file path keys etc. ... and keep images around for a bit in case needed again soon - this allows a certain amount of laziness for the programmer - early on that was me - to just be dumb and know the lib will be smart for them. but this is a different kind of protection. it's assuming a programmer is lazy and will do the lazy thing... so make up for it, but the core principle is the same - assume programmer will be bad and save them from themselves. :) So long as you don't get in the way of the good programmers, coz that's just annoying. :-P -- A big old stinking pile of genius that no one wants coz there are too many silver coated monkeys in the world. signature.asc Description: PGP signature -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get().
Totally agree with Mike and Tom. I have even asked for this more than once, got the It was decided that elementary wouldn't expose the object answer, and had to work around this through other methods. Now it just gets in without discussions. -1 for changing this without discussion. On Mon, Sep 2, 2013 at 6:20 AM, Tom Hacohen tom.haco...@samsung.com wrote: I have to side with Mike here. Both the decision process and the solution smell badly. Worse than Mike's tuna breakfasts. -- Tom. On 02/09/13 09:48, ChunEon Park wrote: If they know what they are doing exactly, then it won' t be problem. This gives the applications a chance to decorate their appilcation easily. -Regards, Hermet- -Original Message- From: Michael Blumenkrantzmichael.blumenkra...@gmail.com To: Enlightenment developer listenlightenment-devel@lists.sourceforge.net; Cc: Sent: 2013-09-02 (월) 17:29:41 Subject: Re: [E-devel] [EGIT] [core/elementary] master 01/01: elementary/widget - introduce elm_object_item_object_get(). so wait a minute...everyone fights against this for literally over a year, and now it gets in without further discussion because applications require it seriously? On Mon, Sep 2, 2013 at 9:25 AM, ChunEon Park - Enlightenment Git no-re...@enlightenment.org wrote: hermet pushed a commit to branch master. commit ddc3cf80ce0a50a9161fcb212d3414f5d7b5898c Author: ChunEon Park hermet@hermet.pe.kr Date: Mon Sep 2 17:19:36 2013 +0900 elementary/widget - introduce elm_object_item_object_get(). We've countered application's requirements multiple times to they have the object handle from the elm_object_item. Now we introduce it for their convenient but they should use it carefully. --- ChangeLog 6 +- NEWS1 + src/lib/elm_main.c 6 ++ src/lib/elm_object_item.h 19 +++ src/lib/elm_removed.h 15 +-- src/lib/elm_widget.c7 +++ src/lib/elm_widget.h1 + 7 files changed, 40 insertions(+), 15 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4c59fdc..1695f01 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1578,6 +1578,10 @@ * Gengrid: implement selectraise feature. -2013-08-28 DAniel Juyung Seo (SeoZ) +2013-08-28 Daniel Juyung Seo (SeoZ) * Bg: Add bg reset feature. + +2013-09-02 ChunEon Park (Hermet) + +* Widget: Introduce elm_object_item_object_get() API. diff --git a/NEWS b/NEWS index c2056f3..c6046bd 100644 --- a/NEWS +++ b/NEWS @@ -85,6 +85,7 @@ Additions: * Add elm_win_focus_highlight_animate_set/get(). * Add selectraise feature to gengrid. * Add bg reset feature. + * Add elm_object_item_object_get(). Improvements: diff --git a/src/lib/elm_main.c b/src/lib/elm_main.c index 2fa2ea0..9f138b2 100644 --- a/src/lib/elm_main.c +++ b/src/lib/elm_main.c @@ -1859,3 +1859,9 @@ elm_object_item_cursor_engine_only_get(const Elm_Object_Item *it) { return elm_widget_item_cursor_engine_only_get(it); } + +EAPI const Evas_Object * +elm_object_item_object_get(const Elm_Object_Item *it) +{ + return _elm_widget_item_object_get((Elm_Widget_Item*)it); +} diff --git a/src/lib/elm_object_item.h b/src/lib/elm_object_item.h index 8a0ccde..f256a63 100644 --- a/src/lib/elm_object_item.h +++ b/src/lib/elm_object_item.h @@ -34,6 +34,25 @@ typedef void (*Elm_Object_Item_Signal_Cb)(void *data, Elm_Objec EAPI Evas_Object *elm_object_item_widget_get(const Elm_Object_Item *it); /** + * Get the object item's internal object handle. + * + * @param it The Elementary object item + * @return The Internal object of the object item. + * + * @note This function should only be used if you really need to refer the + * internal object's properties (i.e geometry). Since the object items are + * managed/controlled by the widget, you should not modify the object directly + * nor you should not treat the object without validation. + * + * Some widget items may return @c NULL for this API if the items @p are not + * based on the evas object. + * + * @since 1.8 + * @ingroup General + */ +EAPI const Evas_Object *elm_object_item_object_get(const Elm_Object_Item *it); + +/** * Set a content of an object item * * @param it The Elementary object item diff --git a/src/lib/elm_removed.h b/src/lib/elm_removed.h index 416726a..59b982f 100644 --- a/src/lib/elm_removed.h +++ b/src/lib/elm_removed.h @@ -490,19 +490,6 @@ EINA_DEPRECATED EAPI Elm_Gen_Item *elm_gen_item_prev_get(const Elm_Gen_Item *it) EINA_DEPRECATED EAPI Evas_Object *elm_gen_item_widget_get(const Elm_Gen_Item *it); /** - * Get the widget object's handle which contains a given item - * - * @param it The Elementary object item - * @return The widget object - * - * @note This returns the widget object
Re: [E-devel] [EGIT] [core/efl] master 01/01: evas: focus_set can fail... internally handle that case properly now.
You are right and it also simplify the code of focus_set. Fixed and pushed ! On Mon, Sep 2, 2013 at 3:49 PM, Gustavo Sverzut Barbieri barbi...@gmail.com wrote: isn't better to just check the focus object afterwards? This focus_set() signature became strange :-/ On Mon, Sep 2, 2013 at 8:29 AM, Cedric Bail - Enlightenment Git no-re...@enlightenment.org wrote: cedric pushed a commit to branch master. commit a007a3af1398e66ba90eae005ccbf31dfb81788a Author: Cedric Bail cedric.b...@samsung.com Date: Mon Sep 2 20:28:23 2013 +0900 evas: focus_set can fail... internally handle that case properly now. --- src/lib/evas/Evas_Eo.h | 2 +- src/lib/evas/canvas/evas_focus.c | 21 - 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/lib/evas/Evas_Eo.h b/src/lib/evas/Evas_Eo.h index e4b83e8..fc61c0a 100644 --- a/src/lib/evas/Evas_Eo.h +++ b/src/lib/evas/Evas_Eo.h @@ -5232,7 +5232,7 @@ enum * * @see evas_object_focus_set */ -#define evas_obj_focus_set(focus) EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_FOCUS_SET), EO_TYPECHECK(Eina_Bool, focus) +#define evas_obj_focus_set(focus, succeed) EVAS_OBJ_ID(EVAS_OBJ_SUB_ID_FOCUS_SET), EO_TYPECHECK(Eina_Bool, focus), EO_TYPECHECK(Eina_Bool *, succeed) /** * @def evas_obj_focus_get diff --git a/src/lib/evas/canvas/evas_focus.c b/src/lib/evas/canvas/evas_focus.c index 757f585..5294ee6 100644 --- a/src/lib/evas/canvas/evas_focus.c +++ b/src/lib/evas/canvas/evas_focus.c @@ -10,29 +10,36 @@ EAPI void evas_object_focus_set(Evas_Object *eo_obj, Eina_Bool focus) { - eo_do(eo_obj, evas_obj_focus_set(focus)); + eo_do(eo_obj, evas_obj_focus_set(focus, NULL)); } void _focus_set(Eo *eo_obj, void *_pd, va_list *list) { Eina_Bool focus = va_arg(*list, int); + Eina_Bool *r = va_arg(*list, Eina_Bool *); int event_id = 0; MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ); return; MAGIC_CHECK_END(); - Evas_Object_Protected_Data *obj = _pd; + Evas_Object_Protected_Data *obj = _pd; + + if (r) *r = EINA_FALSE; _evas_object_event_new(); event_id = _evas_event_counter; - if (obj-focused == focus) goto end; + if (obj-focused == focus) goto success_end; if (evas_object_intercept_call_focus_set(eo_obj, obj, focus)) goto end; if (focus) { +Eina_Bool success = EINA_TRUE; + if (obj-layer-evas-focused) - evas_object_focus_set(obj-layer-evas-focused, 0); + eo_do(obj-layer-evas-focused, +evas_obj_focus_set(0, success)); +if (!success) goto end; obj-focused = 1; obj-layer-evas-focused = eo_obj; evas_object_event_callback_call(eo_obj, obj, EVAS_CALLBACK_FOCUS_IN, NULL, event_id); @@ -47,7 +54,11 @@ _focus_set(Eo *eo_obj, void *_pd, va_list *list) evas_event_callback_call(obj-layer-evas-evas, EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT, eo_obj); } - end: + + success_end: + if (r) *r = EINA_TRUE; + + end: _evas_post_event_callback_call(obj-layer-evas-evas, obj-layer-evas); } -- -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk -- Gustavo Sverzut Barbieri -- Mobile: +55 (19) 9225-2202 Contact: http://www.gustavobarbieri.com.br/contact -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Cedric BAIL -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net
Re: [E-devel] [EGIT] [core/efl] master 04/04: eldbus: Add timeout message error as a macro
On Mon, Sep 2, 2013 at 4:16 PM, José Roberto de Souza - Enlightenment Git no-re...@enlightenment.org wrote: zehortigoza pushed a commit to branch master. commit bcba4779c8df1efe950b5f4cc1075187ab365a57 Author: José Roberto de Souza jose.so...@intel.com Date: Fri Aug 30 10:52:04 2013 -0300 eldbus: Add timeout message error as a macro --- src/lib/eldbus/Eldbus.h | 1 + src/lib/eldbus/eldbus_pending.c | 8 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/lib/eldbus/Eldbus.h b/src/lib/eldbus/Eldbus.h index e49061d..fe05f2e 100644 --- a/src/lib/eldbus/Eldbus.h +++ b/src/lib/eldbus/Eldbus.h @@ -126,6 +126,7 @@ extern C { #define ELDBUS_FDO_INTERFACE_INTROSPECTABLE org.freedesktop.DBus.Introspectable #define ELDBUS_FDO_INTEFACE_PEER org.freedesktop.DBus.Peer #define ELDBUS_ERROR_PENDING_CANCELED org.enlightenment.DBus.Canceled +#define ELDBUS_ERROR_PENDING_TIMEOUT org.enlightenment.DBus.Timeout I wonder why we are defining this in a public header with the org.enlightenment namespace when there's a fdo one. typedef struct _Eldbus_Version { diff --git a/src/lib/eldbus/eldbus_pending.c b/src/lib/eldbus/eldbus_pending.c index 4174ac1..bf561bb 100644 --- a/src/lib/eldbus/eldbus_pending.c +++ b/src/lib/eldbus/eldbus_pending.c @@ -51,8 +51,8 @@ cb_pending(DBusPendingCall *dbus_pending, void *user_data) INF(timeout to pending %p, pending); dbus_pending_call_cancel(dbus_pending); msg = eldbus_message_error_new(pending-msg_sent, - org.enlightenment.DBus.Timeout, - This call was not completed.); + ELDBUS_ERROR_PENDING_TIMEOUT, + This call was not completed in time.); And here I think we would be better off using org.freedesktop.DBus.Error.NoReply instead of timeout. I think the timeout would be used by an *application* when the operation it's doing timed out. Lucas De Marchi -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] eet serialization questions
Hello I have some questions concerning eet :) 1) I have a struct like this: struct Vec3{ double x; double y; double ; } struct Object { Vec3 position; Vec3 rotation; } I want to serialize Object. I have an eet descriptor for Vec3 that I want to use but EET_DATA_DESCRIPTOR_ADD_SUB takes a pointer, right? I want to avoid using EET_DATA_DESCRIPTOR_ADD_BASIC with position.x, position.y, position.z and use the eet descriptor for vec3. Is it possible to handle this use case? 2) I have: struct Entity{ int id; } struct Camera{ Entity* target; } In this case, when I serialize Camera, I want to save a reference to the target like its id in my application. I guess that would involve calling a function that gets the id... Is it something that stays in the scope of eet or I'd better make my own stuff? -- http://indefini.org -- Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel