Fix changing colours of wxSpinCtrl in wxMSW
Ensure that the new colours are actually shown after Refresh() is called by refreshing the text part of the control as well, and not just the spin button. Closes https://github.com/wxWidgets/wxWidgets/pull/1468 Closes #12382.
This commit is contained in:
parent
75134c752e
commit
88f04f551e
@ -65,6 +65,8 @@ public:
|
|||||||
virtual int GetBase() const;
|
virtual int GetBase() const;
|
||||||
virtual bool SetBase(int base);
|
virtual bool SetBase(int base);
|
||||||
|
|
||||||
|
virtual void Refresh( bool eraseBackground = true,
|
||||||
|
const wxRect *rect = (const wxRect *) NULL ) wxOVERRIDE;
|
||||||
|
|
||||||
// implementation only from now on
|
// implementation only from now on
|
||||||
// -------------------------------
|
// -------------------------------
|
||||||
|
@ -404,6 +404,19 @@ wxSpinCtrl::~wxSpinCtrl()
|
|||||||
gs_spinForTextCtrl.erase(GetBuddyHwnd());
|
gs_spinForTextCtrl.erase(GetBuddyHwnd());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxSpinCtrl::Refresh(bool eraseBackground, const wxRect *rect)
|
||||||
|
{
|
||||||
|
wxControl::Refresh(eraseBackground, rect);
|
||||||
|
|
||||||
|
UINT flags = RDW_INVALIDATE;
|
||||||
|
if ( eraseBackground )
|
||||||
|
flags |= RDW_ERASE;
|
||||||
|
|
||||||
|
// Don't bother computing the intersection of the given rectangle with the
|
||||||
|
// buddy control, just always refresh it entirely, as it's much simpler.
|
||||||
|
::RedrawWindow(GetBuddyHwnd(), NULL, NULL, flags);
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxSpinCtrl-specific methods
|
// wxSpinCtrl-specific methods
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user