aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJoakim Verona2011-11-01 12:00:58 +0100
committerJoakim Verona2011-11-01 12:00:58 +0100
commitae2cf9364728f21a4024783a3e1947755a851377 (patch)
tree880fab3731b3e91d848ad278c2a35ff8c503c4f3 /src
parentbd5feebdfc13dc4bcb7d1e462fff91ee17ecf2c3 (diff)
downloademacs-ae2cf9364728f21a4024783a3e1947755a851377.tar.gz
emacs-ae2cf9364728f21a4024783a3e1947755a851377.zip
initial signal handling for downloads
Diffstat (limited to 'src')
-rw-r--r--src/xwidget.c47
1 files changed, 46 insertions, 1 deletions
diff --git a/src/xwidget.c b/src/xwidget.c
index 49e8917892f..6ef5bff1352 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -147,7 +147,16 @@ gboolean webkit_osr_key_event_callback (GtkWidget *widget, GdkEventKey *event, g
147void webkit_osr_document_load_finished_callback (WebKitWebView *webkitwebview, 147void webkit_osr_document_load_finished_callback (WebKitWebView *webkitwebview,
148 WebKitWebFrame *arg1, 148 WebKitWebFrame *arg1,
149 gpointer user_data); 149 gpointer user_data);
150 150void webkit_osr_download_callback (WebKitWebView *webkitwebview,
151 WebKitDownload *arg1,
152 gpointer data);
153
154gboolean webkit_osr_mime_type_policy_typedecision_requested_callback(WebKitWebView *webView,
155 WebKitWebFrame *frame,
156 WebKitNetworkRequest *request,
157 gchar *mimetype,
158 WebKitWebPolicyDecision *policy_decision,
159 gpointer user_data);
151DEFUN ("make-xwidget", Fmake_xwidget, Smake_xwidget, 7, 7, 0, 160DEFUN ("make-xwidget", Fmake_xwidget, Smake_xwidget, 7, 7, 0,
152 doc: /* xw */ 161 doc: /* xw */
153 ) 162 )
@@ -209,6 +218,17 @@ DEFUN ("make-xwidget", Fmake_xwidget, Smake_xwidget, 7, 7, 0,
209 G_CALLBACK (webkit_osr_document_load_finished_callback), 218 G_CALLBACK (webkit_osr_document_load_finished_callback),
210 xw); 219 xw);
211 220
221 g_signal_connect (G_OBJECT ( xw->widget_osr),
222 "download-requested",
223 G_CALLBACK (webkit_osr_download_callback),
224 xw);
225
226 g_signal_connect (G_OBJECT ( xw->widget_osr),
227 "mime-type-policy-decision-requested",
228 G_CALLBACK (webkit_osr_mime_type_policy_typedecision_requested_callback),
229 xw);
230
231
212 webkit_web_view_load_uri(WEBKIT_WEB_VIEW(xw->widget_osr), "http://www.fsf.org"); 232 webkit_web_view_load_uri(WEBKIT_WEB_VIEW(xw->widget_osr), "http://www.fsf.org");
213 UNBLOCK_INPUT; 233 UNBLOCK_INPUT;
214 234
@@ -428,6 +448,31 @@ void webkit_osr_document_load_finished_callback (WebKitWebView *webkitwebvi
428 448
429} 449}
430 450
451void webkit_osr_download_callback (WebKitWebView *webkitwebview,
452 WebKitDownload *arg1,
453 gpointer data)
454{
455 printf("download requested %s\n", webkit_download_get_uri (arg1));
456 return FALSE;
457}
458
459gboolean webkit_osr_mime_type_policy_typedecision_requested_callback(WebKitWebView *webView,
460 WebKitWebFrame *frame,
461 WebKitNetworkRequest *request,
462 gchar *mimetype,
463 WebKitWebPolicyDecision *policy_decision,
464 gpointer user_data)
465{
466 printf("mime policy requested\n");
467 if(!webkit_web_view_can_show_mime_type(webView, mimetype)){
468 webkit_web_policy_decision_download (policy_decision);
469 return TRUE;
470 }else{
471 return FALSE;
472 }
473}
474
475
431//for gtk3 webkit_osr 476//for gtk3 webkit_osr
432gboolean 477gboolean
433xwidget_osr_draw_callback (GtkWidget *widget, cairo_t *cr, gpointer data) 478xwidget_osr_draw_callback (GtkWidget *widget, cairo_t *cr, gpointer data)