/** * keybinder_init: * * Initialize the keybinder library. * * This function must be called after initializing GTK, before calling any * other function in the library. Can only be called once. */ void keybinder_init () { GdkKeymap *keymap = gdk_keymap_get_default (); GdkWindow *rootwin = gdk_get_default_root_window (); gdk_window_add_filter (rootwin, filter_func, NULL); /* Workaround: Make sure modmap is up to date * There is possibly a bug in GTK+ where virtual modifiers are not * mapped because the modmap is not updated. The following function * updates it. */ (void) gdk_keymap_have_bidi_layouts(keymap); g_signal_connect (keymap, "keys_changed", G_CALLBACK (keymap_changed), NULL); }
static VALUE rg_have_bidi_layouts_p(VALUE self) { return CBOOL2RVAL(gdk_keymap_have_bidi_layouts(_SELF(self))); }