when a widget is disabled, don't try to focus it, also some focus chain outdenting

SVN revision: 73953
This commit is contained in:
Mike Blumenkrantz 2012-07-17 08:26:22 +00:00
parent da08ac08cf
commit 7924b453e5
1 changed files with 15 additions and 17 deletions

View File

@ -195,6 +195,7 @@ EAPI int
e_widget_can_focus_get(Evas_Object *obj)
{
API_ENTRY return 0;
if (sd->disabled) return 0;
if (sd->can_focus) return 1;
if (sd->child_can_focus) return 1;
return 0;
@ -258,16 +259,14 @@ e_widget_focus_jump(Evas_Object *obj, int forward)
{
EINA_LIST_FOREACH(sd->subobjs, l, sobj)
{
if (e_widget_can_focus_get(sobj))
{
if ((focus_next) &&
(!e_widget_disabled_get(sobj)))
if (!e_widget_can_focus_get(sobj)) continue;
if ((focus_next) && (!e_widget_disabled_get(sobj)))
{
/* the previous focused item was unfocused - so focus
* the next one (that can be focused) */
if (e_widget_focus_jump(sobj, forward))
return 1;
else break;
break;
}
else
{
@ -282,7 +281,6 @@ e_widget_focus_jump(Evas_Object *obj, int forward)
}
}
}
}
else
{
EINA_LIST_REVERSE_FOREACH(sd->subobjs, l, sobj)