summaryrefslogtreecommitdiffstats
path: root/generic/tkWindow.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2023-12-03 15:21:32 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2023-12-03 15:21:32 (GMT)
commit0b211c22418acb8c209a71580ce2b262a322bd9b (patch)
tree0acf8fa8963e9c731a213f5f3d050d5f8c014fc7 /generic/tkWindow.c
parenta7f42afa4caeab5a05a5eab3b22db3d5c99ebc52 (diff)
downloadtk-0b211c22418acb8c209a71580ce2b262a322bd9b.zip
tk-0b211c22418acb8c209a71580ce2b262a322bd9b.tar.gz
tk-0b211c22418acb8c209a71580ce2b262a322bd9b.tar.bz2
Fix [40af63fa24]: Aqua: passing None to XMapWindow() should be fatal
Diffstat (limited to 'generic/tkWindow.c')
-rw-r--r--generic/tkWindow.c27
1 files changed, 15 insertions, 12 deletions
diff --git a/generic/tkWindow.c b/generic/tkWindow.c
index 9ab59a3..2058501 100644
--- a/generic/tkWindow.c
+++ b/generic/tkWindow.c
@@ -1740,16 +1740,18 @@ Tk_MapWindow(
TkWmMapWindow(winPtr);
return;
}
- winPtr->flags |= TK_MAPPED;
- XMapWindow(winPtr->display, winPtr->window);
- event.type = MapNotify;
- event.xmap.serial = LastKnownRequestProcessed(winPtr->display);
- event.xmap.send_event = False;
- event.xmap.display = winPtr->display;
- event.xmap.event = winPtr->window;
- event.xmap.window = winPtr->window;
- event.xmap.override_redirect = winPtr->atts.override_redirect;
- Tk_HandleEvent(&event);
+ if ((winPtr->window != None)
+ && (XMapWindow(winPtr->display, winPtr->window) == Success)) {
+ winPtr->flags |= TK_MAPPED;
+ event.type = MapNotify;
+ event.xmap.serial = LastKnownRequestProcessed(winPtr->display);
+ event.xmap.send_event = False;
+ event.xmap.display = winPtr->display;
+ event.xmap.event = winPtr->window;
+ event.xmap.window = winPtr->window;
+ event.xmap.override_redirect = winPtr->atts.override_redirect;
+ Tk_HandleEvent(&event);
+ }
}
/*
@@ -1900,8 +1902,9 @@ Tk_UnmapWindow(
return;
}
winPtr->flags &= ~TK_MAPPED;
- XUnmapWindow(winPtr->display, winPtr->window);
- if (!(winPtr->flags & TK_TOP_HIERARCHY)) {
+ if ((winPtr->window != None)
+ && (XUnmapWindow(winPtr->display, winPtr->window) == Success)
+ && !(winPtr->flags & TK_TOP_HIERARCHY)) {
XEvent event;
event.type = UnmapNotify;