Tk Source Code

View Ticket
Login
2006-03-13
02:47 Closed ticket [905830ffff]: Fix needed for Solaris & SCIM IME support plus 8 other changes artifact: 719a73975e user: jenglish
2006-03-11
03:22 Ticket [905830ffff]: 4 changes artifact: 249fbb7bb1 user: dgp
2006-01-21
01:51 Ticket [905830ffff]: 4 changes artifact: 16f9ea1b02 user: lvirden
01:47 Ticket [905830ffff]: 4 changes artifact: 95e3e0f930 user: jenglish
2005-12-16
03:24 Ticket [905830ffff]: 4 changes artifact: 7be3add7b2 user: jenglish
03:24 Add attachment tk84-xim-fixes.patch to ticket [905830ffff] artifact: 0f2a13ba31 user: jenglish
03:24 Ticket [905830ffff] Fix needed for Solaris & SCIM IME support status still Open with 4 other changes artifact: c683abf239 user: jenglish
2005-12-15
09:48 Ticket [905830ffff]: 6 changes artifact: 59b5c75e80 user: jenglish
2005-12-06
00:35 Add attachment tk-scim-workaround.patch to ticket [905830ffff] artifact: 56023940bf user: rmax
00:35 Ticket [905830ffff] Fix needed for Solaris & SCIM IME support status still Open with 4 other changes artifact: 5a54abbc93 user: rmax
2005-12-01
04:22 Ticket [905830ffff]: 4 changes artifact: 2f470d8acf user: hobbs
01:09 Ticket [905830ffff]: 4 changes artifact: 867b5c778e user: dgp
2005-09-06
02:34 Ticket [905830ffff]: 4 changes artifact: 335b58c2aa user: hobbs
02:34 Open ticket [905830ffff]. artifact: ff5a0afb43 user: hobbs
2004-11-11
18:34 Closed ticket [905830ffff]. artifact: 92ffbff765 user: rmax
05:00 Ticket [905830ffff]: 4 changes artifact: 2220d53044 user: hobbs
2004-09-25
00:42 Ticket [905830ffff]: 4 changes artifact: f5956614d6 user: lvirden
00:32 Open ticket [905830ffff]. artifact: 22b680e666 user: hobbs
2004-09-10
19:32 Closed ticket [905830ffff]. artifact: 50cfb7a2e6 user: dkf
18:57 Ticket [905830ffff]: 4 changes artifact: 02f7d37188 user: lvirden
13:42 Ticket [905830ffff]: 5 changes artifact: dd924e5042 user: hobbs
2004-07-31
01:36 Ticket [905830ffff]: 4 changes artifact: 5b4b3f5c61 user: rmax
2004-07-30
20:29 Ticket [905830ffff]: 4 changes artifact: 5971fb5424 user: lvirden
01:03 Add attachment XSetICFocus-8.4.7.patch to ticket [905830ffff] artifact: 8aae052cea user: rmax
01:03 Ticket [905830ffff] Change needed for Solaris input method support status still Open with 4 other changes artifact: c6a31371fb user: rmax
2004-07-29
23:53 Open ticket [905830ffff]. artifact: 8ef7d885b2 user: rmax
23:44 Ticket [905830ffff]: 4 changes artifact: 8f62939aab user: dgp
2004-07-21
10:05 Closed ticket [905830ffff]. artifact: baccb89a59 user: hobbs
2004-07-20
19:18 Ticket [905830ffff]: 4 changes artifact: 505178fd6e user: lvirden
2004-05-04
18:33 Add attachment XIM.patch to ticket [905830ffff] artifact: 7a1d974ac4 user: lvirden
18:33 Ticket [905830ffff] Change needed for Solaris input method support status still Open with 4 other changes artifact: 034a37b6c1 user: lvirden
07:24 Ticket [905830ffff]: 4 changes artifact: 7395d2de79 user: hobbs
2004-04-21
22:48 Ticket [905830ffff]: 4 changes artifact: 231fe5c18f user: lvirden
22:48 Ticket [905830ffff]: 1 change artifact: 882e6e81a8 user: lvirden
2004-03-10
18:18 Ticket [905830ffff]: 4 changes artifact: eed8195447 user: lvirden
18:11 Ticket [905830ffff]: 4 changes artifact: 4a261fcd2d user: lvirden
2004-03-09
03:11 Ticket [905830ffff]: 4 changes artifact: fc768803de user: lvirden
2004-03-06
00:19 Ticket [905830ffff]: 4 changes artifact: 5a8163eeaf user: lvirden
2004-02-27
19:58 Ticket [905830ffff]: 1 change artifact: 5ff13d10b9 user: lvirden
12:58 New ticket [905830ffff]. artifact: 3cd3bb4421 user: lvirden

