X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/223d09f6b523aac674ef9b72a883dfa8d37c5d4e..749692cc9f8f72a6210d470c406a9ff8b4cdf10f:/src/gtk/notebook.cpp diff --git a/src/gtk/notebook.cpp b/src/gtk/notebook.cpp index 7dae078001..f1a03228af 100644 --- a/src/gtk/notebook.cpp +++ b/src/gtk/notebook.cpp @@ -113,7 +113,7 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* { if (g_isIdle) wxapp_install_idle_handler(); - + if ((win->m_x == alloc->x) && (win->m_y == alloc->y) && (win->m_width == alloc->width) && @@ -124,7 +124,26 @@ static void gtk_page_size_callback( GtkWidget *WXUNUSED(widget), GtkAllocation* win->SetSize( alloc->x, alloc->y, alloc->width, alloc->height ); - if (win->GetAutoLayout()) win->Layout(); + if (win->GetAutoLayout()) + win->Layout(); +} + +//----------------------------------------------------------------------------- +// "realize" from m_widget +//----------------------------------------------------------------------------- + +/* GTK 1.2 up to version 1.2.5 is broken so that we have to call a queue_resize + here in order to take repositioning before showing to take effect. */ + +static gint +gtk_notebook_realized_callback( GtkWidget * WXUNUSED(widget), wxWindow *win ) +{ + if (g_isIdle) + wxapp_install_idle_handler(); + + gtk_widget_queue_resize( win->m_widget ); + + return FALSE; } //----------------------------------------------------------------------------- @@ -213,6 +232,9 @@ bool wxNotebook::Create(wxWindow *parent, wxWindowID id, PostCreation(); + gtk_signal_connect( GTK_OBJECT(m_widget), "realize", + GTK_SIGNAL_FUNC(gtk_notebook_realized_callback), (gpointer) this ); + Show( TRUE ); return TRUE;