[EMAIL PROTECTED] (Lars Gullik Bjønnes) writes:

| "Garst R. Reese" <[EMAIL PROTECTED]> writes:
| 
| | Workarea event: KEYBOARD
| | WorkArea: Key is `' [0]
| | WorkArea: Keysym is `Multi_key' [65312]
| | Workarea event: KEYBOARD
| | WorkArea: Key is `' [0]
| | WorkArea: Keysym is `c' [99]
| | Workarea event: KEYBOARD
| | WorkArea: Key is `' [0]
| | WorkArea: Keysym is `' [0]
| | Workarea event: KEYBOARD
| | WorkArea: Key is `copyright' [169]
| | WorkArea: Keysym is `' [0]
| | Using keysym [B]
| | Workarea Diff: 2830209853
| | KeySym is copyright[169] State is [1]
| | action first set to [-1]
| | meta_fake_bit is [0]
| | action now set to [-1]
| | Key [-1][S-copyright]
| | Removing modifiers...
| | Action now set to [87]
| | TmpKeysym [0]
| | SelfInsert arg[]
| | ----------------------------------
| | But the copyright symbol never shows up.
| | Nothing else in compose worked either.
| | Garst
| 
| The log looks correct...
| 
| I have to investigate this. Will do after the weekend.

I know what goes wrong, but I am not sure how to fix it.

the problem is that when Compose-key is used to create "copyright":
compose+c+o  the correct keysym is passed to lyx, the correct
lyx-action is beeing handled: action == LFUN_SELFINSERT, but now we
get the problem...

We are only passed the "copyright" keysym, with state set to 0. And to
"self-insert" the keysym we need the glyph/symbol behind the keysym
'©' and to get there we use XKeysymToKeycode and then XLookupString to
get the glyph/symbol.... but since we don't have the correct state we
end up getting the wrong keysym "stored" in the temp. XKeyEvent
struct... and we end up getting a 'c' on output...

If we knew the correct state that would produce "copyright" for the
found keycode, then no problem..., except there there need not really
be a keycode for this keysym at all...

So the question is really: How to get from keysym "copyright" to char
'©'

and I now see that we have some more problems as well...

I'll continue looking at this.

-- 
        Lgb

Reply via email to