Ticket UUID: 905830
Title: Fix needed for Solaris & SCIM IME support
Type: Bug Version: obsolete: 8.4.12
Submitter: lvirden Created on: 2004-02-27 12:58:15
Subsystem: 69. Events Assigned To: jenglish
Priority: 8 Severity:
Status: Closed Last Modified: 2006-03-13 02:47:20
Resolution: Fixed Closed By: jenglish
    Closed on: 2006-03-12 19:47:20
Description:
To date, developers here have been unable to get tcl/tk
8 to interact with the japenese kanji input method
application kinput2 while using SPARC Solaris 8.

However, one of our developers spent some time and
worked out the changes necessary to get this to work.

Here is what the developer reported back to me,
regarding the slight change needed so that things work
right on Solaris:

./tk8.4.5/generic/tkEvent.c
880a881
>           long im_event_mask;
933a935,938
>           XGetICValues(winPtr->inputContext,
XNFilterEvents, &im_event_mask, N
ULL);
>           winPtr->atts.event_mask |= im_event_mask;
>           XSelectInput(winPtr->display,
winPtr->window, winPtr->atts.event_mas
k);
>           XSetICFocus(winPtr->inputContext);

The contractor went on to say:

   Basically, the window wasn't requesting input method
events before trying to  filter them with XFilterEvent.
 There is nothing in the code I added that is Solaris
specific.  I don't know why Japanese input behaves
differently than on other Unix versions.
User Comments: jenglish added on 2006-03-13 02:47:20:
Logged In: YES 
user_id=68433

> status?

Fixed in CVS HEAD and in core-8-4-branch; verified on
Debian, SuSE, and Solaris.

The "more comprehensive patch" mentioned earlier
(2005-12-15) isn't finished yet -- there's still quite a bit
of stuff that should be cleaned up -- but the immediate
problem with SCIM has been fixed.  

Closing the bug for now, can apply cleanups later.

dgp added on 2006-03-11 03:22:23:
Logged In: YES 
user_id=80530

status?

lvirden added on 2006-01-21 01:51:58:
Logged In: YES 
user_id=15949

While part of the patch file, itself, was incompatible 
wtih 8.4.12 here on Solaris (the patch appears, from what 
I could tell, to be against 8.5 code), I manually inserted 
the code into 8.4.12, and had Neil Ostrove test and he 
reports back that the change appears to work on SPARC 
Solaris.

jenglish added on 2006-01-21 01:47:08:
Logged In: YES 
user_id=68433

rmax reported on the chat a while ago that the patch works
for Suse.  No feedback yet from Solaris users.

Committing to core-8-4 branch and CVS HEAD for wider testing.

jenglish added on 2005-12-16 03:24:31:

File Added - 159999: tk84-xim-fixes.patch

jenglish added on 2005-12-16 03:24:29:
Logged In: YES 
user_id=68433

Attached patch against Tk 8.4.12 is a minimal change that
seems to fix SCIM.  Tested on Debian "sarge" with:

    LC_CTYPE=ja_JP.UTF-8 XMODIFIERS=@im=kinput2
    LC_CTYPE=en_US.UTF-8 XMODIFIERS=@im=SCIM
    LC_CTYPE=zh_CN.UTF-8 XMODIFIERS=@im=SCIM

Summary of changes:

+ Revert change disabling @im=SCIM from 2005-12-05.
+ Make sure all X events get passed to XFilterEvent(), not
just those with a corresponding Tk window.

Please test.  A more comprehensive patch to Tk CVS HEAD to
follow.

jenglish added on 2005-12-15 09:48:49:
Logged In: YES 
user_id=68433

Probable cause of the SCIM breakage: XFilterEvent() is only
being called for X events directed to a Tk window (call
chain: Tk_HandleEvent -> InvokeInputMethods -> XFilterEvent;
but Tk_HandleEvent bails out early if GetTkWindowFromXEvent
returns NULL).

