Summary:
In _item_single_select_left/right functions if logic is corrected from && to ||.
The previous thing is like: if "there is a generation mismatch" and "item is
disable" then only get the next gengrid item. This seems logically incorrect.
The suggested logic is if "there is generation mismatch" OR "item disabled" then
go for the new item. Whether we get a generation mismatch or item disable, we
should look for next item. So there should be || logic instead of && logic.
@fix
Signed-off-by: Umesh Tanwar <umesh.tanwar@samsung.com>
Reviewers: Hermet, raster, singh.amitesh, SanghyeonLee, cedric
Subscribers: cedric, sachin.dev
Differential Revision: https://phab.enlightenment.org/D3354
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Patch fixes issue when widgets could be orphaned in accessibility tree
due to overloaded accessible_children_get methods in widgets returning
Elm_Object_Items. Widgets like genlist, gengrid, list and toolbar returned
only items as its accessibility children so if some widget was attached
directly to those widgets (like ctxpopup/popup) it become orphaned
in accessibility tree.
Summary:
If item is unselected in a selected function,
selected function will be called once more from _elm_gengrid_elm_widget_on_focus.
It is happened when elm_gengrid object has no focus and one of item is selected by mouse up event.
To fix this issue, we need to set focus to item and keep the address of selected item before calling selected function.
@fix
Test Plan:
1. Install & Run efbb (Escape From Booty Bay: https://git.enlightenment.org/games/efbb.git/)
2. Select a level in the main menu. (It is using elm_gengrid).
3. See duplicated target images.
Reviewers: cedric, SanghyeonLee
Reviewed By: SanghyeonLee
Differential Revision: https://phab.enlightenment.org/D3323
This reverts commit 1094fb77a0ee23cbe1e8b15783e406a8d93b7fd4.
Feature is freezed for new released version.
This patch must updated after release finished.
Summary:
Add elm_gengrid_item_all_contents_unset API for reusing contents in application side.
User can unset all contents or re-use their contents for increase scrolling performance.
genlist already support this API.
@feature
Test Plan: Need to add test in elementary_test.
Reviewers: raster, singh.amitesh, cedric
Subscribers: woohyun, Hermet, seoz
Differential Revision: https://phab.enlightenment.org/D3066
Set proper atspi parents in cases when AT-SPI object tree structure
should be different then elementary tree (mostly in cases of elm_widget_items)
Add regression tests for those cases.
When the focus is moved, it uses focus_direction instead of
focus_origin.
It can get the focus by using the geometry of previous focused object or item
@feature
Add elm_object_focus_next_item_set/get,
elm_object_item_focus_next_object_set/get and
elm_object_item_focus_next_item_set/get.
If the item and object is set at the same time,
the item is preference to object when the focus moves.
This feature is implemented about gengrid.
It will be implemented about ohter widgets.
@feature
i found that the focus doesnt auto-show when focusing things inside
scrollers and so on. i had to add more points to trigger auto show.
this fixes that
@fix
Summary:
The focus movement is wrong when down key press
is done of first item of last row, intsead of
taking the focus out, it moves the focus to next
item (right).
@fix
Signed-off-by: Vaibhav Gupta <g.vaibhav1@samsung.com>
Test Plan:
1. Launch elementary_test -> Gengrid 2 sample
2. Add a few items such that there are 2 items in last row
3. Do a down key press on 1st item of last row
4. Observe focus movement
Reviewers: raster, Hermet, SanghyeonLee, singh.amitesh
Subscribers: sachin.dev
Differential Revision: https://phab.enlightenment.org/D3001
There is no need to loop when reorder mode is enabled. This looks
ugly and nobody wants it. This fault was introduced in 7aaa5c8d0a4a5714b4f1bf79e
This patch also fixes following crash
1. elementary_test -to "Gengrid 2".
2. Enable all the options available.
3. Do reorder of item via keys.
4. Observe segv on reordering edge items.
@fix
Steps to reproduce:
1. elementary -> gengrid focus
2. change mode to horizontal
3. set focus to one of item in 2nd column.
4. Press Left direction key
issue: focus moves out of gengrid.
@fix
Summary:
After item looping, Gengrid item was getting selected.
So, checked for item_select_on_focus_disable flag and
accordingly set focus state or selected state of Gengrid item.
@fix
Signed-off-by: Yeshwanth Reddivari <r.yeshwanth@samsung.com>
Reviewers: raster, Hermet, singh.amitesh, SanghyeonLee
Subscribers: sachin.dev
Differential Revision: https://phab.enlightenment.org/D2937
In the widget code, focus origin is added. It can know
the focus movement is originated by which action.
The widgets can choose the item focus moves to last focused item
or geometrically nearby item by focus origin.
In gengrid, focus moves to last focused item if focus origin is
ELM_FOCUS_REVERT. It moves to nearby item if focus origin is from
ELM_FOCUS_UP to ELM_FOCUS_LEFT.
TODO: widgets have items should add the direction feature if it
want the focus to move to nearby item.
@feature
When the focus is move to the object in scroller, it is scrolled
to show the focus region as a widget.
If the focus region want to be shown as an item,
set the mode ELM_FOCUS_REGION_SHOW_ITEM.
If then, it will be scrolled as an item.
TODO: Widgets have items are added on_focus_region function.
@feature
This commit is related to 4d553d2bcf2157053433994ca3facb56bd670da9.
It doesn't work if item_select_on_focus_disable is 1.
So _item_focus_down is changed like _item_single_select_down.
@fix
Summary:
do not return yet in case of edge items if looping
is disabled. try to select/focus last item.
Signed-off-by: Jyotiprakash Sahoo <jp.sahoo@samsung.com>
@fix
Test Plan: elementary_test -> Gengrid 2
Reviewers: raster, singh.amitesh, cedric, SanghyeonLee
Reviewed By: SanghyeonLee
Differential Revision: https://phab.enlightenment.org/D2865
Summary:
elm_list, elm_genlist widgets are handle focus highlight
relying on only elm_widget_focus_highlight_enabled_get() API.
The API is not considered about auto focus highlight feature.
So, we need to check a flag for auto focus from _elm_config.
It resolves T2555.
@fix
Test Plan: elementary_test -> List Focus or Genlist Focus
Reviewers: raster, cedric, SanghyeonLee, singh.amitesh
Reviewed By: SanghyeonLee, singh.amitesh
Maniphest Tasks: T2555
Differential Revision: https://phab.enlightenment.org/D2914
Summary: Issue: Gengrid item comes over group item on click.
Test Plan:
Run elementary test.
Open GenGrid Group. Click on any item which slightly overlap with group item.
Item comes over group item.
Reviewers: raster, cedric
Reviewed By: cedric
Subscribers: rajeshps, govi, poornima.srinivasan, shilpasingh
Differential Revision: https://phab.enlightenment.org/D2589
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
elm_gengrid_item_update perform item_unrealize/item_realize/item_place itself.
But when gengrid items are added and not calculated yet,
caller want to get item's index after execute elm_gengrid_item_update,
return value is wrong because item_place update it's position in not-updated item's x and y.
to prevent this,
if item position is already updated,
do not updates position in item place.
additionally,
I fixed gengrid item prepend wrong posiiton update.
gengrid item position start from 1 not 0, so item_position_update also must be started from 1.
@fix
Test Plan:
To test this scenario,
need to fix src/bin/test_gengrid.c first.
1. add below codes in bottom of _after_bt_clicked(line 703).
```
Elm_Object_Item *it = elm_gengrid_item_next_get(id->item);
printf("before update efl item[%p], index [%d]\n",id->item,elm_gengrid_item_index_get(it));
elm_gengrid_item_update(it);
printf("after update efl item[%p], index [%d]\n",id->item,elm_gengrid_item_index_get(it));
```
2. execute elementary_test and go to gengrid2 test.
3. add 3 items and select 2nd item then add new item by insert after.
4. you can see index is changed wrong value after item_update executed.
after add fallback code in item_update,
index is returned same value even after item_update execusion.
Reviewers: raster, Hermet, seoz, jaehwan
Subscribers: anand.km, eagleeye, singh.amitesh
Differential Revision: https://phab.enlightenment.org/D2616
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Elementary widgets have different behavior of using the mouse, they need to be unified.
- swipe : without checking on hold, just checking drag state.
- longpress : after longpress, _item_unhighlight(), _item_unselect() are called.
- select : when the mouse pointer leaves item area, _item_unhighlight(), _item_unselect() are called.
First, apply this commit https://phab.enlightenment.org/D2550
Test Plan: elementary_test -> list
Reviewers: seoz, Hermet, CHAN, woohyun, kimcinoo, jaehwan, SanghyeonLee, cedric
Reviewed By: cedric
Differential Revision: https://phab.enlightenment.org/D2622
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
item_unselect check it->select status, so when item highlighted but not selected,
item highlight is remaining even after unselect_cb is called.
And item_select and item_highlight are separated, but item_unselect and item_unhighlight are mixed.
so divide them, too.
This patch will solve upon problem.
Reviewers: seoz, woohyun, Hermet, CHAN, raster, SanghyeonLee, cedric
Reviewed By: cedric
Differential Revision: https://phab.enlightenment.org/D2653
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
gengrid realize/unrealize items each smart calculation if their posiiton is updated.
This concept will be occurred useless view object creation and deletion.
So instead of delete items in unrealize function, push item cache into cache list,
and pop item cache from cache list in realize function to reuse item view object
more efficiently.
the cache concept is already implemented in genlist widget and this patch is improved
item cache of genlist cache.
@feature
```
NOTICE: This patch is written under the D2561 Patch which add elm_gengrid_item_fields_update.
So it must submitted after D2561.
```
Test Plan:
I've tested below three cases,
1. tested ith this patch in elementary_test and checked all gengrid features are working properly.
2. tested with changing CACHE_MAX to another value which is set 40 in default
and checked all gengrid features are working properly.
3. tested with set it->item->nocache true, and checked cache is never generated
and checked all gengrid features are working properly.
Reviewers: raster, Hermet, seoz, jaehwan, singh.amitesh
Subscribers: eagleeye, singh.amitesh, Jaehyun
Differential Revision: https://phab.enlightenment.org/D2641
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
gengrid focus state recovering in item_realize is duplicated.
remove unnecessary lines.
you can find same signal emit codes under line 1018.
Test Plan: test elemetary test gengrid focus highight show correctly after code merged.
Reviewers: raster, Hermet, seoz, jaehwan, cedric
Reviewed By: cedric
Subscribers: singh.amitesh, eagleeye
Differential Revision: https://phab.enlightenment.org/D2656
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Below bugs are exist in gengrid widget when use horizontal mode and mirrored set.
1. Gengrid item is placed wrong position when mirrored set.
Current calulation for mirroring in _item_place only consider pan object positions.
if widget is mirrored, item should be placed opposited position so object x position must be
consider in mirroring calculation also.
2. Gengrid scroll(pan) minimum size is returned wrong value when mirroed set.
As the result of 1's calculation present oposite position of items, so align also reversed when mirrored.
but current gengrid didn't change align x so minimum size is return wrong value
and scroller expanded wrong direction.
@fix
Test Plan:
1. run elementary_test and set mirroring On
2. run Gengrid2 in elementary_test
3. see how items are placed by push append button repeatly.
4. see scroller shows correct position and items.
5. change usr/bin/test_gengrid.c to set another align value on gengrid and test again.
Reviewers: raster, seoz, Hermet, jaehwan
Subscribers: Jaehyun, anand.km, eagleeye, singh.amitesh
Differential Revision: https://phab.enlightenment.org/D2553
Summary:
Updated gengrid to move item selection in 'vertical' mode to the last
item, when currently selected item is not in the last row. As per the
original behaviour, on moving down from such an item, it takes the
focus out of the gengrid widget. Now it is updated to go to the last
item (in last row), and then on further pressing down, focus comes
out of gengrid.
This is something similar to what happens in other UI systems like in
Ubuntu and Windows, when pressing down on (n-1)th row, the last item
in the nth row gets focused.
Signed-off-by: Vaibhav Gupta <g.vaibhav1@samsung.com>
Reviewers: Hermet, SanghyeonLee, raster
Reviewed By: raster
Subscribers: sachin.dev, singh.amitesh
Differential Revision: https://phab.enlightenment.org/D2418
when insert a new item before/after an item, the relative item should not be NULL.
this patch fixes naviframe, gengrid, genlist, list, and toolbar.
@fix