Comment 80 for bug 1244090

Revision history for this message
In , Federico Mena Quintero (federico-gnome) wrote :

(I'm not sure if gnome-settings-daemon is the right product for this bug, but anyway.)

I have things so that pressing ShiftL+ShiftR together will change my keyboard layout.

This works fine. However, when I press that key combination, the current window appears to lose focus and regain it instantly. This is a problem with buggy toolkits (cough) that do things like committing or canceling text entries when they lose/gain focus. For example, GtkTreeView will cancel editing, and Firefox will do funny things depending on which web page has entry widgets in it.

This didn't seem to happen a few Gnome versions ago (maybe it was caused by the switch to ibus?).

Here is the xev log for what it's worth. After the initial ShiftL KeyPress, there is a FocusOut/FocusIn/KeymapNotify.

KeyPress event, serial 44, synthetic NO, window 0x4800001,
    root 0xc1, subw 0x0, time 257173342, (412,453), root:(413,530),
    state 0x0, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

FocusOut event, serial 44, synthetic NO, window 0x4800001,
    mode NotifyGrab, detail NotifyAncestor

FocusIn event, serial 44, synthetic NO, window 0x4800001,
    mode NotifyUngrab, detail NotifyAncestor

KeymapNotify event, serial 44, synthetic NO, window 0x0,
    keys: 2 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0
           0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

MappingNotify event, serial 44, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

MappingNotify event, serial 44, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

MappingNotify event, serial 44, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

MappingNotify event, serial 44, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

MappingNotify event, serial 44, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

MappingNotify event, serial 44, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

MappingNotify event, serial 44, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

MappingNotify event, serial 44, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeyRelease event, serial 44, synthetic NO, window 0x4800001,
    root 0xc1, subw 0x0, time 257173533, (412,453), root:(413,530),
    state 0x1, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False