It looks like SCIM is using ClientMessages to a private
(SCIM-generated) X window for part of the communication. 
Since those never get passed to XFilterEvent, the IM window
never gets activated.

Calling XFilterEvents() earlier on, however, causes a
different sort of breakage -- input methods only work if the
mouse is directly over the focus widget.  (There are a lot
of other focus-related glitches too).

I think I've finally got a handle on this, though, patch to
follow.

rmax added on 2005-12-06 00:35:25:

File Added - 158729: tk-scim-workaround.patch

Logged In: YES 
user_id=124643

I am attaching the patch mentioned in
https://bugzilla.novell.com/show_bug.cgi?id=77424#c24 and
also just applied it to HEAD.

Whether it gets applied to 8.4 before or after 8.4.12, or
not at all is now up to the Tk maintainers.

hobbs added on 2005-12-01 04:22:23:
Logged In: YES 
user_id=72656

Note also 910127 1204469 and

https://bugzilla.novell.com/attachment.cgi?id=48662

And this is the respective bug report: 
https://bugzilla.novell.com/show_bug.cgi?id=77424

dgp added on 2005-12-01 01:09:36:
Logged In: YES 
user_id=80530


Any hope for a backport
into Tk 8.4.12 ?

hobbs added on 2005-09-06 02:34:02:
Logged In: YES 
user_id=72656

This is a discussion about a patch for fixing SCIM, which is
related:

<rmax> The patch is attached to the SUSE bug report:
https://bugzilla.novell.com/show_bug.cgi?id=77424
<rmax> When using Compose, and the first thing ever typed in
an entry widgets is the Compose key, it ignores Compose for
this first composed character.
<rmax> The same happens sometimes when the mouse pointer
gets moved out of the entry, or (more frequently) when it
gets moved out of the respective toplevel window.
<tclguy> what focus style do you use?
<rmax> In fvwm2 I use focus follows mouse, and sloppy focus.
<rmax> that means, that the focus isn't taken away from a
window when I move the mouse out to the root window.
<tclguy> right, until you reach another toplevel
<rmax> But a colleague who uses click to focus has seen
similar problems.
<rmax> What I've found out about it so far is, that the
first keypress ever is reported to the toplevel windows,
although the entry was explicitly given [focus].
<rmax> That doesn't seem to be a problem unless that very
first keypress is Compose.
<rmax> The patch tries to do some tricks with the mouse
position. When I remove them, the situation with mouse moved
out of widget gets better, but sometimes it still happens.
<tclguy> OK, I may get to it today, but I have to slog
through my email first
<rmax> ... and the problem with the first keypress is almost
always there.

rmax added on 2004-11-11 18:34:54:
Logged In: YES 
user_id=124643

It was still missing on HEAD. Done now.

hobbs added on 2004-11-11 05:00:46:
Logged In: YES 
user_id=72656

rmax - reminder?  I think this is all done, but bug is still
open.

lvirden added on 2004-09-25 00:42:22:
Logged In: YES 
user_id=15949

Jeff, the code that rmax submitted was done against tk
8.4.7, so I don't know what 'backported to 8.4' means.

hobbs added on 2004-09-25 00:32:16:
Logged In: YES 
user_id=72656

This never got backported to 8.4.

lvirden added on 2004-09-10 18:57:22:
Logged In: YES 
user_id=15949

Re: is this one finished.

With Reinhard's changes, it appears that things work on
SPARC Solaris and Reinhard appeared to be satisfied.

hobbs added on 2004-09-10 13:42:41:
Logged In: YES 
user_id=72656

Is this one finished?

rmax added on 2004-07-31 01:36:41:
Logged In: YES 
user_id=124643

That the Compose key doesn't work after these environmental
changes is not a bug. There can only be one input method
active at a time, and that is either kinput2 or Compose.

lvirden added on 2004-07-30 20:29:07:
Logged In: YES 
user_id=15949


Here's two notes relating to this bug.

1. To get Tk to interact with the japanese x input methods
AFTER the patch we include in this bug report, we had to
make these environmental variable changes (and then exported
the variables):

a. LANG="ja"
b. XMODIFIERS="@im=kinput2"
c. unset LC_ALL LC_CTYPE

then make certain that XUSERFILESEARCHPATH includes the
directory containing the kinput2 application resource file.

Then we had to start kinput2:
kinput2 -xim -kinput -canna -cannaserver ourserver &

