git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43244
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
if (offset == 0)
offset += m_art->GetIndentSize();
if (offset == 0)
offset += m_art->GetIndentSize();
// prepare the tab-close-button array
// prepare the tab-close-button array
- while (m_tab_close_buttons.GetCount() > page_count)
- m_tab_close_buttons.RemoveAt(m_tab_close_buttons.GetCount()-1);
+ // make sure tab button entries which aren't used are marked as hidden
+ for (i = page_count; i < m_tab_close_buttons.GetCount(); ++i)
+ m_tab_close_buttons.Item(i).cur_state = wxAUI_BUTTON_STATE_HIDDEN;
+ // make sure there are enough tab button entries to accommodate all tabs
while (m_tab_close_buttons.GetCount() < page_count)
{
wxAuiTabContainerButton tempbtn;
while (m_tab_close_buttons.GetCount() < page_count)
{
wxAuiTabContainerButton tempbtn;
wxWindow* wnd;
if (TabHitTest(evt.m_x, evt.m_y, &wnd))
{
wxWindow* wnd;
if (TabHitTest(evt.m_x, evt.m_y, &wnd))
{
- wxAuiNotebookEvent e(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, m_windowId);
- e.SetSelection(GetIdxFromWindow(wnd));
- e.SetOldSelection(GetActivePage());
- e.SetEventObject(this);
- GetEventHandler()->ProcessEvent(e);
+ int new_selection = GetIdxFromWindow(wnd);
+
+ if (new_selection != GetActivePage())
+ {
+ wxAuiNotebookEvent e(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING, m_windowId);
+ e.SetSelection(new_selection);
+ e.SetOldSelection(GetActivePage());
+ e.SetEventObject(this);
+ GetEventHandler()->ProcessEvent(e);
+ }
m_click_pt.x = evt.m_x;
m_click_pt.y = evt.m_y;
m_click_pt.x = evt.m_x;
m_click_pt.y = evt.m_y;
if (!RemovePage(page_idx))
return false;
if (!RemovePage(page_idx))
return false;
// actually destroy the window now
if (wnd->IsKindOf(CLASSINFO(wxAuiMDIChildFrame)))
{
// actually destroy the window now
if (wnd->IsKindOf(CLASSINFO(wxAuiMDIChildFrame)))
{
evt.SetEventObject(this);
if (!GetEventHandler()->ProcessEvent(evt) || evt.IsAllowed())
{
evt.SetEventObject(this);
if (!GetEventHandler()->ProcessEvent(evt) || evt.IsAllowed())
{
+ int old_curpage = m_curpage;
+ m_curpage = new_page;
+
// program allows the page change
evt.SetEventType(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED);
(void)GetEventHandler()->ProcessEvent(evt);
// program allows the page change
evt.SetEventType(wxEVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED);
(void)GetEventHandler()->ProcessEvent(evt);
wxAuiTabCtrl* ctrl;
int ctrl_idx;
if (FindTab(wnd, &ctrl, &ctrl_idx))
wxAuiTabCtrl* ctrl;
int ctrl_idx;
if (FindTab(wnd, &ctrl, &ctrl_idx))
DoSizing();
ctrl->DoShowHide();
DoSizing();
ctrl->DoShowHide();
- int old_curpage = m_curpage;
- m_curpage = new_page;