[libadwaita/wip/exalm/pref-window: 4/5] preferences-window: Get the number of pages manually
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libadwaita/wip/exalm/pref-window: 4/5] preferences-window: Get the number of pages manually
- Date: Fri, 2 Apr 2021 10:55:56 +0000 (UTC)
commit 2e9ab64df6191620c6eb9079fc97b4a072f354d2
Author: Alexander Mikhaylenko <alexm gnome org>
Date: Mon Mar 29 14:27:23 2021 +0500
preferences-window: Get the number of pages manually
Don't rely on adw_view_switcher_get_title_visible(), for example it will
have a false positive when the window is narrow.
src/adw-preferences-window.c | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
---
diff --git a/src/adw-preferences-window.c b/src/adw-preferences-window.c
index af9d5bc..778d22a 100644
--- a/src/adw-preferences-window.c
+++ b/src/adw-preferences-window.c
@@ -147,11 +147,29 @@ filter_search_results (AdwPreferencesRow *row,
return FALSE;
}
+static int
+get_n_pages (AdwPreferencesWindow *self)
+{
+ AdwPreferencesWindowPrivate *priv = adw_preferences_window_get_instance_private (self);
+ int count = 0;
+ GtkWidget *child;
+
+ for (child = gtk_widget_get_first_child (GTK_WIDGET (priv->pages_stack));
+ child;
+ child = gtk_widget_get_next_sibling (child)) {
+ GtkStackPage *page = gtk_stack_get_page (priv->pages_stack, child);
+
+ if (gtk_stack_page_get_visible (page))
+ count++;
+ }
+
+ return count;
+}
+
static gchar *
create_search_row_subtitle (AdwPreferencesWindow *self,
GtkWidget *row)
{
- AdwPreferencesWindowPrivate *priv = adw_preferences_window_get_instance_private (self);
GtkWidget *group, *page;
const char *group_title = NULL;
g_autofree char *page_title = NULL;
@@ -180,7 +198,7 @@ create_search_row_subtitle (AdwPreferencesWindow *self,
}
if (group_title) {
- if (!adw_view_switcher_title_get_title_visible (priv->view_switcher_title))
+ if (get_n_pages (self) > 1)
return g_strdup_printf ("%s → %s", page_title ? page_title : _("Untitled page"), group_title);
return g_strdup (group_title);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]