[gtk: 1/2] listviews: Reset scrollbar adjustment when list is empty
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk: 1/2] listviews: Reset scrollbar adjustment when list is empty
- Date: Wed, 13 Jul 2022 11:17:08 +0000 (UTC)
commit 94673707e63ee6533812bf0b9a1a7da23a8df0da
Author: Corey Berla <corey berla me>
Date: Tue Jul 12 12:42:28 2022 -0700
listviews: Reset scrollbar adjustment when list is empty
In a list with a visible scrollbar, the scrollbar usually becomes
invisible when the numbers of items is less than the required amount
to scroll. If, however, the list is emptied all at once,
the scrollbar remains. This happens because when there's an empty
list gtk_list_view_size_allocate() returns early before the scrollbar
adjustment is updated.
Given that the list is empty, simply reset the adjustment values
to zero.
Fixes: https://gitlab.gnome.org/GNOME/gtk/-/issues/4370
gtk/gtkgridview.c | 5 ++++-
gtk/gtklistview.c | 5 ++++-
2 files changed, 8 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkgridview.c b/gtk/gtkgridview.c
index aab1704a09..6ee96d9df5 100644
--- a/gtk/gtkgridview.c
+++ b/gtk/gtkgridview.c
@@ -758,7 +758,10 @@ gtk_grid_view_size_allocate (GtkWidget *widget,
/* step 0: exit early if list is empty */
if (gtk_list_item_manager_get_root (self->item_manager) == NULL)
- return;
+ {
+ gtk_list_base_update_adjustments (GTK_LIST_BASE (self), 0, 0, 0, 0, &x, &y);
+ return;
+ }
/* step 1: determine width of the list */
gtk_grid_view_measure_column_size (self, &col_min, &col_nat);
diff --git a/gtk/gtklistview.c b/gtk/gtklistview.c
index c5217a0348..69b822b316 100644
--- a/gtk/gtklistview.c
+++ b/gtk/gtklistview.c
@@ -596,7 +596,10 @@ gtk_list_view_size_allocate (GtkWidget *widget,
/* step 0: exit early if list is empty */
if (gtk_list_item_manager_get_root (self->item_manager) == NULL)
- return;
+ {
+ gtk_list_base_update_adjustments (GTK_LIST_BASE (self), 0, 0, 0, 0, &x, &y);
+ return;
+ }
/* step 1: determine width of the list */
gtk_widget_measure (widget, opposite_orientation,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]