X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e40298d54ecd5b109222a7c60aa2ef084a304d69..68f572da6ea3064117a1dde629d94441ac2a75bc:/src/mac/carbon/scrolbar.cpp diff --git a/src/mac/carbon/scrolbar.cpp b/src/mac/carbon/scrolbar.cpp index 6f57b2c40d..680bc2f33d 100644 --- a/src/mac/carbon/scrolbar.cpp +++ b/src/mac/carbon/scrolbar.cpp @@ -40,24 +40,25 @@ bool wxScrollBar::Create(wxWindow *parent, wxWindowID id, const wxValidator& validator, const wxString& name) { - if (!parent) - return FALSE; - + if ( !wxControl::Create(parent, id, pos, size, style, validator, name) ) + return FALSE; + Rect bounds ; Str255 title ; - - MacPreControlCreate( parent , id , "" , pos , size ,style, validator , name , &bounds , title ) ; - m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , title , true , 0 , 0 , 100, - kControlScrollBarLiveProc , (long) this ) ; - - wxASSERT_MSG( (ControlHandle) m_macControl != NULL , "No valid mac control" ) ; + MacPreControlCreate( parent , id , wxEmptyString , pos , size ,style, validator , name , &bounds , title ) ; + + m_macControl = ::NewControl(MAC_WXHWND(parent->MacGetRootWindow()) , + &bounds , title , false , 0 , 0 , 100, + kControlScrollBarLiveProc , (long) this) ; + + wxASSERT_MSG( (ControlHandle) m_macControl != NULL , wxT("No valid mac control") ) ; ::SetControlAction( (ControlHandle) m_macControl , wxMacLiveScrollbarActionUPP ) ; MacPostControlCreate() ; - return TRUE; + return TRUE; } wxScrollBar::~wxScrollBar() @@ -105,7 +106,7 @@ void wxScrollBar::Command(wxCommandEvent& event) ProcessCommand(event); } -void wxScrollBar::MacHandleControlClick( WXWidget control , wxInt16 controlpart ) +void wxScrollBar::MacHandleControlClick( WXWidget control , wxInt16 controlpart , bool mouseStillDown ) { if ( (ControlHandle) m_macControl == NULL ) return ; @@ -117,6 +118,10 @@ void wxScrollBar::MacHandleControlClick( WXWidget control , wxInt16 controlpart wxEventType scrollEvent = wxEVT_NULL; int nScrollInc; + // all events have already been reported during mouse down, except for THUMBRELEASE + if ( !mouseStillDown && controlpart !=kControlIndicatorPart ) + return ; + switch( controlpart ) { case kControlUpButtonPart : @@ -137,7 +142,10 @@ void wxScrollBar::MacHandleControlClick( WXWidget control , wxInt16 controlpart break ; case kControlIndicatorPart : nScrollInc = 0 ; - scrollEvent = wxEVT_SCROLL_THUMBTRACK; + if ( mouseStillDown ) + scrollEvent = wxEVT_SCROLL_THUMBTRACK; + else + scrollEvent = wxEVT_SCROLL_THUMBRELEASE; break ; default : wxFAIL_MSG(wxT("illegal scrollbar selector"));