static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* alloc, wxWindow *win )
{
- if (win->GetAutoLayout()) win->Layout();
-
if ((win->m_x == alloc->x) &&
(win->m_y == alloc->y) &&
(win->m_width == alloc->width) &&
{
return;
}
-
+
win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height );
}
gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 );
- m_idHandler = gtk_signal_connect
- (
+ m_idHandler = gtk_signal_connect (
GTK_OBJECT(m_widget), "switch_page",
GTK_SIGNAL_FUNC(gtk_notebook_page_change_callback),
- (gpointer)this
- );
+ (gpointer)this );
m_parent->AddChild( this );
if (m_pages.Number() == 0) return -1;
GtkNotebookPage *g_page = GTK_NOTEBOOK(m_widget)->cur_page;
+ if (!g_page) return -1;
wxNotebookPage *page = (wxNotebookPage *) NULL;
while (node)
{
page = (wxNotebookPage*)node->Data();
- if (page->m_page == g_page)
- break;
+
+ if ((page->m_page == g_page) || (page->m_page == (GtkNotebookPage*)NULL))
+ {
+ // page->m_page is NULL directly after gtk_notebook_append. gtk emits
+ // "switch_page" then and we ask for GetSelection() in the handler for
+ // "switch_page". otherwise m_page should never be NULL. all this
+ // might also be wrong.
+ break;
+ }
node = node->Next();
}