What have been changed in Gnome Shell event loop v3.10 vs v3.14/v3.16



Hi everyone,

I wrote this accessibility extension:

    https://extensions.gnome.org/extension/975/keyboard-modifiers-status/
    https://github.com/sneetsher/Keyboard-Modifiers-Status

Which works as supposed in Gnome Shell  v3.14 & v3.16 but not in v3.10.

It shows the only the initial keyboard modifiers state after i
restarted it and never update it after that.

Trying to debug, I modified the code to show (state label + a counter)

let c,button, label, keymap;
c=0;

function _update() {
    Gtk.main_iteration_do(false);
    c++;
    let symbols = "⇧⇬⋀⌥①◆⌘⎇";
    //let keymap = Gdk.Keymap.get_default()
    let state = keymap.get_modifier_state();
    label.text = " ";
    for (var i=0; i<=8; i++ ) {
        if (state & 1<<i) {
            label.text += symbols[i];
        } else {
            //label.text += "";
        }
    }
    label.text += " "+c+" ";
    return true;
}


I can confirm these:

- `keymap.connect('state_changed',  _update );` this signal is never raised
- timeout callback works well
- label is updated and show the initial state & the incrementing counter

So I think there is something with event loop as it does not pull
state update or does not process its events.

Could you please point me to way to fix this and why such difference
between v3.10 & v3.14?

Kind regards,
Abdellah Chelli


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]