void ungrab_keys ( ) { Display* xdisplay; int screen; PluginConfig* plugin_cfg = get_config(); HotkeyConfiguration *hotkey; XErrorHandler old_handler = 0; xdisplay = GDK_DISPLAY_XDISPLAY(gdk_display_get_default()); if (!grabbed) return; if (!xdisplay) return; XSync(xdisplay, False); old_handler = XSetErrorHandler (x11_error_handler); get_offending_modifiers(xdisplay); hotkey = &(plugin_cfg->first); while (hotkey) { for (screen=0;screen<ScreenCount(xdisplay);screen++) { ungrab_key(hotkey, xdisplay, RootWindow(xdisplay, screen)); } hotkey = hotkey->next; } XSync(xdisplay, False); XSetErrorHandler (old_handler); grabbed = 0; }
void glist_grab_ungrab_key (Sven *sven,GList* list,int i) { if(sven == NULL) return; GList *p = g_list_first (list); while (p) { int modifer=0; ConfigSection *section = (ConfigSection *) p->data; gchar **key_modifer = g_strsplit(section->name,":",2); if(key_modifer[1]==NULL) modifer=0; else modifer=atoi(key_modifer[1]); if(i==0) { gint y=0; sven_cfg_read_int(sven->config->key,section->name, "enable",&y); if(y) { grab_key (atoi(key_modifer[0]),modifer); } } else ungrab_key(atoi(key_modifer[0])); g_strfreev(key_modifer); p = g_list_next (p); } }
/* * disable hotkeys */ void hotkeys_done() { begin_func("hotkeys_done"); ungrab_key(menukey, menukey_mask); return_void(); }
static void ungrab_keys() { int i; for (i = 0; i < XF86AUDIO_MAX; i++) if (map[i] != 0) { ungrab_key(map[i]); map[i] = 0; } }
/* * Remove all existing bindings */ static void remove_bindings() { if (!accelerators_list) return; GdkDisplay *display = gdk_display_get_default(); GdkScreen *screen = gdk_display_get_default_screen(display); if (!screen) return; GdkWindow *root = gdk_screen_get_root_window(screen); gdk_window_remove_filter(root, (GdkFilterFunc) filter_keys, NULL); /* Unbind shortcuts */ for (Accelerator *acl = accelerators_list; acl->action != NULL; ++acl) if (acl->key != 0) ungrab_key(acl->key, acl->mask, root); }
void icon_set_shortcut(Icon *icon, const gchar *shortcut) { g_return_if_fail(icon != NULL); if (shortcut && !*shortcut) shortcut = NULL; if (icon->shortcut == shortcut) return; if (icon->shortcut && shortcut && strcmp(icon->shortcut, shortcut) == 0) return; initModifiers(); ungrab_key(icon); g_free(icon->shortcut); icon->shortcut = g_strdup(shortcut); parseKeyString(&icon->shortcut_key, shortcut); grab_key(icon); }