range: Fix gadget state propagation
The contents node was not getting state updates at all, and the trough node was missing some state updates as well, because we were not calling update_trough_state() in all the places where it is needed.
This commit is contained in:
@@ -2302,6 +2302,8 @@ update_trough_state (GtkRange *range)
|
||||
|
||||
state &= ~(GTK_STATE_FLAG_PRELIGHT | GTK_STATE_FLAG_ACTIVE);
|
||||
|
||||
gtk_css_gadget_set_state (priv->contents_gadget, state);
|
||||
|
||||
if (priv->mouse_location == MOUSE_TROUGH && !(state & GTK_STATE_FLAG_INSENSITIVE))
|
||||
state |= GTK_STATE_FLAG_PRELIGHT;
|
||||
|
||||
@@ -2418,6 +2420,7 @@ range_grab_add (GtkRange *range,
|
||||
priv->grab_location = location;
|
||||
gtk_range_queue_allocate_location (range, location);
|
||||
|
||||
update_trough_state (range);
|
||||
update_slider_state (range);
|
||||
update_steppers_state (range);
|
||||
|
||||
@@ -3473,6 +3476,7 @@ gtk_range_update_mouse_location (GtkRange *range)
|
||||
else
|
||||
gtk_widget_set_state_flags (widget, GTK_STATE_FLAG_PRELIGHT, FALSE);
|
||||
|
||||
update_trough_state (range);
|
||||
update_slider_state (range);
|
||||
update_steppers_state (range);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user