Subject: | Tk::Text ignores non-ASCII input from a keyboard with SCIM input method because XOpenIM() fails |
Tk::Text widget ignores keys with a non-ASCII character if SCIM input method is used.
This Perl Tk code:
#!/usr/bin/perl
use strict;
use warnings;
use Tk;
my $mw = MainWindow->new;
$mw->title ($]);
my $tw = $mw->Text (
-font => "{ DejaVu Sans Mono } 9",
)->pack (-side => "top", -expand => 1, -fill => "both", -anchor => "nw");
MainLoop;
exhibits the behaviour if SCIM input method daemon is running and XMODIFIERS="@im=SCIM" environment variable is set.
ASCII characters are displayed. ISO-8859-1 characters display a garbage and other Unicode characters are ignored. Pasting a Unicode string from a primary selection works.
I tracked it to TkpGetString() that returns empty string because it does not use use Xutf8LookupString() because winPtr->inputContext is NULL because XOpenIM() call in OpenIM() fails and returns NULL.
I dont'd know why XOpenIM() fails. E.g. a code at <https://stackoverflow.com/questions/18246848/get-utf-8-input-with-x11-display> works.
I tried Tk-804.034 as well as latest git tree. I tried perl 5.30.0 as well as 5.28.2. I use SCIM 1.4.17.