diff options
author | Corey Berla <corey@berla.me> | 2022-12-14 07:51:22 -1000 |
---|---|---|
committer | Corey Berla <corey@berla.me> | 2022-12-14 07:51:34 -1000 |
commit | 7081bfc614809649be7e460e21f4ef27886ab9e5 (patch) | |
tree | 964eaa25a6e6fb265910a801edd87aebfdcf6eeb | |
parent | c09ba28b061cd285dc9882a7da03db3ae6fbcaf3 (diff) | |
download | gtk+-7081bfc614809649be7e460e21f4ef27886ab9e5.tar.gz |
listbase: Split scroll_to_item for reuse
-rw-r--r-- | gtk/gtklistbase.c | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/gtk/gtklistbase.c b/gtk/gtklistbase.c index 03bcb48288..cedae1aa9b 100644 --- a/gtk/gtklistbase.c +++ b/gtk/gtklistbase.c @@ -825,21 +825,13 @@ gtk_list_base_update_focus_tracker (GtkListBase *self) } static void -gtk_list_base_scroll_to_item (GtkWidget *widget, - const char *action_name, - GVariant *parameter) +gtk_list_base_scroll_to_item (GtkListBase *self, + guint pos) { - GtkListBase *self = GTK_LIST_BASE (widget); GtkListBasePrivate *priv = gtk_list_base_get_instance_private (self); int start, end; double align_along, align_across; GtkPackType side_along, side_across; - guint pos; - - if (!g_variant_check_format_string (parameter, "u", FALSE)) - return; - - g_variant_get (parameter, "u", &pos); /* figure out primary orientation and if position is valid */ if (!gtk_list_base_get_allocation_along (GTK_LIST_BASE (self), pos, &start, &end)) @@ -878,6 +870,22 @@ gtk_list_base_scroll_to_item (GtkWidget *widget, } static void +gtk_list_base_scroll_to_item_action (GtkWidget *widget, + const char *action_name, + GVariant *parameter) +{ + GtkListBase *self = GTK_LIST_BASE (widget); + guint pos; + + if (!g_variant_check_format_string (parameter, "u", FALSE)) + return; + + g_variant_get (parameter, "u", &pos); + + gtk_list_base_scroll_to_item (self, pos); +} + +static void gtk_list_base_select_item_action (GtkWidget *widget, const char *action_name, GVariant *parameter) @@ -1179,7 +1187,7 @@ gtk_list_base_class_init (GtkListBaseClass *klass) gtk_widget_class_install_action (widget_class, "list.scroll-to-item", "u", - gtk_list_base_scroll_to_item); + gtk_list_base_scroll_to_item_action); /** * GtkListBase|list.select-item: |