X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f75363eed1d32dd851f32485fd608122509eb7a5..ec341c7e1fc448c79edfd5f848d5e5adc598dd42:/src/mac/carbon/toplevel.cpp diff --git a/src/mac/carbon/toplevel.cpp b/src/mac/carbon/toplevel.cpp index 0572ffc79a..e074c7fb31 100644 --- a/src/mac/carbon/toplevel.cpp +++ b/src/mac/carbon/toplevel.cpp @@ -233,18 +233,9 @@ pascal OSStatus wxMacWindowEventHandler( EventHandlerCallRef handler , EventRef case kEventClassTextInput : if ( wxMacConvertEventToRecord( event , &rec ) ) { - short keycode ; - short keychar ; - keychar = short(rec.message & charCodeMask); - keycode = short(rec.message & keyCodeMask) >> 8 ; + wxTheApp->m_macCurrentEvent = &rec ; wxWindow* focus = wxWindow::FindFocus() ; - // it is wxWindows Convention to have Ctrl Key Combinations at ASCII char value - if ( (rec.modifiers & controlKey) && keychar >= 0 && keychar < 0x20 ) - { - keychar += 0x40 ; - } - long keyval = wxMacTranslateKey(keychar, keycode) ; - if ( (focus != NULL) && wxTheApp->MacSendKeyDownEvent( focus , keyval , rec.modifiers , rec.when , rec.where.h , rec.where.v ) ) + if ( (focus != NULL) && !UMAMenuEvent(&rec) && wxTheApp->MacSendKeyDownEvent( focus , rec.message , rec.modifiers , rec.when , rec.where.h , rec.where.v ) ) { // was handled internally result = noErr ; @@ -331,7 +322,11 @@ void wxTopLevelWindowMac::MacCreateRealWindow( const wxString& title, } else { +#if TARGET_CARBON wclass = kPlainWindowClass ; +#else + wclass = kFloatingWindowClass ; +#endif } } else if ( HasFlag( wxCAPTION ) ) @@ -354,7 +349,11 @@ void wxTopLevelWindowMac::MacCreateRealWindow( const wxString& title, } else { +#if TARGET_CARBON wclass = kPlainWindowClass ; +#else + wclass = kModalWindowClass ; +#endif } } @@ -613,8 +612,8 @@ bool wxTopLevelWindowMac::Show(bool show) return FALSE; if (show) - { - ::ShowWindow( (WindowRef)m_macWindow ) ; + { + ::TransitionWindow((WindowRef)m_macWindow,kWindowZoomTransitionEffect,kWindowShowTransitionAction,nil); ::SelectWindow( (WindowRef)m_macWindow ) ; // no need to generate events here, they will get them triggered by macos // actually they should be , but apparently they are not @@ -625,7 +624,7 @@ bool wxTopLevelWindowMac::Show(bool show) } else { - ::HideWindow( (WindowRef)m_macWindow ) ; + ::TransitionWindow((WindowRef)m_macWindow,kWindowZoomTransitionEffect,kWindowHideTransitionAction,nil); } if ( !show ) @@ -684,9 +683,13 @@ void wxTopLevelWindowMac::DoMoveWindow(int x, int y, int width, int height) if ( doResize ) ::SizeWindow((WindowRef)m_macWindow, m_width, m_height , true); + + // the OS takes care of invalidating and erasing the new area so we only have to + // take care of refreshing for full repaints + + if ( doResize && !HasFlag(wxNO_FULL_REPAINT_ON_RESIZE) ) + Refresh() ; - // the OS takes care of invalidating and erasing the new area - // we have erased the old one if ( IsKindOf( CLASSINFO( wxFrame ) ) ) {