X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e07a2142811be9d4a4f5eaa730eeebcbe88b24c9..6c28639791ab5706eca36489e4f776b7ef6756eb:/src/mac/carbon/spinctrl.cpp diff --git a/src/mac/carbon/spinctrl.cpp b/src/mac/carbon/spinctrl.cpp index 1325f233d9..bbdee58bbf 100644 --- a/src/mac/carbon/spinctrl.cpp +++ b/src/mac/carbon/spinctrl.cpp @@ -8,11 +8,7 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "spinctrl.h" -#endif - -#include "wx/defs.h" +#include "wx/wxprec.h" #if wxUSE_SPINCTRL @@ -27,7 +23,7 @@ // the focus rect around a text may have 4 pixels in each direction // we handle these problems right now in an extended vis region of a window -static const wxCoord TEXTBORDER = 0 ; +static const wxCoord TEXTBORDER = 4 ; // the margin between the text control and the spin static const wxCoord MARGIN = 8 - TEXTBORDER; @@ -55,6 +51,15 @@ protected: { m_spin->GetSpinButton()->SetValue(val); + // If we're already processing a text update from m_spin, + // don't send it again, since we could end up recursing + // infinitely. + if (event.GetId() == m_spin->GetId()) + { + event.Skip(); + return; + } + // Send event that the text was manually changed wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, m_spin->GetId()); event.SetEventObject(m_spin); @@ -267,6 +272,13 @@ bool wxSpinCtrl::Show(bool show) return TRUE; } +void wxSpinCtrl::SetFocus() +{ + if ( m_text != NULL) { + m_text->SetFocus(); + } +} + // ---------------------------------------------------------------------------- // value and range access // ----------------------------------------------------------------------------