Erase toolbar background even if it doesn't contain any controls/spaces.
Minor correction to changes in r62971: we still need to hook WM_ERASEBKGND in toolbar parent when painting the toolbar itself even when there are no dummy separators in it (and so we don't need to paint them over). Without this, the background of simple toolbars without controls was not erased correctly. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62980 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
fe0c328904
commit
f3d0bc4364
@ -1744,18 +1744,15 @@ bool wxToolBar::HandlePaint(WXWPARAM wParam, WXLPARAM lParam)
|
||||
}
|
||||
}
|
||||
|
||||
if ( !rgnDummySeps.IsOk() )
|
||||
if ( rgnDummySeps.IsOk() )
|
||||
{
|
||||
// don't interfere with toolbar default painting at all if we don't
|
||||
// need to -- and we don't if we have no dummy separators at all
|
||||
return false;
|
||||
}
|
||||
|
||||
// exclude the area occupied by the controls and stretchable spaces from
|
||||
// the update region to prevent the toolbar from drawing separators in it
|
||||
if ( !::ValidateRgn(GetHwnd(), GetHrgnOf(rgnDummySeps)) )
|
||||
{
|
||||
wxLogLastError(wxT("ValidateRgn()"));
|
||||
// exclude the area occupied by the controls and stretchable spaces
|
||||
// from the update region to prevent the toolbar from drawing
|
||||
// separators in it
|
||||
if ( !::ValidateRgn(GetHwnd(), GetHrgnOf(rgnDummySeps)) )
|
||||
{
|
||||
wxLogLastError(wxT("ValidateRgn()"));
|
||||
}
|
||||
}
|
||||
|
||||
// still let the native control draw everything else normally but set up a
|
||||
@ -1779,11 +1776,14 @@ bool wxToolBar::HandlePaint(WXWPARAM wParam, WXLPARAM lParam)
|
||||
GetParent()->MSWSetEraseBgHook(NULL);
|
||||
|
||||
|
||||
// erase the dummy separators region ourselves now as nobody painted over
|
||||
// them
|
||||
WindowHDC hdc(GetHwnd());
|
||||
::SelectClipRgn(hdc, GetHrgnOf(rgnDummySeps));
|
||||
MSWDoEraseBackground(hdc);
|
||||
if ( rgnDummySeps.IsOk() )
|
||||
{
|
||||
// erase the dummy separators region ourselves now as nobody painted
|
||||
// over them
|
||||
WindowHDC hdc(GetHwnd());
|
||||
::SelectClipRgn(hdc, GetHrgnOf(rgnDummySeps));
|
||||
MSWDoEraseBackground(hdc);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user