[tepl] StyleSchemeChooserWidget: scroll to row when changed programmatically
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tepl] StyleSchemeChooserWidget: scroll to row when changed programmatically
- Date: Thu, 23 Apr 2020 10:49:53 +0000 (UTC)
commit 167e25ec00b00bfbbc8a0e0aad9f96eb080fdde1
Author: Sébastien Wilmet <swilmet gnome org>
Date: Thu Apr 23 12:44:21 2020 +0200
StyleSchemeChooserWidget: scroll to row when changed programmatically
Tested with this shell script:
```
while true
do
gsettings set org.gnome.gnome-latex.preferences.editor scheme 'classic'
sleep 3
gsettings set org.gnome.gnome-latex.preferences.editor scheme 'tango'
sleep 3
done
```
tepl/tepl-style-scheme-chooser-widget.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
---
diff --git a/tepl/tepl-style-scheme-chooser-widget.c b/tepl/tepl-style-scheme-chooser-widget.c
index 5b0c276..e2c2b9c 100644
--- a/tepl/tepl-style-scheme-chooser-widget.c
+++ b/tepl/tepl-style-scheme-chooser-widget.c
@@ -159,6 +159,14 @@ tepl_style_scheme_chooser_widget_dispose (GObject *object)
G_OBJECT_CLASS (tepl_style_scheme_chooser_widget_parent_class)->dispose (object);
}
+static void
+scroll_to_row (GtkListBox *list_box,
+ GtkListBoxRow *row)
+{
+ /* See also the call to gtk_container_set_focus_vadjustment() below. */
+ gtk_container_set_focus_child (GTK_CONTAINER (list_box), GTK_WIDGET (row));
+}
+
static void
scroll_to_selected_row (GtkListBox *list_box)
{
@@ -166,11 +174,7 @@ scroll_to_selected_row (GtkListBox *list_box)
if (selected_row != NULL)
{
- /* See also the call to gtk_container_set_focus_vadjustment()
- * below.
- */
- gtk_container_set_focus_child (GTK_CONTAINER (list_box),
- GTK_WIDGET (selected_row));
+ scroll_to_row (list_box, selected_row);
}
}
@@ -261,6 +265,7 @@ tepl_style_scheme_chooser_widget_set_style_scheme (GtkSourceStyleSchemeChooser *
if (style_scheme_equal (cur_style_scheme, style_scheme))
{
gtk_list_box_select_row (chooser->priv->list_box, cur_list_box_row);
+ scroll_to_row (chooser->priv->list_box, cur_list_box_row);
break;
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]