aboutsummaryrefslogtreecommitdiffstats
path: root/src/xwidget.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xwidget.c')
-rw-r--r--src/xwidget.c51
1 files changed, 27 insertions, 24 deletions
diff --git a/src/xwidget.c b/src/xwidget.c
index 8990e7d4b49..2c87959b21d 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -453,28 +453,34 @@ gboolean webkit_osr_key_event_callback (GtkWidget *widget, GdkEventKey *event, g
453 return TRUE; 453 return TRUE;
454} 454}
455 455
456//TODO deprecated, use load-status
457void webkit_osr_document_load_finished_callback (WebKitWebView *webkitwebview,
458 WebKitWebFrame *arg1,
459 gpointer data)
460{
461 //TODO this event sending code should be refactored
462 struct input_event event;
463 // struct xwidget *xw = (struct xwidget *) data;
464 struct xwidget* xw = (struct xwidget*) g_object_get_data (G_OBJECT (webkitwebview), XG_XWIDGET);
465 printf("webkit finished loading\n");
466 456
457void store_xwidget_event_string(struct xwidget* xw, char* eventname,char* eventstr){
458 //refactor attempt
459 struct input_event event;
467 EVENT_INIT (event); 460 EVENT_INIT (event);
468 event.kind = XWIDGET_EVENT; 461 event.kind = XWIDGET_EVENT;
469 event.frame_or_window = Qnil; //frame; //how to get the frame here? //TODO i store it in the xwidget now 462 event.frame_or_window = Qnil; //frame; //how to get the frame here? //TODO i store it in the xwidget now
470 463
471 event.arg = Qnil; 464 event.arg = Qnil;
465 event.arg = Fcons (intern (eventstr), event.arg); //intern?
472 event.arg = Fcons ((Lisp_Object)xw, event.arg); //TODO 466 event.arg = Fcons ((Lisp_Object)xw, event.arg); //TODO
473 event.arg = Fcons (intern ("document-load-finished"), event.arg); 467 event.arg = Fcons (intern (eventname), event.arg);//interning should be ok
468 kbd_buffer_store_event (&event);
474 469
470}
475 471
476 kbd_buffer_store_event (&event); 472//TODO deprecated, use load-status
473void webkit_osr_document_load_finished_callback (WebKitWebView *webkitwebview,
474 WebKitWebFrame *arg1,
475 gpointer data)
476{
477 //TODO this event sending code should be refactored
478 // struct xwidget *xw = (struct xwidget *) data;
479 struct xwidget* xw = (struct xwidget*) g_object_get_data (G_OBJECT (webkitwebview), XG_XWIDGET);
480 printf("webkit finished loading\n");
477 481
482 store_xwidget_event_string(xw, "",
483 "document-load-finished");
478} 484}
479 485
480gboolean webkit_osr_download_callback (WebKitWebView *webkitwebview, 486gboolean webkit_osr_download_callback (WebKitWebView *webkitwebview,
@@ -488,18 +494,7 @@ gboolean webkit_osr_download_callback (WebKitWebView *webkitwebview,
488 struct xwidget* xw = (struct xwidget*) g_object_get_data (G_OBJECT (webkitwebview), XG_XWIDGET); 494 struct xwidget* xw = (struct xwidget*) g_object_get_data (G_OBJECT (webkitwebview), XG_XWIDGET);
489 printf("webkit finished loading\n"); 495 printf("webkit finished loading\n");
490 496
491 EVENT_INIT (event); 497 store_xwidget_event_string(xw, webkit_download_get_uri (arg1), "download-requested");
492 event.kind = XWIDGET_EVENT;
493 event.frame_or_window = Qnil; //frame; //how to get the frame here? //TODO i store it in the xwidget now
494
495 event.arg = Qnil;
496 event.arg = Fcons (intern (webkit_download_get_uri (arg1)), event.arg);
497 event.arg = Fcons ((Lisp_Object)xw, event.arg); //TODO
498 event.arg = Fcons (intern ("download-requested"), event.arg);
499
500
501 kbd_buffer_store_event (&event);
502
503 498
504 return FALSE; 499 return FALSE;
505} 500}
@@ -512,6 +507,8 @@ gboolean webkit_osr_mime_type_policy_typedecision_requested_callback(WebKitWebV
512 gpointer user_data) 507 gpointer user_data)
513{ 508{
514 printf("mime policy requested\n"); 509 printf("mime policy requested\n");
510 // this function makes webkit send a download signal for all unknown mime types
511 // TODO defer the decision to lisp, so that its possible to make Emacs handle text mime for instance
515 if(!webkit_web_view_can_show_mime_type(webView, mimetype)){ 512 if(!webkit_web_view_can_show_mime_type(webView, mimetype)){
516 webkit_web_policy_decision_download (policy_decision); 513 webkit_web_policy_decision_download (policy_decision);
517 return TRUE; 514 return TRUE;
@@ -528,9 +525,12 @@ gboolean webkit_osr_new_window_policy_decision_requested_callback(WebKitWebView
528 WebKitWebPolicyDecision *policy_decision, 525 WebKitWebPolicyDecision *policy_decision,
529 gpointer user_data) 526 gpointer user_data)
530{ 527{
528 struct xwidget* xw = (struct xwidget*) g_object_get_data (G_OBJECT (webView), XG_XWIDGET);
531 printf("webkit_osr_new_window_policy_decision_requested_callback %s\n", 529 printf("webkit_osr_new_window_policy_decision_requested_callback %s\n",
532 webkit_web_navigation_action_get_original_uri (navigation_action)); 530 webkit_web_navigation_action_get_original_uri (navigation_action));
533 531
532 store_xwidget_event_string(xw, webkit_web_navigation_action_get_original_uri (navigation_action),
533 "new-window-policy-decision-requested");
534 return FALSE; 534 return FALSE;
535} 535}
536 536
@@ -541,8 +541,11 @@ gboolean webkit_osr_navigation_policy_decision_requested_callback(WebKitWebView
541 WebKitWebPolicyDecision *policy_decision, 541 WebKitWebPolicyDecision *policy_decision,
542 gpointer user_data) 542 gpointer user_data)
543{ 543{
544 struct xwidget* xw = (struct xwidget*) g_object_get_data (G_OBJECT (webView), XG_XWIDGET);
544 printf("webkit_osr_navigation_policy_decision_requested_callback %s\n", 545 printf("webkit_osr_navigation_policy_decision_requested_callback %s\n",
545 webkit_web_navigation_action_get_original_uri (navigation_action)); 546 webkit_web_navigation_action_get_original_uri (navigation_action));
547 store_xwidget_event_string(xw, webkit_web_navigation_action_get_original_uri (navigation_action),
548 "navigation-policy-decision-requested");
546 return FALSE; 549 return FALSE;
547} 550}
548 551