diff options
author | Kevin Walzer <kw@codebykevin.com> | 2019-09-02 23:52:47 (GMT) |
---|---|---|
committer | Kevin Walzer <kw@codebykevin.com> | 2019-09-02 23:52:47 (GMT) |
commit | f6cb62f487dc86c6e7e6f2082b5378dc9755ce2b (patch) | |
tree | ff207c2972aa804bf4771d50cf234a6375645da3 /macosx/ttkMacOSXTheme.c | |
parent | 6a358e30155c94e44a4fd964ac793161cbc36164 (diff) | |
download | tk-f6cb62f487dc86c6e7e6f2082b5378dc9755ce2b.zip tk-f6cb62f487dc86c6e7e6f2082b5378dc9755ce2b.tar.gz tk-f6cb62f487dc86c6e7e6f2082b5378dc9755ce2b.tar.bz2 |
Fix for crash on IDLE on macOS caused by Tk
Diffstat (limited to 'macosx/ttkMacOSXTheme.c')
-rw-r--r-- | macosx/ttkMacOSXTheme.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/macosx/ttkMacOSXTheme.c b/macosx/ttkMacOSXTheme.c index 9e032a3..66192ac 100644 --- a/macosx/ttkMacOSXTheme.c +++ b/macosx/ttkMacOSXTheme.c @@ -245,13 +245,13 @@ static void GetBackgroundColor( TkWindow *winPtr = (TkWindow *) tkwin; TkWindow *masterPtr = (TkWindow *) TkGetGeomMaster(tkwin); - while (masterPtr != NULL) { + while (masterPtr && masterPtr->privatePtr) { if (masterPtr->privatePtr->flags & TTK_HAS_CONTRASTING_BG) { break; } masterPtr = (TkWindow *) TkGetGeomMaster(masterPtr); } - if (masterPtr) { + if (masterPtr && masterPtr->privatePtr) { for (int i = 0; i < 4; i++) { rgba[i] = masterPtr->privatePtr->fillRGBA[i]; } @@ -279,10 +279,12 @@ static void GetBackgroundColor( rgba[i] -= 8.0 / 255.0; } } - winPtr->privatePtr->flags |= TTK_HAS_CONTRASTING_BG; - for (int i = 0; i < 4; i++) { - winPtr->privatePtr->fillRGBA[i] = rgba[i]; - } + if (winPtr->privatePtr) { + winPtr->privatePtr->flags |= TTK_HAS_CONTRASTING_BG; + for (int i = 0; i < 4; i++) { + winPtr->privatePtr->fillRGBA[i] = rgba[i]; + } + } } } |