Page MenuHomePhabricator

Genlist has bugs when clicking "check" or "entry" which is content of item.
Open, NormalPublic

Description

Genlist needs to be long enough to be scrolled down. Genlist items must contain check box or entry.

  1. Scroll down genlist.
  2. Click on check box.

Genlist will "jump up" so clicked item will be in the bottom.
This behaviour can be seen in elementary_test - "Genlist Tree" or "Genlist Full Widget"

The same happens with Entry, but Entry also has a focus bug:

  1. Genlist is scrolled up.
  2. Click on entry

Item will be selected, but there is no cursor in entry

  1. Click entry one more time

Cursor will be set inside entry.

Example with both: check boxes and entries can be found here: http://pastebin.com/p7Q97bzN

yakov-g created this task.Aug 23 2015, 8:15 AM
yakov-g updated the task description. (Show Details)
yakov-g raised the priority of this task from to Incoming Queue.
yakov-g assigned this task to SanghyeonLee.
yakov-g added a project: Restricted Project.
yakov-g added a subscriber: yakov-g.
singh.amitesh added a comment.EditedAug 29 2015, 11:38 PM

So we have two bugs

  1. genlist scrolls up on selecting check or entry swallowed into genlist.
  2. swallowed object does not get focus on first click

2nd issue happens because of https://phab.enlightenment.org/D891 (a420f494dc2bb420f0c6851002f3b8e704abd330)

@seoz can tell more why it was added. For me, the if (!(sd->focus_on_selection_enabled || _elm_config->item_select_on_focus_disable)) flag looks wrong!
It should be other way around.

I will create a subtask to fix 2nd issue.

SanghyeonLee added a comment.EditedSep 23 2015, 6:22 PM

actaully current genlist are not fully supported entry in their swallow area,
because genlist generated real-items in dynamically, but entry have many information,
such as text, focus, cursor, etc, so this value is not re-generated after item unrealize and realize.

if we support entry fully in genlist, we must have one of below ways,

  1. genlist item could be not unrealize even it's unrealized area if some content need to be alive.
  2. entry have some APIs to save their current status regarding text, focus, cursor, etc in data structures, and reload status in new entry object.

but we don't have both,
so currently no-way to solve this problem without chaning widget policy.

but checkbox cases,
I need to check them.

The first problem is the same as T1686.
I think we can close this and refer to T1686 and T2704.

stefan_schmidt triaged this task as Normal priority.Oct 12 2015, 2:23 AM
stefan_schmidt edited projects, added efl; removed Restricted Project.Jul 20 2016, 7:28 AM

Hello.
I have the same problem now in "Genlist Full Widget" with checks.
After click on check genlist scrolls up and efl errors appears.

ERR<3386>:eo lib/eo/eo_base_class.c:1391 efl_event_callback_array_del() Eo ID 0x800000bf0fbf1234 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=7bf1234, id=7e1, ref=1)
Copy & Paste the below (until EOF) into a terminal, then hit Enter

eina_btlog << EOF
/usr/local/lib/libeina.so.1 0x7fe449d6d999 0x7fe449d46000
/usr/local/lib/libeina.so.1 0x7fe449d6e6b1 0x7fe449d46000
/usr/local/lib/libeina.so.1 0x7fe449d6fa19 0x7fe449d46000
/usr/local/lib/libeo.so.1 0x7fe449fd5389 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd1273 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd6844 0x7fe449fc8000
/usr/local/lib/libelementary.so.1 0x7fe4497590eb 0x7fe4494be000
/usr/local/lib/libeina.so.1 0x7fe449d6422e 0x7fe449d46000
/usr/local/lib/libelementary.so.1 0x7fe449757c21 0x7fe4494be000
/usr/local/lib/libelementary.so.1 0x7fe4497564a0 0x7fe4494be000
/usr/local/lib/libelementary.so.1 0x7fe449759bd4 0x7fe4494be000
/usr/local/lib/libeo.so.1 0x7fe449fdb40b 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd69c3 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd69c3 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd8261 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fdb512 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd69c3 0x7fe449fc8000
/usr/local/lib/libelementary.so.1 0x7fe4497567f0 0x7fe4494be000
/usr/local/lib/libelementary.so.1 0x7fe449757dc5 0x7fe4494be000
/usr/local/lib/libelementary.so.1 0x7fe4497565c0 0x7fe4494be000
/usr/local/lib/libelementary.so.1 0x7fe449712e35 0x7fe4494be000
/usr/local/lib/libelementary.so.1 0x7fe44971ca9d 0x7fe4494be000
/usr/local/lib/libevas.so.1 0x7fe44a230e51 0x7fe44a1e4000
/usr/local/lib/libeo.so.1 0x7fe449fd9fb0 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd6b03 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd6b03 0x7fe449fc8000
/usr/local/lib/libevas.so.1 0x7fe44a2316b2 0x7fe44a1e4000
/usr/local/lib/libevas.so.1 0x7fe44a231739 0x7fe44a1e4000
/usr/local/lib/libevas.so.1 0x7fe44a24125c 0x7fe44a1e4000
/usr/local/lib/libevas.so.1 0x7fe44a242723 0x7fe44a1e4000
/usr/local/lib/libeo.so.1 0x7fe449fd9eef 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd6b03 0x7fe449fc8000
/usr/local/lib/libecore_evas.so.1 0x7fe44a8c7875 0x7fe44a8ba000
/usr/local/lib/libecore_evas.so.1 0x7fe44a8c7fed 0x7fe44a8ba000
/usr/local/lib/libecore_input_evas.so.1 0x7fe4474feb23 0x7fe4474fc000
/usr/local/lib/libecore.so.1 0x7fe44a6740f6 0x7fe44a65f000
/usr/local/lib/libecore.so.1 0x7fe44a67b9e8 0x7fe44a65f000
/usr/local/lib/libecore.so.1 0x7fe44a67be17 0x7fe44a65f000
/usr/local/lib/libecore.so.1 0x7fe44a67be59 0x7fe44a65f000
/usr/local/lib/libecore.so.1 0x7fe44a6791d5 0x7fe44a65f000
/usr/local/bin/elementary_test 0x55807dbe11b6 0x55807dbbe000
/lib/x86_64-linux-gnu/libc.so.6 0x7fe448ef7830 0x7fe448ed7000
/usr/local/bin/elementary_test 0x55807dbe11f9 0x55807dbbe000
EOF

