aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJoakim Verona2012-02-27 00:31:01 +0100
committerJoakim Verona2012-02-27 00:31:01 +0100
commite8e42079e76ca6255bbd53312994ba8e1b3b0ee8 (patch)
tree5a442dcda68978873a824fdb292e71bf48d736e8 /src
parent4c6365623410b93cd6d0c0ff58581503974e0ea8 (diff)
downloademacs-e8e42079e76ca6255bbd53312994ba8e1b3b0ee8.tar.gz
emacs-e8e42079e76ca6255bbd53312994ba8e1b3b0ee8.zip
bug when passing xwidget in event
Diffstat (limited to 'src')
-rw-r--r--src/xwidget.c14
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
128Lisp_Object Qxwidget; 130Lisp_Object Qxwidget;
129Lisp_Object Qcxwidget; 131Lisp_Object Qcxwidget;
@@ -457,13 +459,15 @@ gboolean webkit_osr_key_event_callback (GtkWidget *widget, GdkEventKey *event, g
457void store_xwidget_event_string(struct xwidget* xw, char* eventname,char* eventstr){ 459void 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; \
833if(!XXWIDGETP(xwidget)) {printf("ERROR not an xwidget\n"); return Qnil;}; \ 839if(!XXWIDGETP(xwidget)) {printf("ERROR not an xwidget\n"); return Qnil;}; \
834if(Qnil == xwidget) {printf("ERROR xwidget nil\n"); return Qnil;}; \ 840if(Qnil == xwidget) {printf("ERROR xwidget nil\n"); return Qnil;}; \
835 xw = XXWIDGET(xwidget); \ 841 xw = XXWIDGET(xwidget); \