aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/xwidget.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/xwidget.c b/src/xwidget.c
index 848e95fca1a..93d7c46a41f 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -826,22 +826,37 @@ x_draw_xwidget_glyph_string (struct glyph_string *s)
826 826
827 827
828#ifdef HAVE_WEBKIT_OSR 828#ifdef HAVE_WEBKIT_OSR
829
830//FUGLY macro that checks WEBKIT_IS_WEB_VIEW(xw->widget_osr) first
831#define WEBKIT_FN_INIT() \
832 struct xwidget* xw;\
833if(!XXWIDGETP(xwidget)) {printf("ERROR not an xwidget\n"); return Qnil;}; \
834if(Qnil == xwidget) {printf("ERROR xwidget nil\n"); return Qnil;}; \
835 xw = XXWIDGET(xwidget); \
836 if(NULL == xw) printf("ERROR xw is 0\n"); \
837 if((NULL == xw->widget_osr) || !WEBKIT_IS_WEB_VIEW(xw->widget_osr)){ \
838 printf("ERROR xw->widget_osr does not hold a webkit instance\n");\
839 return Qnil;\
840 };
841
842
829DEFUN ("xwidget-webkit-goto-uri", Fxwidget_webkit_goto_uri, Sxwidget_webkit_goto_uri, 2, 2, 0, 843DEFUN ("xwidget-webkit-goto-uri", Fxwidget_webkit_goto_uri, Sxwidget_webkit_goto_uri, 2, 2, 0,
830 doc: /* webkit goto uri.*/ 844 doc: /* webkit goto uri.*/
831 ) 845 )
832 (Lisp_Object xwidget, Lisp_Object uri) 846 (Lisp_Object xwidget, Lisp_Object uri)
833{ 847{
834 struct xwidget* xw = XXWIDGET(xwidget); 848 WEBKIT_FN_INIT();
835 webkit_web_view_load_uri ( WEBKIT_WEB_VIEW(xw->widget_osr), SDATA(uri)); 849 webkit_web_view_load_uri ( WEBKIT_WEB_VIEW(xw->widget_osr), SDATA(uri));
836 return Qnil; 850 return Qnil;
837} 851}
838 852
853
839DEFUN ("xwidget-webkit-execute-script", Fxwidget_webkit_execute_script, Sxwidget_webkit_execute_script, 2, 2, 0, 854DEFUN ("xwidget-webkit-execute-script", Fxwidget_webkit_execute_script, Sxwidget_webkit_execute_script, 2, 2, 0,
840 doc: /* webkit exec js.*/ 855 doc: /* webkit exec js.*/
841 ) 856 )
842 (Lisp_Object xwidget, Lisp_Object script) 857 (Lisp_Object xwidget, Lisp_Object script)
843{ 858{
844 struct xwidget* xw = XXWIDGET(xwidget); 859 WEBKIT_FN_INIT();
845 webkit_web_view_execute_script( WEBKIT_WEB_VIEW(xw->widget_osr), SDATA(script)); 860 webkit_web_view_execute_script( WEBKIT_WEB_VIEW(xw->widget_osr), SDATA(script));
846 return Qnil; 861 return Qnil;
847} 862}
@@ -852,7 +867,7 @@ DEFUN ("xwidget-webkit-get-title", Fxwidget_webkit_get_title, Sxwidget_webkit_g
852 (Lisp_Object xwidget) 867 (Lisp_Object xwidget)
853{ 868{
854 //TODO support multibyte strings 869 //TODO support multibyte strings
855 struct xwidget* xw = XXWIDGET(xwidget); 870 WEBKIT_FN_INIT();
856 const gchar* str=webkit_web_view_get_title( WEBKIT_WEB_VIEW(xw->widget_osr)); 871 const gchar* str=webkit_web_view_get_title( WEBKIT_WEB_VIEW(xw->widget_osr));
857 //return make_string_from_bytes(str, wcslen((const wchar_t *)str), strlen(str)); 872 //return make_string_from_bytes(str, wcslen((const wchar_t *)str), strlen(str));
858 if(str == 0){ 873 if(str == 0){
@@ -931,7 +946,7 @@ DEFUN ("xwidget-webkit-dom-dump", Fxwidget_webkit_dom_dump, Sxwidget_webkit_dom
931 ) 946 )
932 (Lisp_Object xwidget) 947 (Lisp_Object xwidget)
933{ 948{
934 struct xwidget* xw = XXWIDGET(xwidget); 949 WEBKIT_FN_INIT();
935 xwidget_webkit_dom_dump(WEBKIT_DOM_NODE(webkit_web_view_get_dom_document( WEBKIT_WEB_VIEW(xw->widget_osr)))); 950 xwidget_webkit_dom_dump(WEBKIT_DOM_NODE(webkit_web_view_get_dom_document( WEBKIT_WEB_VIEW(xw->widget_osr))));
936 return Qnil; 951 return Qnil;
937} 952}