aboutsummaryrefslogtreecommitdiffhomepage
path: root/uzbl.c
diff options
context:
space:
mode:
authorGravatar dusanx <ef_dva@yahoo.com>2009-04-28 02:35:24 +0200
committerGravatar dusanx <ef_dva@yahoo.com>2009-04-28 02:35:24 +0200
commit3e42283eb5eb296ecac9b9219cdc728e92b3c287 (patch)
treed72bed84814d82402a66fa908c8d15dd4bc7475c /uzbl.c
parent5d0a67929ce39365c9b7a46250c88af511e43c2f (diff)
Download and open in new window
Diffstat (limited to 'uzbl.c')
-rw-r--r--uzbl.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/uzbl.c b/uzbl.c
index 309ff6a..f76642c 100644
--- a/uzbl.c
+++ b/uzbl.c
@@ -115,6 +115,28 @@ run_command(const char *command, const char *args);
/* --- CALLBACKS --- */
+static gboolean
+new_window_cb (WebKitWebView *web_view, WebKitWebFrame *frame, WebKitNetworkRequest *request, WebKitWebNavigationAction *navigation_action, WebKitWebPolicyDecision *policy_decision, gpointer user_data) {
+ (void) web_view;
+ (void) frame;
+ (void) navigation_action;
+ (void) policy_decision;
+ (void) user_data;
+ const gchar* uri = webkit_network_request_get_uri (request);
+ printf("New window requested -> %s \n", uri);
+ return (FALSE);
+}
+
+static gboolean
+download_cb (WebKitWebView *web_view, GObject *download, gpointer user_data) {
+ (void) web_view;
+ (void) user_data;
+ const gchar* uri = webkit_download_get_uri ((WebKitDownload*)download);
+ printf("Download -> %s\n",uri);
+ run_command(download_handler, uri);
+ return (FALSE);
+}
+
static void
go_back_cb (WebKitWebView* page) {
(void) page;
@@ -419,6 +441,8 @@ create_browser () {
g_signal_connect (G_OBJECT (web_view), "load-committed", G_CALLBACK (log_history_cb), web_view);
g_signal_connect (G_OBJECT (web_view), "hovering-over-link", G_CALLBACK (link_hover_cb), web_view);
g_signal_connect (G_OBJECT (web_view), "key-press-event", G_CALLBACK (key_press_cb), web_view);
+ g_signal_connect (G_OBJECT (web_view), "new-window-policy-decision-requested", G_CALLBACK (new_window_cb), web_view);
+ g_signal_connect (G_OBJECT (web_view), "download-requested", G_CALLBACK (download_cb), web_view);
return scrolled_window;
}