summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authordas <das>2006-05-12 18:17:55 (GMT)
committerdas <das>2006-05-12 18:17:55 (GMT)
commitefbef34c60403590439c9e99a3f1f4b958f30610 (patch)
treefb99f4007bad0b04541adf13ecdd5cbe8e5b6204 /generic
parent4ee3a920c279e3f27ab120c6f044096ff8eccbbb (diff)
downloadtk-efbef34c60403590439c9e99a3f1f4b958f30610.zip
tk-efbef34c60403590439c9e99a3f1f4b958f30610.tar.gz
tk-efbef34c60403590439c9e99a3f1f4b958f30610.tar.bz2
* generic/tkCanvWind.c (DisplayWinItem, WinItemRequestProc): ensure
canvas window items are unmapped when canvas is unmapped. [Bug 940117] * macosx/tkMacOSXSubwindows.c (TkMacOSXUpdateClipRgn): empty clip region of unmapped windows to prevent any drawing into them or into their children from becoming visible. [Bug 940117] * macosx/tkMacOSXInt.h: revert Jim's attempt of 2005-03-14 to * macosx/tkMacOSXSubwindows.c: fix Bug 940117 as it disables Map/Unmap event propagation to children. [Bug 1480105] * macosx/tkMacOSXDraw.c (TkPutImage): handle tkPictureIsOpen flag, fixes incorrect positioning of images with complex alpha on native buttons; actual alpha blending is still broken in this situation. [Bug 1155596] * macosx/tkMacOSXEvent.c (TkMacOSXProcessCommandEvent): * macosx/tkMacOSXMenus.c (TkMacOSXInitMenus): workaround carbon bug with key shortcut for 'Preferences' app menu item. [Bug 1481503] * macosx/tkMacOSXKeyEvent.c (TkMacOSXProcessKeyboardEvent): only check for HICommand menu item shortcuts in the application menu. * macosx/tkMacOSXInt.h: initialize keyboard layout setup in * macosx/tkMacOSXInit.c: TkpInit() rather than during handling of * macosx/tkMacOSXKeyEvent.c: first key down event. * macosx/tkMacOSXDraw.c: add optional debug code to flash clip * macosx/tkMacOSXSubwindows.c: regions during update or draw.
Diffstat (limited to 'generic')
-rw-r--r--generic/tkCanvWind.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/generic/tkCanvWind.c b/generic/tkCanvWind.c
index 7b8c844..c04db84 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.2.1 2004/11/17 22:44:37 hobbs Exp $
+ * RCS: @(#) $Id: tkCanvWind.c,v 1.9.2.2 2006/05/12 18:17:55 das Exp $
*/
#include <stdio.h>
@@ -599,7 +599,12 @@ DisplayWinItem(canvas, itemPtr, display, drawable, regionX, regionY,
if (state == TK_STATE_NULL) {
state = ((TkCanvas *)canvas)->canvas_state;
}
- if (state == TK_STATE_HIDDEN) {
+
+ /*
+ * A drawable of None is used by the canvas UnmapNotify handler
+ * to indicate that we should no longer display ourselves.
+ */
+ if (state == TK_STATE_HIDDEN || drawable == None) {
if (canvasTkwin == Tk_Parent(winItemPtr->tkwin)) {
Tk_UnmapWindow(winItemPtr->tkwin);
} else {
@@ -1062,8 +1067,14 @@ WinItemRequestProc(clientData, tkwin)
WindowItem *winItemPtr = (WindowItem *) clientData;
ComputeWindowBbox(winItemPtr->canvas, winItemPtr);
- DisplayWinItem(winItemPtr->canvas, (Tk_Item *) winItemPtr,
- (Display *) NULL, (Drawable) None, 0, 0, 0, 0);
+
+ /*
+ * A drawable argument of None to DisplayWinItem is used by the canvas
+ * UnmapNotify handler to indicate that we should no longer display
+ * ourselves, so need to pass a (bogus) non-zero drawable value here.
+ */
+ DisplayWinItem(winItemPtr->canvas, (Tk_Item *) winItemPtr, NULL,
+ (Drawable) -1, 0, 0, 0, 0);
}
/*