diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/xwidget.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/xwidget.c b/src/xwidget.c index 93d7c46a41f..b43cc14a791 100644 --- a/src/xwidget.c +++ b/src/xwidget.c | |||
| @@ -98,6 +98,7 @@ | |||
| 98 | #include <webkit/webkitwebplugin.h> | 98 | #include <webkit/webkitwebplugin.h> |
| 99 | #include <webkit/webkitglobals.h> | 99 | #include <webkit/webkitglobals.h> |
| 100 | #include <webkit/webkitwebnavigationaction.h> | 100 | #include <webkit/webkitwebnavigationaction.h> |
| 101 | #include <webkit/webkitdownload.h> | ||
| 101 | #endif | 102 | #endif |
| 102 | 103 | ||
| 103 | #include "xwidget.h" | 104 | #include "xwidget.h" |
| @@ -123,7 +124,8 @@ allocate_xwidget_view (void) | |||
| 123 | { | 124 | { |
| 124 | return ALLOCATE_PSEUDOVECTOR (struct xwidget_view, redisplayed, PVEC_XWIDGET_VIEW); | 125 | return ALLOCATE_PSEUDOVECTOR (struct xwidget_view, redisplayed, PVEC_XWIDGET_VIEW); |
| 125 | } | 126 | } |
| 126 | 127 | #define XSETXWIDGET(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_XWIDGET)) | |
| 128 | #define XSETXWIDGET_VIEW(a, b) (XSETPSEUDOVECTOR (a, b, PVEC_XWIDGET_VIEW)) | ||
| 127 | 129 | ||
| 128 | Lisp_Object Qxwidget; | 130 | Lisp_Object Qxwidget; |
| 129 | Lisp_Object Qcxwidget; | 131 | Lisp_Object Qcxwidget; |
| @@ -457,13 +459,15 @@ gboolean webkit_osr_key_event_callback (GtkWidget *widget, GdkEventKey *event, g | |||
| 457 | void store_xwidget_event_string(struct xwidget* xw, char* eventname,char* eventstr){ | 459 | void store_xwidget_event_string(struct xwidget* xw, char* eventname,char* eventstr){ |
| 458 | //refactor attempt | 460 | //refactor attempt |
| 459 | struct input_event event; | 461 | struct input_event event; |
| 462 | Lisp_Object xwl; | ||
| 463 | XSETXWIDGET(xwl,xw); | ||
| 460 | EVENT_INIT (event); | 464 | EVENT_INIT (event); |
| 461 | event.kind = XWIDGET_EVENT; | 465 | event.kind = XWIDGET_EVENT; |
| 462 | event.frame_or_window = Qnil; //frame; //how to get the frame here? //TODO i store it in the xwidget now | 466 | event.frame_or_window = Qnil; //frame; //how to get the frame here? //TODO i store it in the xwidget now |
| 463 | 467 | ||
| 464 | event.arg = Qnil; | 468 | event.arg = Qnil; |
| 465 | event.arg = Fcons (build_string(eventstr), event.arg); //string so dont intern | 469 | event.arg = Fcons (build_string(eventstr), event.arg); //string so dont intern |
| 466 | event.arg = Fcons ((Lisp_Object)xw, event.arg); //TODO | 470 | event.arg = Fcons (xwl, event.arg); //TODO |
| 467 | event.arg = Fcons (intern (eventname), event.arg);//interning should be ok | 471 | event.arg = Fcons (intern (eventname), event.arg);//interning should be ok |
| 468 | kbd_buffer_store_event (&event); | 472 | kbd_buffer_store_event (&event); |
| 469 | 473 | ||
| @@ -487,11 +491,13 @@ gboolean webkit_osr_download_callback (WebKitWebView *webkitwebview, | |||
| 487 | WebKitDownload *arg1, | 491 | WebKitDownload *arg1, |
| 488 | gpointer data) | 492 | gpointer data) |
| 489 | { | 493 | { |
| 490 | printf("download requested %s\n", webkit_download_get_uri (arg1)); | ||
| 491 | //TODO this event sending code should be refactored | 494 | //TODO this event sending code should be refactored |
| 492 | struct input_event event; | 495 | struct input_event event; |
| 493 | // struct xwidget *xw = (struct xwidget *) data; | 496 | // struct xwidget *xw = (struct xwidget *) data; |
| 494 | struct xwidget* xw = (struct xwidget*) g_object_get_data (G_OBJECT (webkitwebview), XG_XWIDGET); | 497 | struct xwidget* xw = (struct xwidget*) g_object_get_data (G_OBJECT (webkitwebview), XG_XWIDGET); |
| 498 | printf("download requested %s\n", webkit_download_get_uri (arg1)); | ||
| 499 | |||
| 500 | |||
| 495 | printf("webkit finished loading\n"); | 501 | printf("webkit finished loading\n"); |
| 496 | 502 | ||
| 497 | store_xwidget_event_string(xw, "download-requested", webkit_download_get_uri (arg1)); | 503 | store_xwidget_event_string(xw, "download-requested", webkit_download_get_uri (arg1)); |
| @@ -829,7 +835,7 @@ x_draw_xwidget_glyph_string (struct glyph_string *s) | |||
| 829 | 835 | ||
| 830 | //FUGLY macro that checks WEBKIT_IS_WEB_VIEW(xw->widget_osr) first | 836 | //FUGLY macro that checks WEBKIT_IS_WEB_VIEW(xw->widget_osr) first |
| 831 | #define WEBKIT_FN_INIT() \ | 837 | #define WEBKIT_FN_INIT() \ |
| 832 | struct xwidget* xw;\ | 838 | struct xwidget* xw; \ |
| 833 | if(!XXWIDGETP(xwidget)) {printf("ERROR not an xwidget\n"); return Qnil;}; \ | 839 | if(!XXWIDGETP(xwidget)) {printf("ERROR not an xwidget\n"); return Qnil;}; \ |
| 834 | if(Qnil == xwidget) {printf("ERROR xwidget nil\n"); return Qnil;}; \ | 840 | if(Qnil == xwidget) {printf("ERROR xwidget nil\n"); return Qnil;}; \ |
| 835 | xw = XXWIDGET(xwidget); \ | 841 | xw = XXWIDGET(xwidget); \ |