X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/22756322824e8f377b792897209d052ca9281534..4d8209b9070ea7120078e83a648f3627e57bc15a:/src/osx/checkbox_osx.cpp diff --git a/src/osx/checkbox_osx.cpp b/src/osx/checkbox_osx.cpp index 1c4142f17d..e45c547eab 100644 --- a/src/osx/checkbox_osx.cpp +++ b/src/osx/checkbox_osx.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: src/osx/carbon/checkbox.cpp +// Name: src/osx/checkbox_osx.cpp // Purpose: wxCheckBox // Author: Stefan Csomor // Modified by: @@ -27,9 +27,9 @@ bool wxCheckBox::Create(wxWindow *parent, long style, const wxValidator& validator, const wxString& name) -{ - m_macIsUserPane = false ; - +{ + DontCreatePeer(); + if ( !wxCheckBoxBase::Create(parent, id, pos, size, style, validator, name) ) return false; @@ -89,7 +89,7 @@ bool wxCheckBox::OSXHandleClicked( double WXUNUSED(timestampsec) ) { wxCheckBoxState origState ; - newState = origState = Get3StateValue(); + origState = Get3StateValue(); switch (origState) { @@ -110,14 +110,24 @@ bool wxCheckBox::OSXHandleClicked( double WXUNUSED(timestampsec) ) default: break; } + if (newState == origState) sendEvent = false; + else + Set3StateValue( newState ); } - + else + { + // in case we cannot avoid this user state change natively (eg cocoa) we intercept it here + if ( newState == wxCHK_UNDETERMINED && !Is3rdStateAllowedForUser() ) + { + newState = wxCHK_CHECKED; + Set3StateValue( newState ); + } + } + if (sendEvent) { - Set3StateValue( newState ); - wxCommandEvent event( wxEVT_COMMAND_CHECKBOX_CLICKED, m_windowId ); event.SetInt( newState ); event.SetEventObject( this );