First on_focus call should consider focus highlight enable status and
do the different job according to that.
This can be tested in "genlist 7" and "genlist focus" examples in
elementary_test.
Summary:
Issue: As entire scroller edje co-ordinates was being taken instead of the actual viewport value,
if in scroller edje more parts are added apart from just "elm.swallow.content", then the viewport value
set will be wrong. hence the selection handlers will not hide when they have to hide.
solution: Instead of taking scroller edje's geometry, get the actual viewport values.
To get viewport x,y a new scrollable interface is also added.
signed-off by: Shilpa Singh <shilpa.singh@samsung.com>
@fix
Test Plan: Selection handlers have to hide correctly when the text is scrolled in a scrolled entry, if the scroller edc of entry has more parts added other than elm.swallow.content, then when we scroll the selection handlers are not hidden correctly.
Reviewers: jaehwan, woohyun, seoz, Hermet, raster
CC: govi, rajeshps, thiepha
Differential Revision: https://phab.enlightenment.org/D674
we can prevent to handle the widget events from the widget infra,
if the object is disabled.
conceptually, disabled object should not be interacted to user input(key, mouse)
codes.
- Added a check for focus highlight enable status before calling focus
signal to edje.
- Used obj instead of WIDGET(it) because that is used many times.
On smart_on_focus, genlist calls elm_object_item_focus_set. That API
internally calls _elm_widget_focus_highlight_start() but we need to call
this function once again because of the weird focus behavior.
Condition: enable focus highlight and focus highlight animation.
The first _elm_widget_focus_highlight_start() triggers
_elm_win_focus_highlight_simple_setup, and second call triggers
_elm_win_focus_highlight_anim_setup. But the first call does not show
the focus highlight object properly.
Reproduction scenario:
1. elementary_test -> genlist focus
2. click an item
3. scroll the genlist and move the focused item away from the viewport.
4. move the mouse pointer to another window
5. move the mouse pointer to the genlist window back again.
6. focus highlight object is now shown correctly.
By the way, this bug will be hidden when the focus highlight never
scrolls away. I will add this feature soon.
event.
When you use mouse(touch) that triggers mouse up event, the
focus/selection movement is done by mouse up callback, so don't need to
handle on_focus event when mouse(touch) is used.
You can reproduce the bug by the following step.
1. launch elementary_test -> list focus, genlist focus, gengrid focus
2. focus an item (by touch, by key)
3. move focus to left button (by touch, by key)
4. click an another item (by touch)
5. previously focused item will be unfocused again even it was unfocused
at step #3/
Special thanks to Amitesh for the report.
Now it works so much better than before.
- Fixed the separate behavior between selected item and focused item.
- Fixed wrong focus set when genlist is focused first time by mouse.
- Fixed wrong scroll movement when the focus highlight is disabled.
- Item selection sets that item focused. So when an item is selected, do
not need to set the focus again.
- Fixed wrong call for _elm_genlist_item_content_focus_set on deleted
item.
Now, genlist does not autoscroll to last focused/selected item when the genlist
is focused. It tries to find the nearest visible item instead of the
last focused/selected item.
Due to Eolian auto-generation, legacy parameters are directly
transferred to Eo functions without conversion.
In this case, is_next was Eina_Bool in legacy and Eina_Bool * in Eo.
The logic code was expecting a pointer but was receiving a Eina_Bool.
The fix consists in giving the logic code the Eina_Bool instead of the
pointer.
@fix
- Changed wrong name alpha_bg to event_block_rect.
- Added more comments to the smart data variable.
- Changed wrong function name _tray_alpha_bg_create to
_event_block_rect_update.
Added one more internal variable to reduce unnecessary pointer
redirection too much.
Elm_Genlist_Smart_Data *sd is used many times in those functions but it
was always redirected from psd->wsd. I just cut down the step and made
the code more readable and consistent with other lines of code.
psd->wsd --> sd
Summary:
Implemented the following function
1. _item_unfocused
2. _item_focused
3. _item_focus_up
4. _item_focus_down
5. _item_focus_left : Currently this function return EINA_FALSE. It means focus will move out of genlist to the another left widget
6. _item_focus_right : Currently this function return EINA_FALSE. It means focus will move out of genlist to the right widget
7. _item_focus_set_hook
8. _item_focus_get_hook
9. _elm_genlist_focus_highlight_geometry_get
10. _elm_genlist_focused_item_get
11. Changes in the smart_event, smart_on_focus, pan_smart_calculate, mouse up callback.
Currently selected/focus logic are both present in the smart_event function and its
will be separate out.
Reviewers: seoz, woohyun
CC: singh.amitesh
Differential Revision: https://phab.enlightenment.org/D558
Conflicts:
src/lib/elm_genlist.c
_list/genlist_item_focus_set --> _list/genlist_item_content_focus_set.
These internal functions set the focus to the item's content objects,
not the item itself. So the name was wrong and very confusing.
Call the smart callback in the widget infra so that each widget don't need to hook the smart_translate only for the smart call.
This makes reducing duplicated code and supporting language,chagned from all widgets.
ecore_animator_del, and ecore_job_del.
As all efl public free apis get null as valid parameter, we do not need
to check null. I also removed some null check for other free apis which
were right next to timer/animator/job del. After this job code got
cleaner.
There are elm_widget_theme/theme_set/theme_get functions.
In Eolian these functions will be described as "theme" method and
"theme" property. There is clash here.
So add suffix "_apply" to Eo API for "elm_widget_theme".
Being annoyed by different types of eina critical macros - CRI, CRIT,
CRITICAL -, I concluded to unify them to one. Discussed on IRC and
finally, CRI was chosen to meet the consistency with other macros -
ERR, WRN, INF, DBG - in terms of the number of characters.
If there is any missing bits, please let me know.
not backporting because not sure if correct, but definitely a bug
also there's a similar issue where objects (I'm looking at you, elm_list) don't size until the first render, which causes the initial genlist calc sizes to be 100% wrong every time
Scenario:
1. Create elm_genlist.
2. Add some items to it.
3. Do not resize the genlist and leave it with width == 0.
PROPOSAL:
1. When the element is queued for recalculation check current width of
widget. If it is equal to 0 do not add idle enterer.
2. In smart callback on resize check if queue of items that need
recalculation is not empty and new width is not 0. In this situation
add idle enterer.
Summary: Changes in the _item_realize to decorate the item T576 test_genlist10
Reviewers: seoz, singh.amitesh
Differential Revision: https://phab.enlightenment.org/D358
If we're walking an item and it's deleted, the memory won't go away
immediately in _item_del_pre_hook() as would in _item_del(), then it's
not enough to remove ourselves from the reverse-relative list of the
item we were relative to, we also need to clean our own relative
pointer so we won't touch it later when the item is not being walked
anymore and _item_del() is called.
I was getting this annoying error with espionage application, opening
an interface of an object and then closing the window or selecting
another bus name (whatever would call elm_genlist_clear()).
During the clear process genlist will flag the next item as "walking"
so it's not gone when the current item dies (would happen if next item
is a subitem). The item would run _item_del_pre_hook() but not
_item_del(), but on the next loop iteration the next item would be the
current, then not walking anymore and during _item_del() it would
access it->item->rel which would point to the now-dead item.
Summary:
Some applications like file viewer allow multiple selection only with
Control key was pressed.
Reviewers: seoz, raster
Reviewed By: raster
Differential Revision: https://phab.enlightenment.org/D251
Conflicts:
ChangeLog
NEWS
Genlist will now emit the following signals to item view related to
their position in the whole list:
- elm,state,list,first: first item of the whole list
- elm,state,list,last: last item of the whole list
- elm,state,list,middle: any item that is not first or last.
- elm,state,list,single: when the item is the only element of list.
And the following related to a group (considering its given 'parent'):
- elm,state,group,first: first item of the group
- elm,state,group,last: last item of the group
- elm,state,group,middle: any item that is not first or last.
- elm,state,group,single: when the item is the only element of group.
Unlike odd/even the signals have an extra namespace "list" or "group"
to avoid conflicts with applications that may have declared these
signals themselves for other purposes.
With this patch one can implement easily something like this:
https://developer.apple.com/library/ios/documentation/userexperience/conceptual/tableview_iphone/Art/tv_grouped_style.jpg
stacking become a lot more complex when re-order mode was added, group
headers and more, so simple raise/lower wasn't enough, so this adds 2
stacking markers (rectangles) and objects are stacked above or below
these 2 markers. that basically provides 4 possible stacking slots
that are easy to address, and if you also still raise/lower you get 6
slots. use these markers for stacking so items go into a fixed
stacking layer when they stack around.
I splited ELM_SAFE_FREE refactoring patches. One commit per each file as recommended.
For the detail, please refer 3072dab12f12fe83fb5a628d15efd5cded11787f.
There are pros and cons but this
1. reduces human mistakes.
2. enhances readability.
3. enhances code quality.
4. removes future bug.
5. was adopted from enlightenment.
This is not all. I will work on enhancing elementary more and more.
Summary:
This patch applies automatic focus feature to elm_genlist and elm_list
containers.
Currently (prior to this patch), focusable widgets inside list items of both
containers receive focus by an explicit mouse click over them, and lose focus
when focus goes to someone else in the window.
This change also adds the ability to:
- focus by default on the first-from-right focusable widget upon items selection
- lose the focus when another item is selected (focused or not)
- move focus between focusable widgets inside the same item by left and right
arrow keys accordingly (up and down keys when elm_list is in horizontal mode)
Focus is supported for horizontal and vertical lists.
Tests have been added for genlists and lists to check focus feature.
This patch broke at least two stuffs:
1. item movement with key arrow
now up/down arrow scrolls genlist now move to upper/lower item.
2. item del routine.
item del callbacks are called twice LOL.
this also broke apps that use elm_fileselector_button which uses elm_genlist internally.
Once these are fixed and tested more, I will re-commit this.
This reverts commit cea8e755dbf9b062bb1e6d7a89fbf4c590b8f6b3.
flags.
This flags was used for deferring deletion of genlist items.
After deferred, items can be cleanup when _item_select() is called.
This flags was used for preventing crash when subitems are deleted right
after one item is deleted.
But this made genlist code too complicated and could hide internal
issues. One of the issues is incorrect use of EINA_INSTLIST_FOREACH (or
forloop). Because sub items can be deleted when one item is deleted, I
used whlie loop and EINA_INLIST_CONTAINER_GET(sd->items->last, xx) and
not defer the deletion. This has no problem evenif inlist sd->items is
changed inside the while-loop.
1. Do not need to print the same error message from all the widget codes.
2. Even though elm_widget_sub_object_add() can be used internally, there should be no error message at all.
Elm devs should fix it beforehand.
So it looks ok to print the error message in elm_widget_sub_object_add() to force elm devs to fix it.
3. Got additional code cleanups.
is used for changing items' look when elm_genlist_reorder_mode_set() is
called. Also, when decorate mode is enabled/disabled, these signal
should be sent properly.
When the scroller is resized, the signals("elm,action,scroll", "elm,edge,top" so on) shouldn't be sent,
because it's not a scroll-action. So in this case, the content_pos_set should be called without the signals.
the user would be visually impaired person or blind, so the type infomation
of genlist or list is not proper. there would be more proper type infomation.
SVN revision: 83005
show_region_hook, but rather get it from the actual Object.
Fixes a crash that happens if someone overrides the show_region_hook
(via elm_widget call) and passes an Int or String or something else as
the data parameter.
Signed-off-by: Christopher Michael <cp.michael@samsung.com>
SVN revision: 82571
+ elm_access_object_register();
+ elm_access_object_unregister();
+ elm_access_text_set();
+ elm_access_text_get();
+ elm_access_cb_set();
These APIs are to use edje part, evas object as an accessible object.
and do not create access object, because access object would be created at run time.
This is different with internal API _elm_access_object_register();
SVN revision: 81659
*note: this commit - callback behavior - would be disputable, becuase genlist has
"clicked,double", "selected" and "activated" signal and smart callback also.
but the access acitvate callback works as the item is selected.
SVN revision: 79369
genlist could have LOTS of items. so it would be better to use only displayed items for the focus chain.
please check the attachment and give feedback. thanks.
cordially,
shinwoo kim.
SVN revision: 78378
Subject: [E-devel] [E-Devel][Patch][Elementary]Genlist - Edje Item
Cache Refactoring
This is patch for reconstructing genlist's item cache.
Each item cache functions do harsh jobs so just push,pop by
Elm_Gen_Item * now.
Before, cache is disabled by comments. But I enabled item cache again
(even for the case which tree_effect_enabled is on).
I changed some functions:
_item_cache_find() --> _item_cache_pop()
_item_cache_add() --> _item_cache_push()
_item_cache_zero() -->_item_cache_all_free()
And I removed _item_cache_clean() function because I made
_item_cache_push() to don't exceed the item_cache_max. So clean-up of
cache is not needed anymore.
Breaks "genlist 2" test and clouseau. Just open genlist 2, press the "X"
button, and then the "+" button.
This reverts commit 77944.
SVN revision: 78336
Subject: [E-devel] [PATCH][ELEMENTARY][BUG Fix] Current Reordering
item is not resizing on genlist resize (e.g On roation)
Please review the attached patch created to fix the current reordering
item
resizing issue.
[ISSUE] Current genlist reordering item is not resizing on genlist
resize
(e.g. On rotation).
Change Description:
In _calc_job call back, the width of reordering item is corrected.
SVN revision: 77992
Subject: [E-devel] [E-Devel][Patch][Elementary]Genlist - Edje Item
Cache Refactoring
This is patch for reconstructing genlist's item cache.
Each item cache functions do harsh jobs so just push,pop by
Elm_Gen_Item * now.
Before, cache is disabled by comments. But I enabled item cache again
(even for the case which tree_effect_enabled is on).
I changed some functions:
_item_cache_find() --> _item_cache_pop()
_item_cache_add() --> _item_cache_push()
_item_cache_zero() -->_item_cache_all_free()
And I removed _item_cache_clean() function because I made
_item_cache_push() to don't exceed the item_cache_max. So clean-up of
cache is not needed anymore.
SVN revision: 77944
Subject: [E-devel] [patch][elementary] multibuttonentry - access feature
i have attached a patch which has access feature for the multibuttonentry.
it was hard time to implement access feature on the multibuttonentry than
others.
SVN revision: 77738
On Fri, Sep 28, 2012 at 10:04 PM, Bluezery <ohpowel@gmail.com> wrote:
> Dear EFL developers,
>
> In current genlist reorder mode, reordering is not moved when
> reordering item is on top or in bottom of within genlist objec because
> of scroller's hold mode.
> After mouse point is moved out of genlist object, then reordering item
> can be moved.
> But in mobile, mouse point can not be moved out of window (if genlist
> item is expanded in window).
> So I add some tweaks to reordering item can be moved when reordering
> item is moved on top item or bottom item.
>
> Please review this patch.
>
> BRs
> Kim.
SVN revision: 77255
On Fri, Aug 31, 2012 at 8:50 PM, Bluezery <ohpowel@gmail.com> wrote:
> Hello,
>
> Sometimes reorder animation ended incorrectly
> You can test & see the problem when background color is black and
> genlist item color is white.
> I made the added value for animation as difference between old item
> position and new item position if difference is below predefined dy.
> (y = diff, if diff < dy) So item position can be finally new item
> position at last.
> Please review this patch.
>
> Thanks
SVN revision: 75950
Subject: [E-devel] [patch][elementary] * access *
Series of of pathes from kim shinwoo. looked good to me - so in they
go, finishing off some more access mode to be more complete.
SVN revision: 75415
set it all the time themselves for read-only use outside. :) if uw ant
this u have to accomplish this another way. eg table with genlist PLUS
invisible rect obj at the same cell spot (0, 0, 1x1). and make the
invisible rect have a min size hint. table takes care of using the
"constraints" of both rect and gnelist then for sizing. :)
SVN revision: 75044
Widgets having internal panning objects won't have so fancy inheriting
schemas for those very objects, but they should be fine with
re-defining their own, if they want/need and overwriting it in their
smart_add()s.
SVN revision: 74682
initializing text parts first. Patch by Bluezery <ohpowel@gmail.com>
On Thu, Jul 26, 2012 at 2:29 PM, Bluezery <ohpowel@gmail.com> wrote:
> Hello,
>
> This patch make genlist free their text parts when each item is
unrealized.
> Before this patch, the item is just cached when an item is unrealized
> and the text part is freed and set by other text when the cached item
> is realized.
> This improves scrolling performance with very long text because this
> can reduce needless edje size recalculation time.
> Please review this patch.
>
SVN revision: 74413
This fixes "elm - genlist decorate all mode on and scroll - garbage
items left around."
Note: Do not manipulate swallowed items. Unswallow it first then
manipulate it.
SVN revision: 74412
The ERRs thrown on the terminal while exiting some tests were already
there -- check that those decorate and stuff modes add lots of NULL
children on lists.
Genlist work exactly as before. All the bugs and feature were kept :)
SVN revision: 73941
elementary configuration environment. Patch by Bluezery
<ohpowel@gmail.com>
On Thu, Jul 12, 2012 at 1:00 AM, Bluezery <ohpowel@gmail.com> wrote:
> Hello,
>
> Vertical bounce enable value can be changed by elementary
> configuration environment.
> But currently It was always EINA_FALSE. I fix that this value can be
> got from elm_config value.
>
> Please review this patch.
> Thanks
SVN revision: 73596
Documentation was wrong too and code had a slight bug stopping
genlist from contracting to min size.
Optimize the case of COMPRESS + homogeneous mode to avoid
queue entirely and use existing known item sizes.
SVN revision: 71140
<hyoyoung@gmail.com>
On Fri, Apr 20, 2012 at 4:10 PM, Hyoyoung Chang <hyoyoung@gmail.com>
wrote:
> Dear all,
>
> After introduced flipped mode to genlist, some clearing process is
> added to _elm_genlist_item_unrealize.
> In item _elm_genlist_item_unrealize, item is casting to gengrid item
> or genlist item.
> segfault is occurred in _elm_genlist_item_unrealize at using gengrid.
> this patch moves flipped mode clearing process to _item_realize_cb.
>
> Thanks.
>
SVN revision: 70355
Hyoyoung Chang <hyoyoung@gmail.com>
On Fri, Apr 20, 2012 at 5:19 PM, Hyoyoung Chang <hyoyoung@gmail.com>
wrote:
> After discuss with seoz, i changed to not clean selections also i
> removed the new added internal func.
>
> Thanks
>
> On Fri, Apr 20, 2012 at 4:00 PM, Hyoyoung Chang <hyoyoung@gmail.com>
wrote:
>> Dear all,
>>
>> I made a small patch to fix remained selection bug.
>> In decorate all mode, some item selection is not cleared after unset
>> decorate all mode.
>> I added to fix it.
>> And make unselecting common routine to a internal function.
>>
>> Thanks.
SVN revision: 70354
Subject: [E-devel] [patch] elm_genlist - bugfix at item flipped
I made a small patch about item flipped.
It resolves two bugs
1. flip_set and unset is called quickly, sometimes genlist can't free
flipped data.
it fixed to remove checking flipped status in item unrealize
2. add item unhighlight at flip_job
SVN revision: 70306
Subject: [E-devel] [Patch][Genlist] fix the bug in _elm_genlist_item_del_notserious
I made a patch to fix the bug in _elm_genlist_item_del_notserious.
If relcount is not 0 or walking is not 0, return.
SVN revision: 70291