focus-manager: Add navigate_from_event method
This will be used to implement key navigation inside the calendar without having to listen to key events manually. https://bugzilla.gnome.org/show_bug.cgi?id=667434
This commit is contained in:
parent
31478e9fb4
commit
092586c931
@ -233,3 +233,26 @@ st_focus_manager_get_group (StFocusManager *manager,
|
|||||||
|
|
||||||
return ST_WIDGET (actor);
|
return ST_WIDGET (actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* st_focus_manager_navigate_from_event:
|
||||||
|
* @manager: the #StFocusManager
|
||||||
|
* @event: a #ClutterEvent
|
||||||
|
*
|
||||||
|
* Try to navigate from @event as if it bubbled all the way up to
|
||||||
|
* the stage. This is useful in complex event handling situations
|
||||||
|
* where you want key navigation, but a parent might be stopping
|
||||||
|
* the key navigation event from bubbling all the way up to the stage.
|
||||||
|
*
|
||||||
|
* Returns: Whether a new actor was navigated to
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
st_focus_manager_navigate_from_event (StFocusManager *manager,
|
||||||
|
ClutterEvent *event)
|
||||||
|
{
|
||||||
|
if (event->type != CLUTTER_KEY_PRESS)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
ClutterActor *stage = CLUTTER_ACTOR (event->key.stage);
|
||||||
|
return st_focus_manager_stage_event (stage, event, manager);
|
||||||
|
}
|
||||||
|
@ -75,6 +75,8 @@ void st_focus_manager_remove_group (StFocusManager *manager,
|
|||||||
StWidget *root);
|
StWidget *root);
|
||||||
StWidget *st_focus_manager_get_group (StFocusManager *manager,
|
StWidget *st_focus_manager_get_group (StFocusManager *manager,
|
||||||
StWidget *widget);
|
StWidget *widget);
|
||||||
|
gboolean st_focus_manager_navigate_from_event (StFocusManager *manager,
|
||||||
|
ClutterEvent *event);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user