ERR<3386>:eo lib/eo/eo_base_class.c:1304 efl_event_callback_del() Eo ID 0x800000bf0fbf1234 is not a valid object. Current thread: main. This ID has probably been deleted or this was never a valid object ID. (domain=0, current_domain=0, local_domain=0, available_domains=[0 1 ], generation=7bf1234, id=7e1, ref=1)
Copy & Paste the below (until EOF) into a terminal, then hit Enter

eina_btlog << EOF
/usr/local/lib/libeina.so.1 0x7fe449d6d999 0x7fe449d46000
/usr/local/lib/libeina.so.1 0x7fe449d6e6b1 0x7fe449d46000
/usr/local/lib/libeina.so.1 0x7fe449d6fa19 0x7fe449d46000
/usr/local/lib/libeo.so.1 0x7fe449fd5389 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd1273 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd65b9 0x7fe449fc8000
/usr/local/lib/libelementary.so.1 0x7fe449759bed 0x7fe4494be000
/usr/local/lib/libeo.so.1 0x7fe449fdb40b 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd69c3 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd69c3 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd8261 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fdb512 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd69c3 0x7fe449fc8000
/usr/local/lib/libelementary.so.1 0x7fe4497567f0 0x7fe4494be000
/usr/local/lib/libelementary.so.1 0x7fe449757dc5 0x7fe4494be000
/usr/local/lib/libelementary.so.1 0x7fe4497565c0 0x7fe4494be000
/usr/local/lib/libelementary.so.1 0x7fe449712e35 0x7fe4494be000
/usr/local/lib/libelementary.so.1 0x7fe44971ca9d 0x7fe4494be000
/usr/local/lib/libevas.so.1 0x7fe44a230e51 0x7fe44a1e4000
/usr/local/lib/libeo.so.1 0x7fe449fd9fb0 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd6b03 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd6b03 0x7fe449fc8000
/usr/local/lib/libevas.so.1 0x7fe44a2316b2 0x7fe44a1e4000
/usr/local/lib/libevas.so.1 0x7fe44a231739 0x7fe44a1e4000
/usr/local/lib/libevas.so.1 0x7fe44a24125c 0x7fe44a1e4000
/usr/local/lib/libevas.so.1 0x7fe44a242723 0x7fe44a1e4000
/usr/local/lib/libeo.so.1 0x7fe449fd9eef 0x7fe449fc8000
/usr/local/lib/libeo.so.1 0x7fe449fd6b03 0x7fe449fc8000
/usr/local/lib/libecore_evas.so.1 0x7fe44a8c7875 0x7fe44a8ba000
/usr/local/lib/libecore_evas.so.1 0x7fe44a8c7fed 0x7fe44a8ba000
/usr/local/lib/libecore_input_evas.so.1 0x7fe4474feb23 0x7fe4474fc000
/usr/local/lib/libecore.so.1 0x7fe44a6740f6 0x7fe44a65f000
/usr/local/lib/libecore.so.1 0x7fe44a67b9e8 0x7fe44a65f000
/usr/local/lib/libecore.so.1 0x7fe44a67be17 0x7fe44a65f000
/usr/local/lib/libecore.so.1 0x7fe44a67be59 0x7fe44a65f000
/usr/local/lib/libecore.so.1 0x7fe44a6791d5 0x7fe44a65f000
/usr/local/bin/elementary_test 0x55807dbe11b6 0x55807dbbe000
/lib/x86_64-linux-gnu/libc.so.6 0x7fe448ef7830 0x7fe448ed7000
/usr/local/bin/elementary_test 0x55807dbe11f9 0x55807dbbe000
EOF

@Deepwarrior Looks not related with scroll, actually I can get it even click button or check twice without any scrolls... very weird.... test code need to be fixed to elm_layout->elm_object APIs but won't fix this issue. I'll check more.

zmike edited projects, added Restricted Project; removed efl.Jun 11 2018, 7:00 AM
zmike edited projects, added efl: widgets; removed Restricted Project.Jun 11 2018, 8:16 AM
zmike changed the visibility from "All Users" to "Public (No Login Required)".Jan 22 2019, 12:37 PM
zmike added subscribers: bu5hm4n, zmike.

@SanghyeonLee @bu5hm4n any idea if this is still an issue?