summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tkCanvWind.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/generic/tkCanvWind.c b/generic/tkCanvWind.c
index 4047b0f..4ca3f9b 100644
--- a/generic/tkCanvWind.c
+++ b/generic/tkCanvWind.c
@@ -619,6 +619,16 @@ DisplayWinItem(
|| (width != Tk_Width(winItemPtr->tkwin))
|| (height != Tk_Height(winItemPtr->tkwin))) {
Tk_MoveResizeWindow(winItemPtr->tkwin, x, y, width, height);
+
+ /*
+ * Tk_MoveResizeWindow runs a Configure event which in turn may run
+ * the event loop and do anything, including destruction of the
+ * canvas window. Catch this case or we would crash in Tk_MapWindow.
+ */
+
+ if (!winItemPtr->tkwin) {
+ return;
+ }
}
Tk_MapWindow(winItemPtr->tkwin);
} else {