// toolbar-specific post initialisation
::SendMessage(GetHwnd(), TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0);
+#ifdef TB_SETEXTENDEDSTYLE
if ( wxApp::GetComCtl32Version() >= 471 )
::SendMessage(GetHwnd(), TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_DRAWDDARROWS);
+#endif
return true;
}
sizeBest.y = size.cy;
}
- if (!IsVertical() && !(GetWindowStyle() & wxTB_NODIVIDER))
- sizeBest.y += 1;
+ if (!IsVertical())
+ {
+ // Without the extra height, DoGetBestSize can report a size that's
+ // smaller than the actual window, causing windows to overlap slightly
+ // in some circumstances, leading to missing borders (especially noticeable
+ // in AUI layouts).
+ if (!(GetWindowStyle() & wxTB_NODIVIDER))
+ sizeBest.y += 2;
+ sizeBest.y ++;
+ }
CacheBestSize(sizeBest);
DoToggleTool(tool, true);
}
}
- else if (tool->IsToggled())
+ else if ( tool->IsToggled() )
{
wxToolBarToolsList::compatibility_iterator nodePrev = node->GetPrevious();
int prevIndex = i - 1;
if ( tool->Toggle(false) )
DoToggleTool(tool, false);
- prevButton.fsState = TBSTATE_ENABLED;
+ prevButton.fsState &= TBSTATE_CHECKED;
nodePrev = nodePrev->GetPrevious();
prevIndex--;
}