X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/415f4a011a843ea696c1e92aa8adec3c67540497..ec2df34e27ba41f202ecbf096cdfed082a9ddb8f:/src/osx/carbon/window.cpp diff --git a/src/osx/carbon/window.cpp b/src/osx/carbon/window.cpp index 52e02398a9..b918d152d8 100644 --- a/src/osx/carbon/window.cpp +++ b/src/osx/carbon/window.cpp @@ -87,6 +87,12 @@ WXWidget wxWidgetImpl::FindFocus() return control; } +// no compositing to take into account under carbon +wxWidgetImpl* wxWidgetImpl::FindBestFromWXWidget(WXWidget control) +{ + return FindFromWXWidget(control); +} + // --------------------------------------------------------------------------- // Carbon Events // --------------------------------------------------------------------------- @@ -585,7 +591,7 @@ wxMacWindowServiceEventHandler(EventHandlerCallRef WXUNUSED(handler), return result ; } -pascal OSStatus wxMacUnicodeTextEventHandler( EventHandlerCallRef handler , EventRef event , void *data ) +WXDLLEXPORT pascal OSStatus wxMacUnicodeTextEventHandler( EventHandlerCallRef handler , EventRef event , void *data ) { OSStatus result = eventNotHandledErr ; wxWindowMac* focus = (wxWindowMac*) data ; @@ -653,8 +659,7 @@ pascal OSStatus wxMacUnicodeTextEventHandler( EventHandlerCallRef handler , Even I don't have time to look into that right now. -- CL */ - if ( wxTheApp->MacSendCharEvent( - focus , message , 0 , when , 0 , 0 , uniChars[pos] ) ) + if ( wxTheApp->MacSendCharEvent( focus , message , 0 , when , uniChars[pos] ) ) { result = noErr ; } @@ -666,15 +671,13 @@ pascal OSStatus wxMacUnicodeTextEventHandler( EventHandlerCallRef handler , Even case kEventTextInputUnicodeForKeyEvent : { UInt32 keyCode, modifiers ; - Point point ; EventRef rawEvent ; unsigned char charCode ; GetEventParameter( event, kEventParamTextInputSendKeyboardEvent, typeEventRef, NULL, sizeof(rawEvent), NULL, &rawEvent ) ; - GetEventParameter( rawEvent, kEventParamKeyMacCharCodes, typeChar, NULL, sizeof(char), NULL, &charCode ); + GetEventParameter( rawEvent, kEventParamKeyMacCharCodes, typeChar, NULL, 1, NULL, &charCode ); GetEventParameter( rawEvent, kEventParamKeyCode, typeUInt32, NULL, sizeof(UInt32), NULL, &keyCode ); GetEventParameter( rawEvent, kEventParamKeyModifiers, typeUInt32, NULL, sizeof(UInt32), NULL, &modifiers ); - GetEventParameter( rawEvent, kEventParamMouseLocation, typeQDPoint, NULL, sizeof(Point), NULL, &point ); UInt32 message = (keyCode << 8) + charCode; @@ -686,8 +689,7 @@ pascal OSStatus wxMacUnicodeTextEventHandler( EventHandlerCallRef handler , Even WXEVENTHANDLERCALLREF formerHandler = wxTheApp->MacGetCurrentEventHandlerCallRef() ; wxTheApp->MacSetCurrentEvent( event , handler ) ; - if ( wxTheApp->MacSendCharEvent( - focus , message , modifiers , when , point.h , point.v , uniChars[pos] ) ) + if ( wxTheApp->MacSendCharEvent( focus , message , modifiers , when , uniChars[pos] ) ) { result = noErr ; } @@ -836,7 +838,7 @@ wxWidgetImplType* wxWidgetImpl::CreateUserPane( wxWindowMac* wxpeer, { OSStatus err = noErr; Rect bounds = wxMacGetBoundsForControl( wxpeer , pos , size ) ; - wxMacControl* c = new wxMacControl(wxpeer) ; + wxMacControl* c = new wxMacControl(wxpeer, false, true) ; UInt32 features = 0 | kControlSupportsEmbedding | kControlSupportsLiveFeedback @@ -1408,7 +1410,15 @@ void wxMacControl::Enable( bool enable ) void wxMacControl::SetDrawingEnabled( bool enable ) { - HIViewSetDrawingEnabled( m_controlRef , enable ); + if ( enable ) + { + HIViewSetDrawingEnabled( m_controlRef , true ); + HIViewSetNeedsDisplay( m_controlRef, true); + } + else + { + HIViewSetDrawingEnabled( m_controlRef , false ); + } } void wxMacControl::GetRectInWindowCoords( Rect *r )