summaryrefslogtreecommitdiffstats
path: root/generic/tkWindow.c
diff options
context:
space:
mode:
authorfvogel <fvogelnew1@free.fr>2017-03-06 23:09:12 (GMT)
committerfvogel <fvogelnew1@free.fr>2017-03-06 23:09:12 (GMT)
commit7bbe7bbdc8405dd7b5a98b9399ed599fd12d3aaa (patch)
treebbe130f0a845fa7fe7033b241089e66847a10591 /generic/tkWindow.c
parentf802dd59b9fdec91f7178bfb7bcaa2ab2818739c (diff)
parent8701bf597e98498ab4d757caa5a2bb9dd46a0554 (diff)
downloadtk-7bbe7bbdc8405dd7b5a98b9399ed599fd12d3aaa.zip
tk-7bbe7bbdc8405dd7b5a98b9399ed599fd12d3aaa.tar.gz
tk-7bbe7bbdc8405dd7b5a98b9399ed599fd12d3aaa.tar.bz2
merge core-8-6-branch
Diffstat (limited to 'generic/tkWindow.c')
-rw-r--r--generic/tkWindow.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/generic/tkWindow.c b/generic/tkWindow.c
index 20b4f20..690a841 100644
--- a/generic/tkWindow.c
+++ b/generic/tkWindow.c
@@ -355,6 +355,9 @@ CreateTopLevelWindow(
* Set the flags specified in the call.
*/
+#ifdef TK_USE_INPUT_METHODS
+ winPtr->ximGeneration = 0;
+#endif /*TK_USE_INPUT_METHODS*/
winPtr->flags |= flags;
/*
@@ -650,6 +653,7 @@ TkAllocWindow(
winPtr->flags = 0;
winPtr->handlerList = NULL;
#ifdef TK_USE_INPUT_METHODS
+ winPtr->ximGeneration = 0;
winPtr->inputContext = NULL;
#endif /* TK_USE_INPUT_METHODS */
winPtr->tagPtr = NULL;
@@ -1442,10 +1446,11 @@ Tk_DestroyWindow(
UnlinkWindow(winPtr);
TkEventDeadWindow(winPtr);
#ifdef TK_USE_INPUT_METHODS
- if (winPtr->inputContext != NULL) {
+ if (winPtr->inputContext != NULL &&
+ winPtr->ximGeneration == winPtr->dispPtr->ximGeneration) {
XDestroyIC(winPtr->inputContext);
- winPtr->inputContext = NULL;
}
+ winPtr->inputContext = NULL;
#endif /* TK_USE_INPUT_METHODS */
if (winPtr->tagPtr != NULL) {
TkFreeBindingTags(winPtr);