aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJoakim Verona2011-07-31 23:55:11 +0200
committerJoakim Verona2011-07-31 23:55:11 +0200
commitfceaa88120e9f907c279baecd2e755b16e667059 (patch)
tree00cdaf6a0fd7a5e752cd31162dcd87f6430027cb /src
parent6752d22f823d01391254b4f10e854f6456d26ed2 (diff)
downloademacs-fceaa88120e9f907c279baecd2e755b16e667059.tar.gz
emacs-fceaa88120e9f907c279baecd2e755b16e667059.zip
example webkit signal handler for document-loaded. upstream has changed display code so there are some visual glitches. i dont think xwidget code is to blame.
Diffstat (limited to 'src')
-rw-r--r--src/xwidget.c34
1 files changed, 33 insertions, 1 deletions
diff --git a/src/xwidget.c b/src/xwidget.c
index c8e025db579..c2dc1ac8cf8 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -142,6 +142,9 @@ extern Lisp_Object QCwidth, QCheight;
142struct xwidget_view* xwidget_view_lookup(struct xwidget* xw, struct window *w); 142struct xwidget_view* xwidget_view_lookup(struct xwidget* xw, struct window *w);
143Lisp_Object xwidget_spec_value ( Lisp_Object spec, Lisp_Object key, int *found); 143Lisp_Object xwidget_spec_value ( Lisp_Object spec, Lisp_Object key, int *found);
144gboolean webkit_osr_damage_event_callback (GtkWidget *widget, GdkEventExpose *event, gpointer data) ; 144gboolean webkit_osr_damage_event_callback (GtkWidget *widget, GdkEventExpose *event, gpointer data) ;
145void webkit_osr_document_load_finished_callback (WebKitWebView *webkitwebview,
146 WebKitWebFrame *arg1,
147 gpointer user_data);
145 148
146DEFUN ("make-xwidget", Fmake_xwidget, Smake_xwidget, 7, 7, 0, 149DEFUN ("make-xwidget", Fmake_xwidget, Smake_xwidget, 7, 7, 0,
147 doc: /* xw */ 150 doc: /* xw */
@@ -191,7 +194,12 @@ DEFUN ("make-xwidget", Fmake_xwidget, Smake_xwidget, 7, 7, 0,
191 /* store some xwidget data in the gtk widgets for convenient retrieval in the event handlers. */ 194 /* store some xwidget data in the gtk widgets for convenient retrieval in the event handlers. */
192 g_object_set_data (G_OBJECT (xw->widget_osr), XG_XWIDGET, (gpointer) (xw)); 195 g_object_set_data (G_OBJECT (xw->widget_osr), XG_XWIDGET, (gpointer) (xw));
193 g_object_set_data (G_OBJECT (xw->widgetwindow_osr), XG_XWIDGET, (gpointer) (xw)); 196 g_object_set_data (G_OBJECT (xw->widgetwindow_osr), XG_XWIDGET, (gpointer) (xw));
194 g_signal_connect (G_OBJECT ( xw->widgetwindow_osr), "damage-event", G_CALLBACK (webkit_osr_damage_event_callback), NULL); 197 /* signals */
198 g_signal_connect (G_OBJECT ( xw->widgetwindow_osr), "damage-event", G_CALLBACK (webkit_osr_damage_event_callback), NULL);
199 g_signal_connect (G_OBJECT ( xw->widget_osr),
200 "document-load-finished",
201 G_CALLBACK (webkit_osr_document_load_finished_callback),
202 xw);
195 203
196 webkit_web_view_load_uri(WEBKIT_WEB_VIEW(xw->widget_osr), "http://www.fsf.org"); 204 webkit_web_view_load_uri(WEBKIT_WEB_VIEW(xw->widget_osr), "http://www.fsf.org");
197 UNBLOCK_INPUT; 205 UNBLOCK_INPUT;
@@ -379,6 +387,30 @@ gboolean webkit_osr_damage_event_callback (GtkWidget *widget, GdkEventExpose *ev
379} 387}
380 388
381 389
390void webkit_osr_document_load_finished_callback (WebKitWebView *webkitwebview,
391 WebKitWebFrame *arg1,
392 gpointer data)
393{
394 //TODO this event sending code should be refactored
395 struct input_event event;
396 // struct xwidget *xw = (struct xwidget *) data;
397 struct xwidget* xw = (struct xwidget*) g_object_get_data (G_OBJECT (webkitwebview), XG_XWIDGET);
398 printf("webkit finished loading\n");
399
400 EVENT_INIT (event);
401 event.kind = XWIDGET_EVENT;
402 event.frame_or_window = Qnil; //frame; //how to get the frame here? //TODO i store it in the xwidget now
403
404 event.arg = Qnil;
405 //event.arg = Fcons (make_number (xembedid), event.arg);
406 event.arg = Fcons (xw, event.arg); //TODO
407 event.arg = Fcons (intern ("document-load-finished"), event.arg);
408
409
410 kbd_buffer_store_event (&event);
411
412}
413
382//for gtk3 webkit_osr 414//for gtk3 webkit_osr
383gboolean 415gboolean
384xwidget_osr_draw_callback (GtkWidget *widget, cairo_t *cr, gpointer data) 416xwidget_osr_draw_callback (GtkWidget *widget, cairo_t *cr, gpointer data)