-
- for(n = 0; n < LENGTH(keysets); n++)
- switch(keysets[n].mode) {
- case SEARCHBAR:
- if(GTK_WIDGET_HAS_FOCUS(c->searchbar))
- goto matchkeys;
- break;
- case URLBAR:
- if(GTK_WIDGET_HAS_FOCUS(c->urlbar))
- goto matchkeys;
- break;
- case NONE:
- goto matchkeys;
- default:
- fprintf(stderr, "keypress(): Unknown Keypressmode\n");
- break;
- }
- if(n < LENGTH(keysets)) {
-matchkeys:
- for(m = 0; m < keysets[n].numkeys; m++) {
- Key *keys = keysets[n].keys;
- if(ev->keyval == keys[m].keyval
- && (ev->state == keys[m].mod
- || (ev->state & keys[m].mod))
- && keys[m].func) {
- keys[m].func(c, &(keys[m].arg));
- if(keys[m].stop)
- return TRUE;
- }
+ if(GTK_WIDGET_HAS_FOCUS(c->searchbar))
+ focus = SEARCHBAR;
+ else if(GTK_WIDGET_HAS_FOCUS(c->urlbar))
+ focus = URLBAR;
+ else
+ focus = BROWSER;
+ for(i = 0; i < LENGTH(keys); i++) {
+ if(focus & keys[i].focus && ev->keyval == keys[i].keyval &&
+ (ev->state == keys[i].mod || ev->state & keys[i].mod)
+ && keys[i].func) {
+ keys[i].func(c, &(keys[i].arg));
+ processed = TRUE;