diff --git a/src/wxmac/src/mac/wx_app.cc b/src/wxmac/src/mac/wx_app.cc index 01ce4af2a2..edfc807cbd 100644 --- a/src/wxmac/src/mac/wx_app.cc +++ b/src/wxmac/src/mac/wx_app.cc @@ -51,6 +51,8 @@ int wxTranslateRawKey(int key); int wxMenuBarHeight; +extern int wx_leave_all_input_alone; + extern wxApp *wxTheApp; //----------------------------------------------------------------------------- wxApp::wxApp():wxbApp() @@ -369,7 +371,9 @@ void wxApp::doMacMouseDown(void) wxTracking(); wxPrepareMenuDraw(); + wx_leave_all_input_alone++; menuResult = MenuSelect(cCurrentEvent.where); + --wx_leave_all_input_alone; wxDoneMenuDraw(!!menuResult); doMacInMenuBar(menuResult, FALSE); } @@ -1437,8 +1441,6 @@ void wxApp::DoDefaultAboutItem(void) //----------------------------------------------------------------------------- -extern int wx_leave_all_input_alone; - void wxPrimDialogSetUp() { wxUnhideCursor(); diff --git a/src/wxmac/src/mac/wx_choic.cc b/src/wxmac/src/mac/wx_choic.cc index d4aaa49eb1..748b3ffc36 100644 --- a/src/wxmac/src/mac/wx_choic.cc +++ b/src/wxmac/src/mac/wx_choic.cc @@ -41,6 +41,8 @@ #define PAD_X 2 #define MSPACEY 1 +extern int wx_leave_all_input_alone; + static char *protect_leading_hyphen(char *s) { if (s[0] == '-') { @@ -316,7 +318,9 @@ void wxChoice::OnEvent(wxMouseEvent *event) // mac platform only startPt.h = startH - PAD_Y; wxTracking(); + wx_leave_all_input_alone++; trackResult = TrackControl(cMacControl,startPt,(ControlActionUPP)-1); + --wx_leave_all_input_alone; if (trackResult) { wxCommandEvent *commandEvent; selection = GetControlValue(cMacControl); diff --git a/src/wxmac/src/mac/wx_dccan3.cc b/src/wxmac/src/mac/wx_dccan3.cc index d09d007ebd..c91bb91439 100644 --- a/src/wxmac/src/mac/wx_dccan3.cc +++ b/src/wxmac/src/mac/wx_dccan3.cc @@ -155,7 +155,7 @@ void wxCanvasDC::DrawText(const char* text, double x, double y, Bool combine, Bo gleaned from ATSUI on a previous round. We can save a factor of 10 for all but the smallest strings by avoiding ATSUI this time. */ - if (!combine + if (!combine && ucs4 && (angle == 0.0) && table_key diff --git a/src/wxmac/src/mac/wx_win.cc b/src/wxmac/src/mac/wx_win.cc index 1af1a574f1..9b5eb23efe 100644 --- a/src/wxmac/src/mac/wx_win.cc +++ b/src/wxmac/src/mac/wx_win.cc @@ -34,6 +34,8 @@ int SetOriginX = 0; int SetOriginY = 0; +extern int wx_leave_all_input_alone; + /* The gMouseWindow declaration confises xform.ss. */ #ifdef MZ_PRECISE_GC START_XFORM_SKIP; @@ -2092,7 +2094,9 @@ Bool wxWindow::PopupMenu(wxMenu *menu, double x, double y) pos.h = (short)x + SetOriginX; LocalToGlobal(&pos); wxTracking(); + wx_leave_all_input_alone++; sel = ::PopUpMenuSelect(m, pos.v, pos.h, 0); + --wx_leave_all_input_alone; ReleaseCurrentDC();