From 82a529bee068d65da4c56c30e13a4f652f2c064b Mon Sep 17 00:00:00 2001 From: hobbs Date: Wed, 17 Nov 2004 22:44:27 +0000 Subject: * generic/tkCanvWind.c (ConfigureWinItem): unmap windows immediately when state hidden is requested. [Bug 982248] --- ChangeLog | 3 +++ generic/tkCanvWind.c | 18 +++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2ea170b..703d0ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2004-11-17 Jeff Hobbs + * generic/tkCanvWind.c (ConfigureWinItem): unmap windows + immediately when state hidden is requested. [Bug 982248] + * generic/tkCanvImg.c (ImageToPostscript): don't try ps generation of canvas image item without image specified. [Bug 1032300] diff --git a/generic/tkCanvWind.c b/generic/tkCanvWind.c index a820163..7b8c844 100644 --- a/generic/tkCanvWind.c +++ b/generic/tkCanvWind.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkCanvWind.c,v 1.9 2003/02/09 07:48:22 hobbs Exp $ + * RCS: @(#) $Id: tkCanvWind.c,v 1.9.2.1 2004/11/17 22:44:37 hobbs Exp $ */ #include @@ -382,6 +382,14 @@ ConfigureWinItem(interp, canvas, itemPtr, objc, objv, flags) (ClientData) winItemPtr); } } + if ((winItemPtr->tkwin != NULL) + && (itemPtr->state == TK_STATE_HIDDEN)) { + if (canvasTkwin == Tk_Parent(winItemPtr->tkwin)) { + Tk_UnmapWindow(winItemPtr->tkwin); + } else { + Tk_UnmaintainGeometry(winItemPtr->tkwin, canvasTkwin); + } + } ComputeWindowBbox(canvas, winItemPtr); @@ -588,11 +596,15 @@ DisplayWinItem(canvas, itemPtr, display, drawable, regionX, regionY, if (winItemPtr->tkwin == NULL) { return; } - if(state == TK_STATE_NULL) { + if (state == TK_STATE_NULL) { state = ((TkCanvas *)canvas)->canvas_state; } if (state == TK_STATE_HIDDEN) { - Tk_UnmapWindow(winItemPtr->tkwin); + if (canvasTkwin == Tk_Parent(winItemPtr->tkwin)) { + Tk_UnmapWindow(winItemPtr->tkwin); + } else { + Tk_UnmaintainGeometry(winItemPtr->tkwin, canvasTkwin); + } return; } Tk_CanvasWindowCoords(canvas, (double) winItemPtr->header.x1, -- cgit v0.12