]> git.saurik.com Git - wxWidgets.git/blobdiff - src/aui/auibook.cpp
wxMessageBox off the main thread lost result code.
[wxWidgets.git] / src / aui / auibook.cpp
index caa36cbb33316434d9e3e1e382ac1dbda57c2db5..2d1787ee0ade522452545cdb6bd25258bddb5de3 100644 (file)
@@ -423,7 +423,7 @@ void wxAuiTabContainer::Render(wxDC* raw_dc, wxWindow* wnd)
     size_t button_count = m_buttons.GetCount();
 
     // create off-screen bitmap
-    bmp.Create(m_rect.GetWidth(), m_rect.GetHeight());
+    bmp.Create(m_rect.GetWidth(), m_rect.GetHeight(),*raw_dc);
     dc.SelectObject(bmp);
 
     if (!dc.IsOk())
@@ -2993,9 +2993,21 @@ void wxAuiNotebook::OnChildFocusNotebook(wxChildFocusEvent& evt)
     }
 
 
-    // change the tab selection to the child
-    // which was focused
-    int idx = m_tabs.GetIdxFromWindow(evt.GetWindow());
+    // find the page containing the focused child
+    wxWindow* win = evt.GetWindow();
+    while ( win )
+    {
+        // pages have the notebook as the parent, so stop when we reach one
+        // (and also stop in the impossible case of no parent at all)
+        wxWindow* const parent = win->GetParent();
+        if ( !parent || parent == this )
+            break;
+
+        win = parent;
+    }
+
+    // change the tab selection to this page
+    int idx = m_tabs.GetIdxFromWindow(win);
     if (idx != -1 && idx != m_curPage)
     {
         SetSelection(idx);