summaryrefslogtreecommitdiffstats
path: root/macosx/ttkMacOSXTheme.c
diff options
context:
space:
mode:
authorKevin Walzer <kw@codebykevin.com>2019-09-02 23:52:47 (GMT)
committerKevin Walzer <kw@codebykevin.com>2019-09-02 23:52:47 (GMT)
commitf6cb62f487dc86c6e7e6f2082b5378dc9755ce2b (patch)
treeff207c2972aa804bf4771d50cf234a6375645da3 /macosx/ttkMacOSXTheme.c
parent6a358e30155c94e44a4fd964ac793161cbc36164 (diff)
downloadtk-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.c14
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];
+ }
+ }
}
}