diff options
author | fvogel <fvogelnew1@free.fr> | 2017-03-06 23:09:12 (GMT) |
---|---|---|
committer | fvogel <fvogelnew1@free.fr> | 2017-03-06 23:09:12 (GMT) |
commit | 7bbe7bbdc8405dd7b5a98b9399ed599fd12d3aaa (patch) | |
tree | bbe130f0a845fa7fe7033b241089e66847a10591 /generic/tkWindow.c | |
parent | f802dd59b9fdec91f7178bfb7bcaa2ab2818739c (diff) | |
parent | 8701bf597e98498ab4d757caa5a2bb9dd46a0554 (diff) | |
download | tk-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.c | 9 |
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); |