levelbar: update css nodes even when no offset value is found
GtkLevelBar supports adding custom offsets as style classes, and they are applied whenever the :value property matches. The current code, however, only updates any CSS nodes when an offset is found, causing it to not update when a discrete value changes but no custom offset is added. Fix that by always updating the CSS nodes. https://bugzilla.gnome.org/show_bug.cgi?id=773799
This commit is contained in:
parent
c5a9c0db80
commit
b3e3946b2f
@ -652,9 +652,12 @@ update_level_style_classes (GtkLevelBar *self)
|
|||||||
{
|
{
|
||||||
GtkLevelBarPrivate *priv = self->priv;
|
GtkLevelBarPrivate *priv = self->priv;
|
||||||
gdouble value;
|
gdouble value;
|
||||||
|
const gchar *classes[3] = { NULL, NULL, NULL };
|
||||||
const gchar *value_class = NULL;
|
const gchar *value_class = NULL;
|
||||||
GtkLevelBarOffset *offset, *prev_offset;
|
GtkLevelBarOffset *offset, *prev_offset;
|
||||||
GList *l;
|
GList *l;
|
||||||
|
gint num_filled, num_blocks, i;
|
||||||
|
gboolean inverted;
|
||||||
|
|
||||||
value = gtk_level_bar_get_value (self);
|
value = gtk_level_bar_get_value (self);
|
||||||
|
|
||||||
@ -681,12 +684,6 @@ update_level_style_classes (GtkLevelBar *self)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (value_class)
|
|
||||||
{
|
|
||||||
const gchar *classes[3] = { NULL, NULL, NULL };
|
|
||||||
gint num_filled, num_blocks, i;
|
|
||||||
gboolean inverted;
|
|
||||||
|
|
||||||
inverted = gtk_level_bar_get_real_inverted (self);
|
inverted = gtk_level_bar_get_real_inverted (self);
|
||||||
num_blocks = gtk_level_bar_get_num_block_nodes (self);
|
num_blocks = gtk_level_bar_get_num_block_nodes (self);
|
||||||
|
|
||||||
@ -705,7 +702,6 @@ update_level_style_classes (GtkLevelBar *self)
|
|||||||
for (; i < num_blocks; i++)
|
for (; i < num_blocks; i++)
|
||||||
gtk_css_node_set_classes (gtk_css_gadget_get_node (priv->block_gadget[inverted ? num_blocks - 1 - i : i]), classes);
|
gtk_css_node_set_classes (gtk_css_gadget_get_node (priv->block_gadget[inverted ? num_blocks - 1 - i : i]), classes);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gtk_level_bar_direction_changed (GtkWidget *widget,
|
gtk_level_bar_direction_changed (GtkWidget *widget,
|
||||||
|
Loading…
Reference in New Issue
Block a user