mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-06 08:40:08 +00:00
notebook: Only reset style on tab labels when it actually changes
This commit is contained in:
parent
963c0905f2
commit
ea928e4212
@ -6308,6 +6308,9 @@ gtk_notebook_update_tab_states (GtkNotebook *notebook)
|
||||
{
|
||||
GtkNotebookPrivate *priv = notebook->priv;
|
||||
GList *list;
|
||||
int pos;
|
||||
|
||||
pos = gtk_widget_path_length (gtk_widget_get_path (GTK_WIDGET (notebook))) - 1;
|
||||
|
||||
for (list = priv->children; list != NULL; list = list->next)
|
||||
{
|
||||
@ -6315,12 +6318,21 @@ gtk_notebook_update_tab_states (GtkNotebook *notebook)
|
||||
|
||||
if (page->tab_label)
|
||||
{
|
||||
GtkRegionFlags current_flags;
|
||||
|
||||
if (page == priv->cur_page)
|
||||
gtk_widget_set_state_flags (page->tab_label, GTK_STATE_FLAG_ACTIVE, FALSE);
|
||||
else
|
||||
gtk_widget_unset_state_flags (page->tab_label, GTK_STATE_FLAG_ACTIVE);
|
||||
|
||||
gtk_widget_reset_style (page->tab_label);
|
||||
/* FIXME: We should store these flags somewhere instead of poking
|
||||
* the widget's path */
|
||||
if (!gtk_widget_path_iter_has_region (gtk_widget_get_path (page->tab_label),
|
||||
pos,
|
||||
GTK_STYLE_REGION_TAB,
|
||||
¤t_flags)
|
||||
|| current_flags != _gtk_notebook_get_tab_flags (notebook, page))
|
||||
gtk_widget_reset_style (page->tab_label);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user