Petr Pajas <[EMAIL PROTECTED]> writes:
>Hi Nick, All,
>
>as we discussed here before, one needs to set $top->useinputmethods(1)
>to make Tk804 accept accented characters from various national keymaps
>in X. However, this seems to break still with UTF8 locale settings
>(which are default on RH8 and RH9 for most languages).

RedHat are generaly considered to be premature in making the switch.

>
>In my case, I cannot input czech characters if I 
>
>unset LC_ALL
>export LANG="cs_CZ.utf8"
>export LC_CTYPE="cs_CZ.utf8"
>
>Setting LC_CTYPE="cs_CZ" works though (but may break other
>applications, like Qt, etc). My test script looks as below.  With
>cs_CZ.utf8, $w->XEvent->A is empty, while all other values are
>correct. With cs_CZ, $w->XEvent->A returns the correct utf8 encoded
>character and that character appears in the Entry.
>
>Does anybody have an idea what could cause this problem? Anybody else
>using national keyboard maps and UTF8 locale?

There is _a_ UTF-8 input map in my SuSE's X11 - I think this is 
an XFree86 type question. But I am copying this to perl-unicode list 
as there folk there may have some insight...


>
>#!/usr/bin/perl
>package main;
>
>use Tk 804;
>use Tk::Entry;
>
>use POSIX;
>setlocale('LC_CTYPE',"cs_CZ.utf8");
>use locale;
>
>$top = MainWindow->new;
>$top->useinputmethods(1);  # Try this?
>binmode(STDOUT,':utf8');
>$top->bind("<KeyPress>", sub { my $w=shift; 
>                              print $w->XEvent->A," ",
>                                $w->XEvent->N, " ",
>                                  $w->XEvent->K, " ",
>                                    $w->XEvent->k,
>                                "\n" });
>$e=$top->Entry->pack;
>$e->focus();
>MainLoop;
>__END__
>
>Same applies to Russian, etc. I tried setting several national
>keyboards with setxkbmap and kxkb (KDE), with the same result.  (BTW,
>"setxkbmap ru" is dangerous, 'cause you cannot type "us" then:-) to
>get back to normal.  "setxkbmap cz" is safe though, since on czech
>keyboard accented letters occupy just the top row of the keyboard with
>numbers being remapped to shift+number and the rest of the keyboard is
>(almost) like us, so you may always switch back by typing "setxkbmap
>us").
>
>-- Petr

Reply via email to