Page MenuHomePhabricator

Elementary Focus
Updated 1,734 Days AgoPublic

Elementary Focus

  • Elementary Focus : A state of elementary widget which is ready for accepting user's key event.
  • Focus uses existing elementary "widget tree" infra structure. There is no separate focus tree for maintainance issue.
  • Focus movement: Focus is moved by "click(mouse up)" event or Tab/Shift+Tab/Up/Down/Left/Right key input.

Widget Item Focus

This page describes the issues/requirements related to widget item.

Widgets

The list of widgets which have widget item.

  • elc_ctxpopup
  • elc_hoversel - VIEW(item)->elm_button. Added "item,focused" & "item,unfocused" smart events. D564 (DONE)
  • elc_popup - VIEW(item)->elm_layout. Pushed into pre1.10 branch. D563 (DONE - need to fix bugs)
  • elm_access (item focus???)
  • elm_colorselector
  • elm_dayselector
  • elm_diskselector
  • elm_flipselector
  • elm_gengrid - VIEW(item)->edje. Patch is raised. D550
  • elm_genlist - VIEW(item)->edje. Patch is raised. D558
    • fallback to another item if focus_set item is not focusable. - failed -> fix this later.
    • unfocus on select_mode(for genlist and for genlist item) change - failed
    • focus highlight on wheel scroll - failed -> fix this later.
    • focus highlight on scrollbar movement - failed -> fix this later.
    • focus highlight on drag/flick - failed -> fix this later.
    • "focus_highlight" "on" support - not checked yet
    • decorate all mode support - not checked yet
    • decorate item mode support - not checked yet
    • _item_focused_next refactoring -> SeoZ will do it later.
    • horizontal scroll support - SeoZ will fix it later.
    • show or bring_in on focused? - need to discuss later. maybe make it optional.
    • hide or keep focus highlight on touch event - make it optional later.
    • enhance _elm_genlist_focus_highlight_geometry_get.
  • elm_index
  • elm_list - VIEW(item)->edje. Patch is raised. D532, D571 (DONE - need to fix bugs)
    • Enhance the adjust calculation logic later.
    • Focus highlight does not move correctly when you scroll the list by wheel or flick/drag.
    • Given that the api name is wrong. we should be able to move the focus between intern objects if the elm_list_focus_on_selection_set() api is used. -> Fixed.
    • Runtime "focus on animation" change break focus highlight geometry.
    • in_theme should not be initialized in _elm_win_focus_highlight_start. -> Fixed.
    • when you click internally focusable object in the list item, focus is corrupted.
    • on mouse click to elm list item, two items gets focused. first item of list gets focused and then the selected item via mouse.
  • elm_menu
  • elm_segment_control
  • elm_slideshow
  • elm_toolbar - VIEW(item)->edje. Patch is raised. D555

Requirements

  • Keep backward compatibility.
    • Keep focus_region_show work.
    • Keep elm_genlist_focus_on_selection_set/get() work.
  • Following APIs are needed.
    • elm_object_item_focus_set
    • elm_object_item_focus_get()
    • and elm_object_focused_item_get()
  • evas smart callbacks "item,focused" and "item,unfocused" implementation.
  • Internal functions.
    • _elm_widget_item_focus_set_hook_set
    • _elm_widget_item_focus_get_hook_set
    • _elm_widget_item_focus_set
    • _elm_widget_item_focus_get
    • elm_widget_focused_item_get

Issues

  • No focus highlight on widget item.
  • No focus highlight animation on widget item.
  • Focus cut between adjacent objects.
    • Between genlist items.
    • Between elm widgets
  • Focus cut by scroller on first and last objects.
    • In genlist, list, gengrid
    • Box with buttons.
  • Focus goes out of view point while scrolling.
  • No focus movement from elm widgets to widget items.
  • '“focus_highlight” "on"' does not work on spinner.
  • Looping feature on widget items. e.g. Move focus to the first item of genlist on "Down" key press if focus is on last item of genlist. Possible solutions.
    • Add a smart callback when focus highlight is at the last item and key is pressed? Suggested by “Woohyun”
  • Differentiate between selected and highlight state for widget items.
  • Upstream API of genlist,list,gengrid which supports focus movement on swallow objects of an item should not break when “item-focus” feature is implemented. “item-focus” feature would be enabled by default.
  • Focus movement from elm widget to widget item. We can think of following cases.
    • Should focus highlight comes to first item of container widget?
    • Should focus movement based on geometry of widget item?
    • Should focus movement based on last selected item?
    • Should focus movement based on last focused item?
  • Focus highlight moves out of view port in case of mouse-scroll of a scroller containing a box with buttons.
  • what happens if background of a widget item gets changed on focused and unfocused?
    • need to send signals from widget to theme. "elm,action,focused" and "elm,action,unfocused".
  • Items with select_mode ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY (it->select_mode == ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY) does not get focus.
  • No focus highlight on genlist, list, gengrid etc.

Implementation

Last Author
singh.amitesh
Last Edited
Mar 18 2014, 12:54 PM
Projects
None
Subscribers
woohyun, nirajkr, singh.amitesh, seoz