lib: add mks_session_ref_screen()

This is just a helper to get the first screen.
This commit is contained in:
Christian Hergert 2023-02-10 16:29:57 -08:00
parent 084edf38eb
commit bcf65d7374
2 changed files with 32 additions and 0 deletions

View File

@ -707,3 +707,33 @@ mks_session_get_name (MksSession *self)
return NULL;
}
/**
* mks_session_ref_screen:
* @self: a #MksSession
*
* Gets the main screen for the session.
*
* Returns: (transfer full) (nullable): a #MksScreen or %NULL
*/
MksScreen *
mks_session_ref_screen (MksSession *self)
{
GListModel *model;
guint n_items;
g_return_val_if_fail (MKS_IS_SESSION (self), NULL);
model = G_LIST_MODEL (self->devices);
n_items = g_list_model_get_n_items (model);
for (guint i = 0; i < n_items; i++)
{
g_autoptr(MksDevice) device = g_list_model_get_item (model, i);
if (MKS_IS_SCREEN (device))
return MKS_SCREEN (g_steal_pointer (&device));
}
return NULL;
}

View File

@ -58,5 +58,7 @@ MKS_AVAILABLE_IN_ALL
const char *mks_session_get_name (MksSession *self);
MKS_AVAILABLE_IN_ALL
const char *mks_session_get_uuid (MksSession *self);
MKS_AVAILABLE_IN_ALL
MksScreen *mks_session_ref_screen (MksSession *self);
G_END_DECLS