summaryrefslogtreecommitdiffstats
path: root/generic/tkWindow.c
diff options
context:
space:
mode:
authorfvogel <fvogelnew1@free.fr>2018-08-19 14:14:50 (GMT)
committerfvogel <fvogelnew1@free.fr>2018-08-19 14:14:50 (GMT)
commitf3830c78e2a06d1f549182574b04d95b19c0c9ee (patch)
tree403fc3a8e86d9ad2c4ee8de777a6d9d094d7ca47 /generic/tkWindow.c
parent11648c96884595e922b50bc13695d882171a8a73 (diff)
parent211a0239b0584af778fc73614ad8311ff104e8a6 (diff)
downloadtk-f3830c78e2a06d1f549182574b04d95b19c0c9ee.zip
tk-f3830c78e2a06d1f549182574b04d95b19c0c9ee.tar.gz
tk-f3830c78e2a06d1f549182574b04d95b19c0c9ee.tar.bz2
merge trunk
Diffstat (limited to 'generic/tkWindow.c')
-rw-r--r--generic/tkWindow.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/generic/tkWindow.c b/generic/tkWindow.c
index e4d2281..aff5cf9 100644
--- a/generic/tkWindow.c
+++ b/generic/tkWindow.c
@@ -2788,6 +2788,18 @@ DeleteWindowsExitProc(
}
/*
+ * Let error handlers catch up before actual close of displays.
+ * Must be done before tsdPtr->displayList is cleared, otherwise
+ * ErrorProc() in tkError.c cannot associate the pending X errors
+ * to the remaining error handlers.
+ */
+
+ for (dispPtr = tsdPtr->displayList; dispPtr != NULL;
+ dispPtr = dispPtr->nextPtr) {
+ XSync(dispPtr->display, False);
+ }
+
+ /*
* Iterate destroying the displays until no more displays remain. It is
* possible for displays to get recreated during exit by any code that
* calls GetScreen, so we must destroy these new displays as well as the
@@ -3191,8 +3203,8 @@ Initialize(
*/
{
- int numBytes;
- const char *bytes = Tcl_GetStringFromObj(nameObj, &numBytes);
+ size_t numBytes;
+ const char *bytes = TkGetStringFromObj(nameObj, &numBytes);
classObj = Tcl_NewStringObj(bytes, numBytes);