mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-16 15:14:17 +00:00
notebook: update tab area allocation when switching page
When the active page is switched, it's important gtk_notebook_pages_allocate() is called after the bulk of gtk_notebook_real_switch_page() is run, as the former allocates a different space according to the currently active tab, which is set by the latter. gtk_notebook_pages_allocate() already calls gtk_notebook_redraw_tabs() when the allocation changes, so just move its call down to gtk_notebook_real_switch_page() to fix the bug. https://bugzilla.gnome.org/show_bug.cgi?id=662629
This commit is contained in:
parent
16343bc9a9
commit
ccdc3c1802
@ -6497,6 +6497,8 @@ gtk_notebook_real_switch_page (GtkNotebook *notebook,
|
|||||||
}
|
}
|
||||||
|
|
||||||
gtk_notebook_update_tab_states (notebook);
|
gtk_notebook_update_tab_states (notebook);
|
||||||
|
gtk_notebook_pages_allocate (notebook);
|
||||||
|
|
||||||
gtk_widget_queue_resize (GTK_WIDGET (notebook));
|
gtk_widget_queue_resize (GTK_WIDGET (notebook));
|
||||||
g_object_notify (G_OBJECT (notebook), "page");
|
g_object_notify (G_OBJECT (notebook), "page");
|
||||||
}
|
}
|
||||||
@ -6585,11 +6587,6 @@ gtk_notebook_switch_focus_tab (GtkNotebook *notebook,
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
page = priv->focus_tab->data;
|
page = priv->focus_tab->data;
|
||||||
if (gtk_widget_get_mapped (page->tab_label))
|
|
||||||
gtk_notebook_redraw_tabs (notebook);
|
|
||||||
else
|
|
||||||
gtk_notebook_pages_allocate (notebook);
|
|
||||||
|
|
||||||
gtk_notebook_switch_page (notebook, page);
|
gtk_notebook_switch_page (notebook, page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user