aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/xwidget.c34
1 files changed, 26 insertions, 8 deletions
diff --git a/src/xwidget.c b/src/xwidget.c
index a47d6c12dbc..c4e4f2c5ba2 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -540,26 +540,21 @@ xwidget_init_view (
540 } else if (EQ(xww->type, Qwebkit_osr)) { 540 } else if (EQ(xww->type, Qwebkit_osr)) {
541#ifdef HAVE_WEBKIT_OSR 541#ifdef HAVE_WEBKIT_OSR
542 xv->widget = gtk_drawing_area_new(); 542 xv->widget = gtk_drawing_area_new();
543 gtk_widget_set_app_paintable ( xv->widget, TRUE); //because expose event handling 543 gtk_widget_set_app_paintable ( xv->widget, TRUE); //because expose event handling
544#endif 544#endif
545#ifdef HAVE_GTK3 //and webkit_osr 545#ifdef HAVE_GTK3 //and webkit_osr
546 gtk_widget_add_events(xv->widget, 546 gtk_widget_add_events(xv->widget,
547 GDK_BUTTON_PRESS_MASK 547 GDK_BUTTON_PRESS_MASK
548 | GDK_BUTTON_RELEASE_MASK 548 | GDK_BUTTON_RELEASE_MASK
549 | GDK_POINTER_MOTION_MASK 549 | GDK_POINTER_MOTION_MASK);
550 );
551
552 g_signal_connect (G_OBJECT ( xv->widget), "draw", 550 g_signal_connect (G_OBJECT ( xv->widget), "draw",
553 G_CALLBACK (xwidget_osr_draw_callback), NULL); 551 G_CALLBACK (xwidget_osr_draw_callback), NULL);
554
555 g_signal_connect (G_OBJECT ( xv->widget), "button-press-event", 552 g_signal_connect (G_OBJECT ( xv->widget), "button-press-event",
556 G_CALLBACK (xwidget_osr_button_callback), NULL); 553 G_CALLBACK (xwidget_osr_button_callback), NULL);
557 g_signal_connect (G_OBJECT ( xv->widget), "button-release-event", 554 g_signal_connect (G_OBJECT ( xv->widget), "button-release-event",
558 G_CALLBACK (xwidget_osr_button_callback), NULL); 555 G_CALLBACK (xwidget_osr_button_callback), NULL);
559 g_signal_connect (G_OBJECT ( xv->widget), "motion-notify-event", 556 g_signal_connect (G_OBJECT ( xv->widget), "motion-notify-event",
560 G_CALLBACK (xwidget_osr_button_callback), NULL); 557 G_CALLBACK (xwidget_osr_button_callback), NULL);
561
562
563#else 558#else
564 g_signal_connect (G_OBJECT ( xv->widget), "expose_event", 559 g_signal_connect (G_OBJECT ( xv->widget), "expose_event",
565 G_CALLBACK (webkit_osr_expose_event_callback), NULL); 560 G_CALLBACK (webkit_osr_expose_event_callback), NULL);
@@ -774,6 +769,27 @@ DEFUN ("xwidget-webkit-goto-uri", Fxwidget_webkit_goto_uri, Sxwidget_webkit_got
774 769
775 webkit_web_view_load_uri(xw->widget_osr, SDATA(uri)); 770 webkit_web_view_load_uri(xw->widget_osr, SDATA(uri));
776} 771}
772
773DEFUN ("xwidget-webkit-execute-script", Fxwidget_webkit_execute_script, Sxwidget_webkit_execute_script, 2, 2, 0,
774 doc: /* webkit exec js.*/
775 )
776 (Lisp_Object xwidget_id, Lisp_Object script)
777{
778
779 //TODO refactor this crap to something sane
780 struct xwidget *xw;
781 int xid;
782
783 CHECK_NUMBER (xwidget_id);
784 xid = XFASTINT (xwidget_id);
785 xw = &xwidgets[xid];
786
787 //TODO check xw actually is of the correct type before trying stuff with it
788
789 webkit_web_view_execute_script(xw->widget_osr, SDATA(script));
790 return Qnil;
791}
792
777#endif 793#endif
778 794
779 795
@@ -868,7 +884,7 @@ DEFUN ("xwidget-set-keyboard-grab", Fxwidget_set_keyboard_grab, Sxwidget_set_key
868 xid = XFASTINT (xwidget_id); 884 xid = XFASTINT (xwidget_id);
869 kbd_flag = XFASTINT (kbd_grab); 885 kbd_flag = XFASTINT (kbd_grab);
870 xw = &xwidgets[xid]; 886 xw = &xwidgets[xid];
871 if(xw->type != 3) return Qnil; //only relevant for xembed //TODO MVC 887
872 888
873 printf ("kbd grab: %d %d\n", xid, kbd_flag); 889 printf ("kbd grab: %d %d\n", xid, kbd_flag);
874 if (kbd_flag) 890 if (kbd_flag)
@@ -991,7 +1007,9 @@ syms_of_xwidget (void)
991 defsubr (&Sxwidget_info); 1007 defsubr (&Sxwidget_info);
992 defsubr (&Sxwidget_resize_internal); 1008 defsubr (&Sxwidget_resize_internal);
993 defsubr (&Sxwidget_embed_steal_window); 1009 defsubr (&Sxwidget_embed_steal_window);
1010
994 defsubr (&Sxwidget_webkit_goto_uri); 1011 defsubr (&Sxwidget_webkit_goto_uri);
1012 defsubr (&Sxwidget_webkit_execute_script);
995 1013
996 DEFSYM (Qxwidget ,"xwidget"); 1014 DEFSYM (Qxwidget ,"xwidget");
997 1015