summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2023-04-10 23:17:41 +0200
committerBenjamin Otte <otte@redhat.com>2023-04-11 15:59:43 +0200
commitc93eaa49b5a2581d2b08a24b1876f3d2cc99e61e (patch)
tree00066c3e2d8284d16b248c70f67fa0e117afb634
parentc25d0bbac33856cf73891871abb40a49424ac77c (diff)
downloadgtk+-c93eaa49b5a2581d2b08a24b1876f3d2cc99e61e.tar.gz
listitembase: exit early
When update() is called but no values are changed, exit early.
-rw-r--r--gtk/gtklistitembase.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gtk/gtklistitembase.c b/gtk/gtklistitembase.c
index 67bbf95912..cdd8fe9703 100644
--- a/gtk/gtklistitembase.c
+++ b/gtk/gtklistitembase.c
@@ -81,6 +81,11 @@ gtk_list_item_base_update (GtkListItemBase *self,
GtkListItemBasePrivate *priv = gtk_list_item_base_get_instance_private (self);
gboolean was_selected;
+ if (priv->position == position &&
+ priv->item == item &&
+ priv->selected == selected)
+ return;
+
was_selected = priv->selected;
GTK_LIST_ITEM_BASE_GET_CLASS (self)->update (self, position, item, selected);