Apply the background fix only if the toolbar has controls
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48549 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -308,15 +308,6 @@ bool wxToolBar::MSWCreateToolbar(const wxPoint& pos, const wxSize& size)
|
|||||||
::SendMessage(GetHwnd(), TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_DRAWDDARROWS);
|
::SendMessage(GetHwnd(), TB_SETEXTENDEDSTYLE, 0, TBSTYLE_EX_DRAWDDARROWS);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// The toolbar background for some colour schemes cannot be determined
|
|
||||||
// (for example Silver). So set an explicit background colour to avoid parts of
|
|
||||||
// the background being painted wrongly.
|
|
||||||
|
|
||||||
int majorVersion, minorVersion;
|
|
||||||
wxGetOsVersion(& majorVersion, & minorVersion);
|
|
||||||
if (majorVersion < 6)
|
|
||||||
SetBackgroundColour(GetBackgroundColour());
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1009,6 +1000,8 @@ bool wxToolBar::Realize()
|
|||||||
// Deal with the controls finally
|
// Deal with the controls finally
|
||||||
// ------------------------------
|
// ------------------------------
|
||||||
|
|
||||||
|
bool hasControls = false;
|
||||||
|
|
||||||
// adjust the controls size to fit nicely in the toolbar
|
// adjust the controls size to fit nicely in the toolbar
|
||||||
int y = 0;
|
int y = 0;
|
||||||
size_t index = 0;
|
size_t index = 0;
|
||||||
@@ -1040,6 +1033,8 @@ bool wxToolBar::Realize()
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
hasControls = true;
|
||||||
|
|
||||||
wxControl *control = tool->GetControl();
|
wxControl *control = tool->GetControl();
|
||||||
wxStaticText * const staticText = tool->GetStaticText();
|
wxStaticText * const staticText = tool->GetStaticText();
|
||||||
|
|
||||||
@@ -1180,6 +1175,13 @@ bool wxToolBar::Realize()
|
|||||||
InvalidateBestSize();
|
InvalidateBestSize();
|
||||||
UpdateSize();
|
UpdateSize();
|
||||||
|
|
||||||
|
// Fix a bug on e.g. the Silver theme on WinXP where control backgrounds
|
||||||
|
// are incorrectly drawn, by forcing the background to a specific colour.
|
||||||
|
int majorVersion, minorVersion;
|
||||||
|
wxGetOsVersion(& majorVersion, & minorVersion);
|
||||||
|
if (majorVersion < 6 && hasControls && !!UseBgCol())
|
||||||
|
SetBackgroundColour(GetBackgroundColour());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user