Removes the event callback list within _smart_del. The current
implementation does not care about the node data resulting on
memory leaks.
Here follows the valgrind log:
16 bytes in 1 blocks are definitely lost in loss record 11 of 168
at 0x4C29DB4: calloc (in
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x522EC34: elm_widget_event_callback_add (elm_widget.c:1996)
by 0x5A7AA2B: _edje_emit_handle (edje_program.c:1322)
by 0x5A766B6: _edje_message_queue_process (edje_message_queue.c:764)
by 0x5A76856: _edje_job (edje_message_queue.c:160)
by 0x628C02A: _ecore_job_event_handler (ecore_job.c:115)
by 0x6288C1F: _ecore_event_call (ecore_private.h:319)
by 0x628D09B: _ecore_main_loop_iterate_internal (ecore_main.c:1814)
by 0x628D566: ecore_main_loop_begin (ecore_main.c:931)
by 0x4023B0: elm_main (test.c:198)
Patch by Leandro Dorileo <dorileo@profusion.mobi>
SVN revision: 72498
new schema.
els_icon smart object was brought to be the base of the image widget,
in the form of an image class.
An elm icon is now a elm image, with a little more on top of it.
An elm photo is a now base widget aggregating an icon.
Toolbar's internal usage of the former els_icon is now changed to
icons, instead.
Some naviframe instantiations were set to enable events during
transitions, because this code is buggy and my chages exposed the
problem. It will be fixed as soon as I get to port Naviframe.
SVN revision: 71429
widget hierarchy.
Win inherits directly from Elm_Widget_Smart_Class, while inwin is now
an elm layout.
Note that elm_widget_sub_object_list_get(), which was an unecessary
hack only used on win, was killed.
SVN revision: 70717
class: elm_layout.
This will be, besides the codebase for the elm_layout widget, a common
base for all other widgets which got an edje layout as a basis for
their decoration.
From now on, all elm_layout_* namespaced fuctions will function
on objects inheriting from this base:
- elm_layout_content_set
- elm_layout_content_get
- elm_layout_content_unset
- elm_layout_text_set
- elm_layout_text_get
(recovered from deprecated header -> not anymore)
- elm_layout_sizing_eval
- elm_layout_data_get
- elm_layout_edje_get
- elm_layout_file_set
- elm_layout_theme_set
- elm_layout_box_append
- elm_layout_box_prepend
- elm_layout_box_insert_before
- elm_layout_box_insert_at
- elm_layout_box_remove
- elm_layout_box_remove_all
- elm_layout_table_pack
- elm_layout_table_unpack
- elm_layout_table_clear
Three missing functions on layouts were added, then:
- elm_layout_signal_emit
- elm_layout_signal_callback_add
- elm_layout_signal_callback_del
Naturally, the elm_object_ namespaced counterparts of those will also
function (they will be deprecated on the future).
SVN revision: 70708
resize objects to new schema.
sub-object-{add,del} new class functions got their bodies in. One by
one, the old elm_widget_ namespaced calls to them got to be migrated
to the class calls.
A resize object is now a sub-object, too. This should be like that
from the start -- we share code and avoid callback duplication -- what
leaded to a plethora of bugs.
SVN revision: 70705
properly by real widgets.
I'm also creating a *compatibility* class on top of it, which extends
the old (unique) one to its old components, so that everything goes
unnoticed for the widgets.
Next, we'll be accessing class functions for widget hooks *on the base
class*, which will be proxied back to the instance ones.
Then, one by one the widgets will be translated to a proper
hierarchical smart class parentage, making extensibility and reuse
much better.
Last, but not least, since we'll be moving these hooks to the class,
where (almost) everything is a function, let's adapt to the future --
take away the "_func" suffix from them.
NB: there is ONE hook and associated data which was kept on the base,
for now: "show_region" stuff. I did that because scrollers need that
in order to work, right now. Keep in mind, though, the scrollers will
be reworked, so that fields ought to be changed soon, too.
SVN revision: 70704
using elm_widget_focus_direction_go function, focus will be moved from
the current focused object to the near object in one direction.
Direction can be set by degree(for easy usability). Degree changes
clockwise, i.e. 0 means UP, 90 means RIGHT, 180 means DOWN, and 270
means LEFT. You can select any direction by changing this degree.
SVN revision: 70681
widget hierarchy.
Win inherits directly from Elm_Widget_Smart_Class, while inwin is now
an elm layout.
Note that elm_widget_sub_object_list_get(), which was an unecessary
hack only used on win, was killed.
SVN revision: 70640
class: elm_layout.
This will be, besides the codebase for the elm_layout widget, a common
base for all other widgets which got an edje layout as a basis for
their decoration.
From now on, all elm_layout_* namespaced fuctions will function
on objects inheriting from this base:
- elm_layout_content_set
- elm_layout_content_get
- elm_layout_content_unset
- elm_layout_text_set
- elm_layout_text_get
(recovered from deprecated header -> not anymore)
- elm_layout_sizing_eval
- elm_layout_data_get
- elm_layout_edje_get
- elm_layout_file_set
- elm_layout_theme_set
- elm_layout_box_append
- elm_layout_box_prepend
- elm_layout_box_insert_before
- elm_layout_box_insert_at
- elm_layout_box_remove
- elm_layout_box_remove_all
- elm_layout_table_pack
- elm_layout_table_unpack
- elm_layout_table_clear
Three missing functions on layouts were added, then:
- elm_layout_signal_emit
- elm_layout_signal_callback_add
- elm_layout_signal_callback_del
Naturally, the elm_object_ namespaced counterparts of those will also
function (they will be deprecated on the future).
SVN revision: 70631
resize objects to new schema.
sub-object-{add,del} new class functions got their bodies in. One by
one, the old elm_widget_ namespaced calls to them got to be migrated
to the class calls.
A resize object is now a sub-object, too. This should be like that
from the start -- we share code and avoid callback duplication -- what
leaded to a plethora of bugs.
SVN revision: 70628
properly by real widgets.
I'm also creating a *compatibility* class on top of it, which extends
the old (unique) one to its old components, so that everything goes
unnoticed for the widgets.
Next, we'll be accessing class functions for widget hooks *on the base
class*, which will be proxied back to the instance ones.
Then, one by one the widgets will be translated to a proper
hierarchical smart class parentage, making extensibility and reuse
much better.
Last, but not least, since we'll be moving these hooks to the class,
where (almost) everything is a function, let's adapt to the future --
take away the "_func" suffix from them.
NB: there is ONE hook and associated data which was kept on the base,
for now: "show_region" stuff. I did that because scrollers need that
in order to work, right now. Keep in mind, though, the scrollers will
be reworked, so that fields ought to be changed soon, too.
SVN revision: 70627
verification. Patch by Taehwan Kim <ohpowel@gmail.com>
On Tue, Apr 10, 2012 at 5:37 PM, Bluezery <ohpowel@gmail.com> wrote:
> Hello,
>
> Currently, elm_widget_sub_object_add() does not check if obj and sobj
> are same object.
> Actually it is a user problem if user add object itself as it's sub
object.
> But I think that this checking is needed and it is better to give
> error logs to users. Because it causes infinite loop and it is hart
> to debugging. :(
>
> Thanks.
SVN revision: 69995
Current Issue:
Currently when we add a widget to window as a sub-object, e.g.
elm_notify_add(win) which internally calls elm_widget_sub_object_add
then the focus chain using <TAB> includes only
the first focusable subitem of the widget, not all.
Whereas with elm_win_resize_object_add, it works fine and cycles to
all focusable sub-items of the widget.
Reason:
The reason is that we are appending sub-object to the list in
elm_win which is used for focus chain, only in case of
elm_win_resize_object_add.
Change Description:
Added a new API: EAPI Eina_List
*elm_widget_sub_object_list_get(const Evas_Object *obj);
This API returns the list of sub-objects of an elementary widget
(sd->subobjs) where sd is Smart_Data pointer obtainted using
elm_widget_smart_data_get(obj).
We have used this API in elm_win for focus_next_hook implementation.
Signed-Off-By: RAJEEV RANJAN<rajeev.r>@samsumg.com>
SVN revision: 69943
Now it returns the bool value to free the widget item.
Some widget items(i,e genlist) should not be deleted directly when elm_object_item_del is called.
So, if the pre_hook function returns EINA_FALSE, then the widget item will not be deleted.
SVN revision: 67565
win_resize_object_add(win, subobj);
object_content_set(otherobj, subobj);
object_del(win);
ERR<21326>:elm-externals elm_widget.c:978 elm_widget_sub_object_del() removing sub object 0xdeadbeef (some_stupid_widget) from parent 0xRRRRRRRR (win), but elm-parent is different 0xFUCKTHIS (NOT EVEN A WIDGET)!
SVN revision: 65884
Firstly, for efficiency, we add a Job to calculate the whole canvas. Jobs implicitly coallate work per event loop.
Calcuation of object can be a reasonably intensive set of work.
In the job callback we calculate the whole canvas with evas_smart_objects_calculate() to ensure that all objects have the correct geometry at this point.
Reviewed by Raster.
SVN revision: 65509
Besides we free the object pointed by esd, we NEED the right pointer's
value to unregister the signal with
edje_object_signal_callback_del_full().
SVN revision: 64415
First things first, I'm not sure I'm setting the right variable on
the setlocale() call, so someone more knowledgeable can look at it and fix it.
How this works, you say? Just like elm_object_text_part_set(), except now it
will pass the string given through dgettext() with the given domain (NULL
means it uses whatever the app set with textdomain()), and when changing
language with elm_language_set(), it will re-set the strings with a new
translation.
SVN revision: 64179
Hi all,
I found few memory related issues in elementary package when performed static analysis on it.
These issues include:
Array indices getting out of bounds, freed memory address being passed to a function as parameter, memory not getting cleaned up because of earlier return statement.
Issues details:
1. In elm_widget.c inside function elm_widget_signal_callback_del(), it is possible that freed memory address esd is passed to the sd->callback_del_func(). I think it should be data, not esd.
Moreover what if the callback frees memory for data, then the other problem is that the return value is data from the function elm_widget_signal_callback_del() which in my opinion can be a problem.
2. Inside directory src/edje_externals for files elm_genlist.c, elm_notify.c, elm_list.c, elm_thumb.c and elm_map.c, array indices can go beyound bounary.
sizeof() operator for an array of character pointers will return [number of elements in the array * size of (char*)], basically 4 times the number of elements which has been taken care in assertion inside src/edje_extenarnals
while performing assertion but has been missed in the next statement in the loop condition.
3. In file src/lib/elm_config.c inside function _elm_config_profiles_list, freeing of file iterator has been missed out.
Please review the attached patch and let me know your opinion.
Thanks.
Regards,
Rajeev
SVN revision: 63550
[E-devel] [patch] elm_widget - elm_widget_type_unregister
Dear developers.
This patch is adding a api to elm_widget.
In elm_widget, there is an api to register widget type to elementary's own
list.
However it doesn't provide unregister api.
So I made this patch.
Most of case, it's not needed. But in some case, it's useful.
(such as elm objects in DSO, if a DSO unloaded, registered widtype is
invalidated)
Thank you
SVN revision: 62099
But wonder, is it really needed the auto casting macros?
Why user not just use the elm_widget_item directly
and make their item data structures dangled to elm_widget_item just like smart object?
SVN revision: 62079
these bad boys are so big and pixelthirsty they can't be constrained by a regular canvas or window, they use OVERRIDE REDIRECT WINDOWS. not only that, they totally exceed the boundaries of what a reasonable function name length could be. 50 character function name limit? puh-leeze. these guys don't care what side of the screen they're even on so long as they get to wade into the thick of the action and block out each and every crappy non-efl application behind them. and that's when they're in good moods. you don't even want to know what happens when you piss these guys off.
SVN revision: 61735
elm_widget_show_region_set to set the show region always. Earlier, the
API expects some change, to redo the job. Patch by Prince Kumar Dubey
<prince.dubey@samsung.com>
------- Original Message -------
Sender : PRINCE KUMAR DUBEY<prince.dubey@samsung.com>
Date : 2011-05-20 17:41 (GMT+09:00)
Title : [E-devel] [Patch] elm_conform patch
Hi Mr Seo,
Can you please send the attached patch of elm_conformant to EFL ope-src community.
Change Log:
Eina_Bool parameter is added to API elm_widget_show_region_set to set
the show region always. Earlier, the API expects some change, to redo the job.
This enhancement is already approved by raster in gerrit review.
Thank you.
Regards,
Prince
SVN revision: 61148
Subject: [E-devel] [Patch] elm_widget_focus_steal should be executed
only with "can_focus" object.
I think elm_widget_focus_steal function should be executed only with
"can_focus" widget object.
("Cannot_focus" object has no right to steal focus from others !!)
SVN revision: 59733
Subject: [E-devel] [Patch] Focus issue in elm_widget.c
I've checked there were some focus problems when an object is hidden.
So I made patch for that ~
SVN revision: 57898
After a widget is created(obj = elm_widget_add), the object does not have any parent object.
However if user call elm_widget_sub_object_add(parent, obj), then CRI will be happened.
So the exception should be there.
SVN revision: 57667
* Added elm_mirrored_get/set to set the system mirrored mode
* Added elm_widget_mirrored/get/set to set each widget's mirrored mode.
* Added code to set the system mirrored mode from translations to elementary and added translations for all the rtl languages. (a trick to load according to locale).
* Future commits will include specific widgets mirrored mode handling.
Work by Aharon Hillel and Tom Hacohen.
SVN revision: 56673
Subject: Re: [E-devel] [PATCH] elm widget: make show_region_set
function call all region show functions set by parents
I'm trying to send several patches that I've changed.
This is just the beginning of my patch rushes..
'elm_widget_show_region_set' function works fine in the simple case (any
widget inside one scroller) however, in the complex parent-child case
(such
as entry in the box in the horizontal scroller in the layout in the
vertical
scroller) it doesn't work correctly because all show region functions
set by
scrollers are not called.
So I changed it to call all show region functions set by its parents
widgets
if exist.
Please review the attached patch file and feel free to give me any
kind of
feedback.
SVN revision: 55592
elm_widget_disabled_set was calling focus_jump and it broke the focus tree.
Now, using focus_cycle to pass focus to next object.
Added test to disable focused button in test_focus.
SVN revision: 55408
add.del items will try and stick to viewing an acnhor item. it also
handles wrapping text properly now if style has such a thing - a test
style with that is there too (message style) for now - found isasue in
edje with textblock styles - doesnt change on state change. but anyway
- re-wrapping text works.. and it progressively processes the genlist
blocks to re-calc sizes etc. etc. so you dont block and so-on. i5ts
not too shabby. as for that - store has a generic struct type reader
now and is being tested... and get rid of unused var.
SVN revision: 54738
they CAN be focused :) see conform 2 test. focuse the entry in the
pager then dlete the pager page (pop). before focus vanished. now it
goes back to the top entry as you'd expect.
SVN revision: 54486
There's still a little bugger that can be noticed with the Scroller 2 test
and elm_conform still needs to handle this as scroller does.
SVN revision: 53778
In Window show, the focus is given to first focusable object, or to
window if no exist focusable object. So, suggest create the widgets
before show the window.
If pager is focused, it give the focus to top page in each promote.
SVN revision: 53733
Added set, get, unset, prepend and append (relative or not).
Set - overwrite the custom chain
Unset - Delete the custom chain
Get- Return the custom chain
Append - append after the relative object or in the end
Prepend - prepend before the relative object or in the start
SVN revision: 53115