]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/notebook.cpp
fixing toolbar repositioning (iOS)
[wxWidgets.git] / src / gtk / notebook.cpp
index c169d019c212ae9d17c40a07aa9b1d4a2a47c405..1185f59526204f7f84cf6fe1cda023480fcf667f 100644 (file)
@@ -61,10 +61,11 @@ static void event_after(GtkNotebook*, GdkEvent*, wxNotebook*);
 
 extern "C" {
 static void
-switch_page_after(GtkWidget* widget, GtkNotebookPage*, guint, wxNotebook* win)
+switch_page_after(GtkNotebook* widget, GtkNotebookPage*, guint, wxNotebook* win)
 {
     g_signal_handlers_block_by_func(widget, (void*)switch_page_after, win);
-    win->SendPageChangedEvent(win->m_oldSelection);
+
+    win->GTKOnPageChanged();
 }
 }
 
@@ -125,8 +126,6 @@ void wxNotebook::AddChildGTK(wxWindowGTK* child)
 // wxNotebook
 //-----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxNotebook,wxBookCtrlBase)
-
 BEGIN_EVENT_TABLE(wxNotebook, wxBookCtrlBase)
     EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey)
 END_EVENT_TABLE()
@@ -245,6 +244,8 @@ int wxNotebook::DoSetSelection( size_t page, int flags )
         g_signal_handlers_unblock_by_func(m_widget, (void*)switch_page, this);
     }
 
+    m_selection = page;
+
     wxNotebookPage *client = GetPage(page);
     if ( client )
         client->SetFocus();
@@ -252,6 +253,13 @@ int wxNotebook::DoSetSelection( size_t page, int flags )
     return selOld;
 }
 
+void wxNotebook::GTKOnPageChanged()
+{
+    m_selection = gtk_notebook_get_current_page(GTK_NOTEBOOK(m_widget));
+
+    SendPageChangedEvent(m_oldSelection);
+}
+
 bool wxNotebook::SetPageText( size_t page, const wxString &text )
 {
     wxCHECK_MSG(page < GetPageCount(), false, "invalid notebook index");