extern gint optind;
static void cleanup(void);
-static void proccookies(SoupMessage *m, Client *c);
static void clipboard(Client *c, const Arg *arg);
static void destroyclient(Client *c);
static void destroywin(GtkWidget* w, Client *c);
static void pasteurl(GtkClipboard *clipboard, const gchar *text, gpointer d);
static GdkFilterReturn processx(GdkXEvent *xevent, GdkEvent *event, gpointer d);
static void print(Client *c, const Arg *arg);
+static void proccookies(SoupMessage *m, Client *c);
static void progresschange(WebKitWebView *view, gint p, Client *c);
static void request(SoupSession *s, SoupMessage *m, Client *c);
static void reload(Client *c, const Arg *arg);
static void setup();
static void titlechange(WebKitWebView* view, WebKitWebFrame* frame,
const gchar* title, Client *c);
+static void scroll(Client *c, const Arg *arg);
static void searchtext(Client *c, const Arg *arg);
+static void source(Client *c, const Arg *arg);
static void showsearch(Client *c, const Arg *arg);
static void showurl(Client *c, const Arg *arg);
static void stop(Client *c, const Arg *arg);
destroyclient(clients);
}
-void
-proccookies(SoupMessage *m, Client *c) {
- GSList *l;
- SoupCookie *co;
- long t;
-
- rereadcookies();
- for (l = soup_cookies_from_response(m); l; l = l->next){
- co = (SoupCookie *)l->data;
- t = co->expires ? soup_date_to_time_t(co->expires) : 0;
- setcookie(co->name, co->value, co->domain, co->value, t);
- }
- g_slist_free(l);
-}
-
void
clipboard(Client *c, const Arg *arg) {
gboolean paste = *(gboolean *)arg;
else
focus = BROWSER;
for(i = 0; i < LENGTH(keys); i++) {
- if(focus & keys[i].focus && ev->keyval == keys[i].keyval &&
- (CLEANMASK(ev->state) == keys[i].mod ||
- CLEANMASK(ev->state) & keys[i].mod)
+ 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;
webkit_web_frame_print(webkit_web_view_get_main_frame(c->view));
}
+void
+proccookies(SoupMessage *m, Client *c) {
+ GSList *l;
+ SoupCookie *co;
+ long t;
+
+ rereadcookies();
+ for (l = soup_cookies_from_response(m); l; l = l->next){
+ co = (SoupCookie *)l->data;
+ t = co->expires ? soup_date_to_time_t(co->expires) : 0;
+ setcookie(co->name, co->value, co->domain, co->value, t);
+ }
+ g_slist_free(l);
+}
+
void
progresschange(WebKitWebView* view, gint p, Client *c) {
c->progress = p;
filename = g_build_filename(home, ".surf", "cookies", NULL);
}
+void
+scroll(Client *c, const Arg *arg) {
+ gdouble v;
+ GtkAdjustment *a;
+
+ a = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(c->scroll));
+ v = gtk_adjustment_get_value(a);
+ v += gtk_adjustment_get_step_increment(a) * arg->i;
+ v = MAX(v, 0.0);
+ v = MIN(v, gtk_adjustment_get_upper(a) - gtk_adjustment_get_page_size(a));
+ gtk_adjustment_set_value(a, v);
+}
+
void
setcookie(char *name, char *val, char *dom, char *path, long exp) {
gtk_widget_grab_focus(c->searchbar);
}
+void
+source(Client *c, const Arg *arg) {
+ Arg a = { .b = FALSE };
+ /*gboolean s;
+
+ s = webkit_web_view_get_view_source_mode(c->view);
+ webkit_web_view_set_view_source_mode(c->view, c->source);*/
+ reload(c, &a);
+}
+
void
searchtext(Client *c, const Arg *arg) {
gboolean forward = *(gboolean *)arg;
/* make dirs */
home = g_get_home_dir();
- filename = g_build_filename(home, ".surf", NULL);
- g_mkdir_with_parents(filename, 0711);
filename = g_build_filename(home, ".surf", "dl", NULL);
g_mkdir_with_parents(filename, 0755);