[libadwaita/wip/exalm/leaflet-selection] leaflet: Implement select_item() for AdwLeafletPages
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libadwaita/wip/exalm/leaflet-selection] leaflet: Implement select_item() for AdwLeafletPages
- Date: Wed, 28 Apr 2021 08:03:07 +0000 (UTC)
commit 1ba9c6ed834bdaffa502b896fcda52f18309e8d5
Author: Alexander Mikhaylenko <alexm gnome org>
Date: Wed Apr 28 13:01:19 2021 +0500
leaflet: Implement select_item() for AdwLeafletPages
That code was adapted from AdwSqueezer, which doesn't allow changing
selection as it's automatically managed. This isn't the case with leaflet,
we should have allow it.
Fixed https://gitlab.gnome.org/GNOME/libadwaita/-/issues/66
src/adw-leaflet.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
---
diff --git a/src/adw-leaflet.c b/src/adw-leaflet.c
index fa03770..e60dae8 100644
--- a/src/adw-leaflet.c
+++ b/src/adw-leaflet.c
@@ -378,10 +378,26 @@ adw_leaflet_pages_is_selected (GtkSelectionModel *model,
return page && page == self->leaflet->visible_child;
}
+static gboolean
+adw_leaflet_pages_select_item (GtkSelectionModel *model,
+ guint position,
+ gboolean exclusive)
+{
+ AdwLeafletPages *self = ADW_LEAFLET_PAGES (model);
+ AdwLeafletPage *page;
+
+ page = g_list_nth_data (self->leaflet->children, position);
+
+ adw_leaflet_set_visible_child (self->leaflet, page->widget);
+
+ return TRUE;
+}
+
static void
adw_leaflet_pages_selection_model_init (GtkSelectionModelInterface *iface)
{
iface->is_selected = adw_leaflet_pages_is_selected;
+ iface->select_item = adw_leaflet_pages_select_item;
}
G_DEFINE_TYPE_WITH_CODE (AdwLeafletPages, adw_leaflet_pages, G_TYPE_OBJECT,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]