diff options
Diffstat (limited to 'generic/tkFont.c')
-rw-r--r-- | generic/tkFont.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/generic/tkFont.c b/generic/tkFont.c index 86fdd87..156ebf3 100644 --- a/generic/tkFont.c +++ b/generic/tkFont.c @@ -13,7 +13,9 @@ #include "tkInt.h" #include "tkFont.h" - +#if defined(MAC_OSX_TK) +#include "tkMacOSXInt.h" +#endif /* * The following structure is used to keep track of all the fonts that exist * in the current application. It must be stored in the TkMainInfo for the @@ -872,7 +874,18 @@ TheWorldHasChanged( ClientData clientData) /* Info about application's fonts. */ { TkFontInfo *fiPtr = clientData; +#if defined(MAC_OSX_TK) + /* + * On macOS it is catastrophic to recompute all widgets while the + * [NSView drawRect] method is drawing. The best that we can do in + * that situation is to abort the recomputation and hope for the best. + */ + + if (TkpAppIsDrawing()) { + return; + } +#endif fiPtr->updatePending = 0; RecomputeWidgets(fiPtr->mainPtr->winPtr); } |