diff options
Diffstat (limited to 'src/callbacks.c')
-rw-r--r-- | src/callbacks.c | 99 |
1 files changed, 61 insertions, 38 deletions
diff --git a/src/callbacks.c b/src/callbacks.c index 516c5d7..0cfa7f4 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -46,6 +46,19 @@ set_authentication_handler() { } void +set_status_background() { + GdkColor color; + gdk_color_parse (uzbl.behave.status_background, &color); + /* labels and hboxes do not draw their own background. applying this + * on the vbox/main_window is ok as the statusbar is the only affected + * widget. (if not, we could also use GtkEventBox) */ + if (uzbl.gui.main_window) + gtk_widget_modify_bg (uzbl.gui.main_window, GTK_STATE_NORMAL, &color); + else if (uzbl.gui.plug) + gtk_widget_modify_bg (GTK_WIDGET(uzbl.gui.plug), GTK_STATE_NORMAL, &color); +} + +void set_icon() { if(file_exists(uzbl.gui.icon)) { if (uzbl.gui.main_window) @@ -587,9 +600,9 @@ motion_notify_cb(GtkWidget* window, GdkEventMotion* event, gpointer user_data) { (void) event; (void) user_data; - gchar *details; - details = g_strdup_printf("%.0lf %.0lf %u", event->x, event->y, event->state); + gchar *details = g_strdup_printf("%.0lf %.0lf %u", event->x, event->y, event->state); send_event(PTR_MOVE, details, NULL); + g_free(details); return FALSE; } @@ -701,11 +714,10 @@ create_web_view_js2_cb (WebKitWebView* web_view, GParamSpec param_spec) { if (strncmp(uri, "javascript:", strlen("javascript:")) == 0) { eval_js(uzbl.gui.web_view, (gchar*) uri + strlen("javascript:"), NULL, "javascript:"); + gtk_widget_destroy(GTK_WIDGET(web_view)); } else send_event(NEW_WINDOW, uri, NULL); - - gtk_widget_destroy(GTK_WIDGET(web_view)); } @@ -715,7 +727,7 @@ create_web_view_js_cb (WebKitWebView* web_view, gpointer user_data) { (void) user_data; g_object_connect (web_view, "signal::notify::uri", - G_CALLBACK(create_web_view_js2_cb), NULL); + G_CALLBACK(create_web_view_js2_cb), NULL, NULL); return TRUE; } @@ -762,6 +774,44 @@ download_cb (WebKitWebView *web_view, GObject *download, gpointer user_data) { return (FALSE); } +gboolean +scroll_vert_cb(GtkAdjustment *adjust, void *w) +{ + (void) w; + + gdouble value = gtk_adjustment_get_value(adjust); + gdouble min = gtk_adjustment_get_lower(adjust); + gdouble max = gtk_adjustment_get_upper(adjust); + gdouble page = gtk_adjustment_get_page_size(adjust); + gchar* details; + details = g_strdup_printf("%g %g %g %g", value, min, max, page); + + send_event(SCROLL_VERT, details, NULL); + + g_free(details); + + return (FALSE); +} + +gboolean +scroll_horiz_cb(GtkAdjustment *adjust, void *w) +{ + (void) w; + + gdouble value = gtk_adjustment_get_value(adjust); + gdouble min = gtk_adjustment_get_lower(adjust); + gdouble max = gtk_adjustment_get_upper(adjust); + gdouble page = gtk_adjustment_get_page_size(adjust); + gchar* details; + details = g_strdup_printf("%g %g %g %g", value, min, max, page); + + send_event(SCROLL_HORIZ, details, NULL); + + g_free(details); + + return (FALSE); +} + void run_menu_command(GtkWidget *menu, const char *line) { (void) menu; @@ -829,38 +879,11 @@ populate_popup_cb(WebKitWebView *v, GtkMenu *m, void *c) { } void -save_cookies_js(SoupCookieJar *jar, SoupCookie *old_cookie, SoupCookie *new_cookie, gpointer user_data) { - (void) jar; - (void) user_data; - (void) old_cookie; - char *scheme; - GString *s; - - if(new_cookie != NULL) { - scheme = (new_cookie->secure == TRUE) ? "https" : "http"; - - s = g_string_new(""); - g_string_printf(s, "PUT '%s' '%s' '%s' '%s=%s'", scheme, new_cookie->domain, new_cookie->path, new_cookie->name, new_cookie->value); - run_handler(uzbl.behave.cookie_handler, s->str); - g_string_free(s, TRUE); - } -} - -void -save_cookies_http(SoupMessage *msg, gpointer user_data) { - (void) user_data; - GSList *ck; - char *cookie; - - for(ck = soup_cookies_from_response(msg); ck; ck = ck->next){ - cookie = soup_cookie_to_set_cookie_header(ck->data); - SoupURI *soup_uri = soup_message_get_uri(msg); - GString *s = g_string_new(""); - g_string_printf(s, "PUT '%s' '%s' '%s' '%s'", soup_uri->scheme, soup_uri->host, soup_uri->path, cookie); - run_handler(uzbl.behave.cookie_handler, s->str); - g_free (cookie); - g_string_free(s, TRUE); - } +cmd_set_cookie_handler() { + if(uzbl.behave.cookie_handler[0] == 0) { + g_free(uzbl.behave.cookie_handler); + uzbl.behave.cookie_handler = NULL; + } - g_slist_free(ck); + uzbl_cookie_jar_set_handler(uzbl.net.soup_cookie_jar, uzbl.behave.cookie_handler); } |