Then, to test within Tk, we used:
pack [entry .a];
entry .b
entry .c
pack .c .b;
pack [frame .f];

and used the <shift>Space key to activate the kinput2 over
the spot conversion.

2. With the above environmental changes, regardless of
whether we used a wish patched with this patch (or rmax's
patch, etc.), the Compose key does not work.  Without the
above environmental changes, the Compose key works just
fine, on all 3 entry widgets,  on SPARC Solaris 8 (using
GNOME , if that is at all relevant).

rmax added on 2004-07-30 01:03:15:

File Added - 95705: XSetICFocus-8.4.7.patch

Logged In: YES 
user_id=124643

It seems the code block that calls XSetICFocus got inserted
at the wrong place. It only gets called when a window gets
mapped for the first time, but it should get called on evert
FocusIn event, so that the input focus for XIM gets moved to
the right window. The new patch should fix this.

Larry, would you please check if things still work on
Solaris with the new patch applied?

dgp added on 2004-07-29 23:44:49:
Logged In: YES 
user_id=80530


This patch has apparently introduced
a new bug (1000051) in Tk 8.4.7

hobbs added on 2004-07-21 10:05:19:
Logged In: YES 
user_id=72656

I had to check that inputContext was not NULL, but otherwise
this looks OK on Linux (don't have Solaris with JP patches
for testing).  Added it to 8.4.7 and 8.5-head.

lvirden added on 2004-07-20 19:18:36:
Logged In: YES 
user_id=15949

I don't know why, but for some reason, the fact that an
updated patch was attached to this message, I thought with a
comment, doesn't seem to have included the comment here.

lvirden added on 2004-05-04 18:33:05:

File Added - 86029: XIM.patch

hobbs added on 2004-05-04 07:24:52:
Logged In: YES 
user_id=72656

This patch isn't helpful without context.  Please attach
patch made with diff -u, as the core-8-4-branch head is
different (patch below will not apply).

lvirden added on 2004-04-21 22:48:53:
Logged In: YES 
user_id=15949

the patches have been confirmed to work successfully with
sparc solaris 8 and tk 8.4.6 - this patch MUST be installed
for XIM to work on sparc solaris.

lvirden added on 2004-03-10 18:18:26:
Logged In: YES 
user_id=15949

Actually, the 'change' to the LC_CTYPE and LC_ALL variables
that is being suggested is just to unset them.

lvirden added on 2004-03-10 18:11:57:
Logged In: YES 
user_id=15949

Turns out that one final resolution to the GNOME issue has
turned up.
The local setup for GNOME included setting LC_CTYPE and
LC_ALL to
C before the user ever logged in.  This caused problems with
input method support.  Changing the LC_ values, along with
the Tk patch in this report,
resulted in the sparc solaris environment being able to use
the tk input method support.

lvirden added on 2004-03-09 03:11:23:
Logged In: YES 
user_id=15949

Turns out that with a slight change to the original patch,
things look much better for Tk with regards to the X error
that was mentioned.  However, there is still one gotcha -
unrelated to Tk:

First, the new Tk patch:


./tk8.4.5/generic/tkEvent.c
880a881
>           long im_event_mask = 0L;
932a934,941
>           }
>           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);



Now, the gotcha - even with this patch, on Sparc Solaris's
shipped GNOME distribution, things don't work right out of
the box.  Instead, we have found that if we rlogin to the
machine from a running GNOME session, then set the DISPLAY
variable to "machine:0.0" , then start kinput2 and the
application, things work fine.

This is NOT Tk related - we are seeing similar weird things
with non-Tk apps that interact with this kinput2 (version
2.0 fix 2).

Things work fine under CDE and OpenWindows AFTER this patch
is applied - before this patch, we were unable to get tk
apps to interact with kinput2.

lvirden added on 2004-03-06 00:19:21:
Logged In: YES 
user_id=15949

The developer reports one bug encountered after this patch:

If you tell wish to expect a kinput2 input server with

LC_CTYPE=ja XMODIFIERS="@im=kinput2" wish

and kinput2 isn't running, then an X error is generated

  X Error of failed request:  BadValue (integer parameter
out of range for operation)
  Major opcode of failed request:  2 (X_ChangeWindowAttributes)
  Value in failed request:  0xffef9a7f
  Serial number of failed request:  214
  Current serial number in output stream:  412



----
He is working on a fix for this now.

Attachments: