Problem re key modifiers

I’m running SDL apps in framebuffer on a Zaurus PDA. Because of the lack of hardware keys, I use key bindings with Fn key. For example, Fn+H means ‘:’. The Fn itself is defined as a modifier (AltGr, for example) in a kernel keymap.

Though SDL correctly recognizes key.keysym.unicode value, it catches modifier in addition to a key value. For example, besides ‘:’ SDL indicates that the Alt modifier is pressed. All the other console programs (like vim) don’t catch modifier in this case, because it’s handled by kernel.

The question is how to make SDL does not catch modifier if the key combination with this modifier is specified in the kernel keymap.