Method

StWidgetnavigate_focus

Declaration [src]

gboolean
st_widget_navigate_focus (
  StWidget* widget,
  ClutterActor* from,
  StDirectionType direction,
  gboolean wrap_around
)

Description [src]

Tries to update the keyboard focus within widget in response to a keyboard event.

If from is a descendant of widget, this attempts to move the keyboard focus to the next descendant of widget (in the order implied by direction) that has the StWidget:can-focus property set. If from is NULL, this attempts to focus either widget itself, or its first descendant in the order implied by direction. If from is outside of widget, it behaves as if it was a descendant if direction is one of the directional arrows and as if it was NULL otherwise.

If a container type is marked StWidget:can-focus, the expected behavior is that it will only take up a single slot on the focus chain as a whole, rather than allowing navigation between its child actors (or having a distinction between itself being focused and one of its children being focused).

Some widget classes might have slightly different behavior from the above, where that would make more sense.

If wrap_around is TRUE and from is a child of widget, but the widget has no further children that can accept the focus in the given direction, then st_widget_navigate_focus() will try a second time, using a NULL from, which should cause it to reset the focus to the first available widget in the given direction.

Parameters

from

Type: ClutterActor

The actor that the focus is coming from.

The argument can be NULL.
The data is owned by the caller of the method.
direction

Type: StDirectionType

The direction focus is moving in.

wrap_around

Type: gboolean

Whether focus should wrap around.

Return value

Type: gboolean

TRUE if clutter_actor_grab_key_focus() has been called on an actor. FALSE if not.