diff options
-rw-r--r-- | generic/tkCanvWind.c | 10 |
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 { |