gtk1, mrtve klavesy a vlastni widget
Radek Cervinka
radek.cervinka na centrum.cz
Čtvrtek Duben 1 21:19:17 CEST 2004
Dobry vecer,
pricmrndavam do jednom mezinarodnim projektu (lazarus.freepascal.org) a
narazil jsem u viz subj.
Jedna se o open source klon Delphi pod linux nad FreePascalem (vse GPL).
Podporuje jak win32 tak gtk, gtk2, qt.
Maji widget s docela slozitou obsluhou klaves (přemapování kodů,
přeposílání komponentam atd) a nemuzeme ho prinutit aby
akceptoval ceske mrtve klavesy.
Zajimave je ze pro gtkentry to funguje, ale události jsou trosku jine (viz
nize) - hlavne v tom ze prijde spravná hodnota pro Č :(.
Sranda je ze na X serveru autora nikdy znak dead_* neprijde :).
Dival jsem se do zdrojaku gtkentry a na nic zajimaveho jsem neprisel (nijak
tak s dead keys nesachuji, proste jim to funguje).
Na internetu jsem vyguglil pouze czech howto a problemy s dead keys (coz
mi nepomohlo), pak dokument od Redhatu o obsluze klavesnice v gtk
(zminka o mrtvych klavesach, ale zadny priklad).
Prosim delal tady nekdo vlastni widget, kde se deje neco s dead keys, nebo
ma nekdo nejaky example s primou reakci na dead_*,(neco jako: Ha, prisla
mrtva klavesa, takze musim udelat tohle...)? Uz nad tim tvrdnu cca 14 dní.
Vim, ze je v nasi obsluze chyba, ale nevim kde.
V obou případech jsem psal velke C s hackem.
Type R - uvolneni, P - stisk.
Jo a na co je tam to "ISO_Prev_Group"?
XFree 4.3, mandrake 9.2 updated, cz_qwerty, wmaker.
Jo a v mandrake 8.0 to pry funguje (z doslechu).
gtkentry:
E: Type= P, KeyVal= 0xFFE1 (65505) "Shift_L"
E: Type= R, KeyVal= 0xFE5A (65114) "dead_caron"
E: Type= P, KeyVal= 0x1C8 (456) "Ccaron"
zde dostaneme korektni hodnotu pro velke Č
E: Type= R, KeyVal= 0x43 (67) "C"
E: Type= R, KeyVal= 0xFE0A (65034) "ISO_Prev_Group"
nas widged:
E: Type= P, KeyVal= 0xFFE1 (65505) "Shift_L"
E: Type= P, KeyVal= 0xFE5A (65114) "dead_caron"
zde dostaneme +
E: Type= R, KeyVal= 0xFE5A (65114) "dead_caron"
E: Type= P, KeyVal= 0x43 (67) "C"
zde dostaneme C
E: Type= R, KeyVal= 0x43 (67) "C"
E: Type= R, KeyVal= 0xFE0A (65034) "ISO_Prev_Group"
Dekuji
s pranim hezke noci
Radek Cervinka
Další informace o konferenci Linux