diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/xwidget.c | 51 |
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 | ||
| 457 | void 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 | ||
| 457 | void 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 |
| 473 | void 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 | ||
| 480 | gboolean webkit_osr_download_callback (WebKitWebView *webkitwebview, | 486 | gboolean 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 | ||