X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4dcaf11a7b5189be78e52e1412febd7689a959f8..b9b3ccd9ea9bf892369a6fa2c8e28e0ceca18527:/src/gtk/mdi.cpp diff --git a/src/gtk/mdi.cpp b/src/gtk/mdi.cpp index 0b98599d59..ab91caff85 100644 --- a/src/gtk/mdi.cpp +++ b/src/gtk/mdi.cpp @@ -43,6 +43,27 @@ extern bool g_isIdle; extern wxList wxPendingDelete; +//----------------------------------------------------------------------------- +// "switch_page" +//----------------------------------------------------------------------------- + +static void gtk_mdi_page_change_callback(GtkNotebook *WXUNUSED(widget), + GtkNotebookPage *WXUNUSED(page), + gint page, + wxMDIParentFrame *parent ) +{ + if (g_isIdle) + wxapp_install_idle_handler(); + + wxMDIChildFrame *child = parent->GetActiveChild(); + + if (!child) return; + + wxActivateEvent event( wxEVT_ACTIVATE, TRUE, child->GetId() ); + event.SetEventObject( child); + child->GetEventHandler()->ProcessEvent( event ); +} + //----------------------------------------------------------------------------- // wxMDIParentFrame //----------------------------------------------------------------------------- @@ -418,6 +439,9 @@ bool wxMDIClientWindow::CreateClient( wxMDIParentFrame *parent, long style ) m_widget = gtk_notebook_new(); + gtk_signal_connect( GTK_OBJECT(m_widget), "switch_page", + GTK_SIGNAL_FUNC(gtk_mdi_page_change_callback), (gpointer)parent ); + gtk_notebook_set_scrollable( GTK_NOTEBOOK(m_widget), 1 ); m_parent->DoAddChild( this );