From c79fd6dcf3ca7f681ad3a9080eaebb25e97c2010 Mon Sep 17 00:00:00 2001 From: hobbs Date: Sat, 15 Jun 2002 02:08:12 +0000 Subject: * generic/tkCmds.c (Tk_TkObjCmd): * unix/tkUnixKey.c (TkpGetString): * generic/tkEvent.c (Tk_HandleEvent): * generic/tkInt.h: changed useInputMethods boolean from int to a bit in the flags variable (TK_DISPLAY_USE_IM) --- ChangeLog | 6 ++++++ generic/tkCmds.c | 10 +++++++--- generic/tkEvent.c | 4 ++-- generic/tkInt.h | 12 ++++++++---- unix/tkUnixKey.c | 4 ++-- 5 files changed, 25 insertions(+), 11 deletions(-) diff --git a/ChangeLog b/ChangeLog index 57d0554..4eea260 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2002-06-14 Jeff Hobbs + * generic/tkCmds.c (Tk_TkObjCmd): + * unix/tkUnixKey.c (TkpGetString): + * generic/tkEvent.c (Tk_HandleEvent): + * generic/tkInt.h: changed useInputMethods boolean from int to a + bit in the flags variable (TK_DISPLAY_USE_IM) + * generic/tkInt.h: * generic/tkCmds.c (Tk_WmObjCmd): * unix/tkUnixWm.c (Tk_WmCmd): diff --git a/generic/tkCmds.c b/generic/tkCmds.c index 16739c2..dcf0c64 100644 --- a/generic/tkCmds.c +++ b/generic/tkCmds.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: tkCmds.c,v 1.25 2002/06/15 01:54:47 hobbs Exp $ + * RCS: @(#) $Id: tkCmds.c,v 1.26 2002/06/15 02:08:12 hobbs Exp $ */ #include "tkPort.h" @@ -714,7 +714,11 @@ Tk_TkObjCmd(clientData, interp, objc, objv) return TCL_ERROR; } #ifdef TK_USE_INPUT_METHODS - dispPtr->useInputMethods = boolVal; + if (boolVal) { + dispPtr->flags |= TK_DISPLAY_USE_IM; + } else { + dispPtr->flags &= ~TK_DISPLAY_USE_IM; + } #endif /* TK_USE_INPUT_METHODS */ } else if ((objc - skip) != 2) { Tcl_WrongNumArgs(interp, 2, objv, @@ -722,7 +726,7 @@ Tk_TkObjCmd(clientData, interp, objc, objv) return TCL_ERROR; } Tcl_SetBooleanObj(Tcl_GetObjResult(interp), - dispPtr->useInputMethods); + (dispPtr->flags & TK_DISPLAY_USE_IM)); break; } } diff --git a/generic/tkEvent.c b/generic/tkEvent.c index f096111..754b451 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.14 2002/06/15 01:54:09 hobbs Exp $ + * RCS: @(#) $Id: tkEvent.c,v 1.15 2002/06/15 02:08:12 hobbs Exp $ */ #include "tkPort.h" @@ -861,7 +861,7 @@ Tk_HandleEvent(eventPtr) * Unix, but this hasn't been factored out of the generic code yet. */ dispPtr = winPtr->dispPtr; - if ((dispPtr->useInputMethods)) { + if ((dispPtr->flags & TK_DISPLAY_USE_IM)) { if (!(winPtr->flags & (TK_CHECKED_IC|TK_ALREADY_DEAD))) { winPtr->flags |= TK_CHECKED_IC; if (dispPtr->inputMethod != NULL) { diff --git a/generic/tkInt.h b/generic/tkInt.h index f7b260a..4a7e74c 100644 --- a/generic/tkInt.h +++ b/generic/tkInt.h @@ -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: tkInt.h,v 1.47 2002/06/15 01:54:47 hobbs Exp $ + * RCS: $Id: tkInt.h,v 1.48 2002/06/15 02:08:12 hobbs Exp $ */ #ifndef _TKINT @@ -482,7 +482,6 @@ typedef struct TkDisplay { Window warpWindow; int warpX; int warpY; - int useInputMethods; /* Whether to use input methods */ /* * The following field(s) were all added for Tk8.4 @@ -496,13 +495,18 @@ typedef struct TkDisplay { * Flag values for TkDisplay flags. * TK_DISPLAY_COLLAPSE_MOTION_EVENTS: (default on) * Indicates that we should collapse motion events on this display + * TK_DISPLAY_USE_IM: (default on) + * Whether to use input methods for this display * TK_DISPLAY_XIM_SPOT: (default off) * Indicates that we should use over-the-spot XIM on this display + * TK_DISPLAY_WM_TRACING: (default off) + * Whether we should do wm tracing on this display. */ #define TK_DISPLAY_COLLAPSE_MOTION_EVENTS (1 << 0) -#define TK_DISPLAY_XIM_SPOT (1 << 1) -#define TK_DISPLAY_WM_TRACING (1 << 2) +#define TK_DISPLAY_USE_IM (1 << 1) +#define TK_DISPLAY_XIM_SPOT (1 << 2) +#define TK_DISPLAY_WM_TRACING (1 << 3) /* * One of the following structures exists for each error handler diff --git a/unix/tkUnixKey.c b/unix/tkUnixKey.c index 9bb4633..ac18f9c 100644 --- a/unix/tkUnixKey.c +++ b/unix/tkUnixKey.c @@ -9,7 +9,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tkUnixKey.c,v 1.8 2002/06/15 01:54:09 hobbs Exp $ + * RCS: @(#) $Id: tkUnixKey.c,v 1.9 2002/06/15 02:08:12 hobbs Exp $ */ #include "tkInt.h" @@ -95,7 +95,7 @@ TkpGetString(winPtr, eventPtr, dsPtr) Tcl_DStringSetLength(&buf, TCL_DSTRING_STATIC_SIZE-1); #ifdef TK_USE_INPUT_METHODS - if (winPtr->dispPtr->useInputMethods + if ((winPtr->dispPtr->flags & TK_DISPLAY_USE_IM) && (winPtr->inputContext != NULL) && (eventPtr->type == KeyPress)) { #if TK_XIM_SPOT -- cgit v0.12