git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44194
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
wxSearchCtrl, wxAboutBox, wxTreebook, tar streams.
wxSearchCtrl, wxAboutBox, wxTreebook, tar streams.
+2.8.2
+-----
+
+wxMSW
+
+- Fix lack of spin control update event when control lost focus
+
IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrl, wxControl)
#endif
IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrl, wxControl)
#endif
BEGIN_EVENT_TABLE(wxSpinCtrl, wxSpinButton)
EVT_CHAR(wxSpinCtrl::OnChar)
BEGIN_EVENT_TABLE(wxSpinCtrl, wxSpinButton)
EVT_CHAR(wxSpinCtrl::OnChar)
void wxSpinCtrl::NormalizeValue()
{
void wxSpinCtrl::NormalizeValue()
{
- int value = GetValue();
- SetValue( value );
- if (value != m_oldValue)
- {
- wxCommandEvent event( wxEVT_COMMAND_SPINCTRL_UPDATED, GetId() );
- event.SetEventObject( this );
- event.SetInt( value );
- GetEventHandler()->ProcessEvent( event );
- m_oldValue = value;
- }
+ const int value = GetValue();
+ if ( value == m_oldValue )
+ return;
+
+ SetValue(value);
+
+ wxCommandEvent event(wxEVT_COMMAND_SPINCTRL_UPDATED, GetId());
+ event.SetEventObject(this);
+ event.SetInt(value);
+ GetEventHandler()->ProcessEvent(event);
+ m_oldValue = value;
}
// ----------------------------------------------------------------------------
}
// ----------------------------------------------------------------------------
SetRange(min, max);
SetValue(initial);
SetRange(min, max);
SetValue(initial);
m_oldValue = initial;
// subclass the text ctrl to be able to intercept some events
m_oldValue = initial;
// subclass the text ctrl to be able to intercept some events
// current value in the control, so do it manually
::SetWindowText(GetBuddyHwnd(), wxString::Format(_T("%d"), val));
}
// current value in the control, so do it manually
::SetWindowText(GetBuddyHwnd(), wxString::Format(_T("%d"), val));
}
m_oldValue = GetValue();
}
m_oldValue = GetValue();
}
event.SetEventObject(this);
int value = eventSpin.GetPosition();
event.SetInt( value );
event.SetEventObject(this);
int value = eventSpin.GetPosition();
event.SetInt( value );
if (value != m_oldValue)
(void)GetEventHandler()->ProcessEvent(event);
if (value != m_oldValue)
(void)GetEventHandler()->ProcessEvent(event);