diff options
author | hobbs <hobbs@noemail.net> | 2004-07-21 03:07:02 (GMT) |
---|---|---|
committer | hobbs <hobbs@noemail.net> | 2004-07-21 03:07:02 (GMT) |
commit | a38f42803c329b5950b3c28e0c33e69aa9659720 (patch) | |
tree | 1c7569a981086da12cc6aeb1f00c6253d538c3d5 /generic/tkEvent.c | |
parent | 43b524f6930af7af6e3c1ae2271ec85ac2f0f3c6 (diff) | |
download | tk-a38f42803c329b5950b3c28e0c33e69aa9659720.zip tk-a38f42803c329b5950b3c28e0c33e69aa9659720.tar.gz tk-a38f42803c329b5950b3c28e0c33e69aa9659720.tar.bz2 |
* generic/tkEvent.c (Tk_HandleEvent): ensure IC focus is set after
creation. [Bug #905830]
FossilOrigin-Name: 8461c26c45b8b79ebf8d830191bfe01cc376f838
Diffstat (limited to 'generic/tkEvent.c')
-rw-r--r-- | generic/tkEvent.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/generic/tkEvent.c b/generic/tkEvent.c index 117f873..a1f9a9f 100644 --- a/generic/tkEvent.c +++ b/generic/tkEvent.c @@ -11,7 +11,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkEvent.c,v 1.17.2.2 2004/02/16 23:09:25 wolfsuit Exp $ + * RCS: @(#) $Id: tkEvent.c,v 1.17.2.3 2004/07/21 03:07:06 hobbs Exp $ */ #include "tkPort.h" @@ -883,6 +883,7 @@ Tk_HandleEvent(eventPtr) dispPtr = winPtr->dispPtr; if ((dispPtr->flags & TK_DISPLAY_USE_IM)) { if (!(winPtr->flags & (TK_CHECKED_IC|TK_ALREADY_DEAD))) { + long im_event_mask = 0L; winPtr->flags |= TK_CHECKED_IC; if (dispPtr->inputMethod != NULL) { #if TK_XIM_SPOT @@ -936,6 +937,15 @@ Tk_HandleEvent(eventPtr) NULL); #endif } + if (winPtr->inputContext != NULL) { + XGetICValues(winPtr->inputContext, + XNFilterEvents, &im_event_mask, NULL); + if (im_event_mask != 0L) { + XSelectInput(winPtr->display, winPtr->window, + winPtr->atts.event_mask | im_event_mask); + XSetICFocus(winPtr->inputContext); + } + } } if (XFilterEvent(eventPtr, None)) { goto done; |