gboolean keypress(GtkWidget* w, GdkEventKey *ev, Client *c) { guint i, focus; gboolean processed = FALSE; if(ev->type != GDK_KEY_PRESS) return FALSE; if(GTK_WIDGET_HAS_FOCUS(c->searchbar)) focus = SearchBar; else if(GTK_WIDGET_HAS_FOCUS(c->uribar)) focus = UriBar; else focus = Browser; updatewinid(c); for(i = 0; i < LENGTH(keys); i++) { if(focus & keys[i].focus && gdk_keyval_to_lower(ev->keyval) == keys[i].keyval && CLEANMASK(ev->state) == keys[i].mod && keys[i].func) { keys[i].func(c, &(keys[i].arg)); processed = TRUE; } } return processed; }
gboolean initdownload(WebKitWebView *view, WebKitDownload *o, Client *c) { Arg arg; updatewinid(c); arg = (Arg)DOWNLOAD((char *)webkit_download_get_uri(o)); spawn(c, &arg); return FALSE; }
gboolean keypress(GtkWidget* w, GdkEventKey *ev, Client *c) { guint i; gboolean processed = FALSE; updatewinid(c); for(i = 0; i < LENGTH(keys); i++) { if(gdk_keyval_to_lower(ev->keyval) == keys[i].keyval && CLEANMASK(ev->state) == keys[i].mod && keys[i].func) { keys[i].func(c, &(keys[i].arg)); processed = TRUE; } } return processed; }
gboolean buttonevent(WebKitWebView *v, GdkEventButton *ev, Client *c) { guint i; gboolean processed = FALSE; updatewinid(c); if(ev->type == GDK_BUTTON_PRESS) { for(i = 0; i < LENGTH(buttons); i++) { if(ev->button == buttons[i].button && CLEANMASK(ev->state) == buttons[i].mod && buttons[i].func) { buttons[i].func(c, &(buttons[i].arg)); processed = TRUE; } } } return processed; }