First of all I have the same problem (while switching to greek layout).
A simple solution I see on this is to act only on release events and only if the previous event was a press. Like this all the situations in comment: #26 are handled correctly.
The things needed from the implementation point of view are:
- A variable (e.g. previous_event_type) which tells us if the previous event was a "press" one which should get updated on every event
- A way to find what combination of keys has just been released (I guess this is already there, for the "has just been pressed" case).
I tried to take a look in the xkbActions.c file (xorg-server-1.7.3.902) but I could not find the ProcessKeyboardEvent function mentioned on comment: #20.
Any info on this? I could try to create a patch for this but I need the correct pointers on where to look.
First of all I have the same problem (while switching to greek layout).
A simple solution I see on this is to act only on release events and only if the previous event was a press. Like this all the situations in comment: #26 are handled correctly.
The things needed from the implementation point of view are: event_type) which tells us if the previous event was a "press" one which should get updated on every event
- A variable (e.g. previous_
- A way to find what combination of keys has just been released (I guess this is already there, for the "has just been pressed" case).
I tried to take a look in the xkbActions.c file (xorg-server- 1.7.3.902) but I could not find the ProcessKeyboard Event function mentioned on comment: #20.
Any info on this? I could try to create a patch for this but I need the correct pointers on where to look.