From: Masahiro S. ()
<sa...@to...> - 2003-10-26 14:53:44
|
さかいです。 From: Masao Mutoh <mu...@hi...> Date: Sat, 18 Oct 2003 01:45:03 +0900 > さかいさん > > むとうです。 > > Gdk::Keymapをインプリしていて気づいたのですが、 > 以下のサンプルが動作しません。 > 実行した後、ウインドウをアクティブにしてから > 何かキーを入力してください。 > #あ、CVSの最新版で試してください。 > で、色々やった結果、Ruby/GLib2の方に以下のパッチを適用すると > 動作するようになりました。 > #ってただ、チェックを外しただけなのですが。 > > これってこの対応で良いですかね? > それとも、Gdk::Keymap#translate_keyboard_state側で対処すべき? GFlagsで範囲外の値をどうするかという問題ですよね。 GEnumでも問題になりましたし、範囲外の値を扱うにしても、 扱わないにしても、GFlagsとGEnumで同じ対応にした方が良さそうですね。 とりあえず、glib-2.2.2の内部で範囲外の値をどう扱っているか調べてみると、 * g_value_set_enum/g_value_set_flags では一切チェックしない * g_param_value_validate ではチェックしている (そのためプロパティには範囲外の値をセットすることは出来ない) ようです。 -- 酒井 政裕 / Masahiro Sakai |