gtknotebook: Optimize GtkStyleContext usage

This commit is contained in:
Jasper St. Pierre 2014-11-25 11:05:49 -08:00
parent 2cd835c076
commit c71e213134

View File

@ -2240,15 +2240,17 @@ get_padding_and_border (GtkNotebook *notebook,
GtkBorder *border)
{
GtkStyleContext *context;
GtkStateFlags state;
context = gtk_widget_get_style_context (GTK_WIDGET (notebook));
gtk_style_context_get_padding (context, 0, border);
state = gtk_style_context_get_state (context);
gtk_style_context_get_padding (context, state, border);
if (notebook->priv->show_border || notebook->priv->show_tabs)
{
GtkBorder tmp;
gtk_style_context_get_border (context, 0, &tmp);
gtk_style_context_get_border (context, state, &tmp);
border->top += tmp.top;
border->right += tmp.right;
border->bottom += tmp.bottom;
@ -6247,7 +6249,7 @@ gtk_notebook_calculate_tabs_allocation (GtkNotebook *notebook,
if (page != priv->cur_page)
{
GtkBorder active_padding, normal_padding, padding;
GtkBorder padding = {};
/* The active tab is by definition at least the same height as the inactive one.
* The padding we're building is the offset between the two tab states,
@ -6259,16 +6261,11 @@ gtk_notebook_calculate_tabs_allocation (GtkNotebook *notebook,
gtk_style_context_save (context);
notebook_tab_prepare_style_context (notebook, page, context, TRUE);
gtk_style_context_get_padding (context, GTK_STATE_FLAG_ACTIVE, &active_padding);
gtk_style_context_get_padding (context, GTK_STATE_FLAG_NORMAL, &normal_padding);
/* gtk_style_context_get_padding (context, GTK_STATE_FLAG_ACTIVE, &active_padding); */
/* gtk_style_context_get_padding (context, GTK_STATE_FLAG_NORMAL, &normal_padding); */
gtk_style_context_restore (context);
padding.top = MAX (0, active_padding.top - normal_padding.top);
padding.right = MAX (0, active_padding.right - normal_padding.right);
padding.bottom = MAX (0, active_padding.bottom - normal_padding.bottom);
padding.left = MAX (0, active_padding.left - normal_padding.left);
switch (tab_pos)
{
case GTK_POS_TOP: