aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoakim Verona2011-11-03 14:58:05 +0100
committerJoakim Verona2011-11-03 14:58:05 +0100
commitfe118e06d872fd1149a273282cb082250346e89f (patch)
treedcc20533851158dd0457f093918f95bc02d0f79f
parent1722eccee3d963c08d91afcdeebdc152d867e7bf (diff)
downloademacs-fe118e06d872fd1149a273282cb082250346e89f.tar.gz
emacs-fe118e06d872fd1149a273282cb082250346e89f.zip
attempt to make relative urls work, but it doesnt. contains some bugfixes anyway
-rw-r--r--lisp/xwidget.el31
-rw-r--r--src/xwidget.c16
2 files changed, 30 insertions, 17 deletions
diff --git a/lisp/xwidget.el b/lisp/xwidget.el
index 159ba5d12b0..c49b1c6738e 100644
--- a/lisp/xwidget.el
+++ b/lisp/xwidget.el
@@ -148,19 +148,32 @@ defaults to the string looking like a url around the cursor position."
148 (let* 148 (let*
149 ((xwidget-event-type (nth 1 last-input-event)) 149 ((xwidget-event-type (nth 1 last-input-event))
150 (xwidget (nth 2 last-input-event)) 150 (xwidget (nth 2 last-input-event))
151 (xwidget-callback (xwidget-get xwidget 'callback))) 151 ;(xwidget-callback (xwidget-get xwidget 'callback));;TODO stopped working for some reason
152 (funcall xwidget-callback xwidget xwidget-event-type))) 152 )
153 ;(funcall xwidget-callback xwidget xwidget-event-type)
154 (funcall 'xwidget-webkit-callback xwidget xwidget-event-type)
155 ))
153 156
154(defun xwidget-webkit-callback (xwidget xwidget-event-type) 157(defun xwidget-webkit-callback (xwidget xwidget-event-type)
155 (save-excursion 158 (save-excursion
156 (set-buffer (xwidget-buffer xwidget)) 159 (set-buffer (xwidget-buffer xwidget))
157 (cond ((eq xwidget-event-type 'document-load-finished) 160 (let* ( (strarg (nth 3 last-input-event)))
158 (message "webkit finished loading: '%s'" (xwidget-webkit-get-title xwidget)) 161 (cond ((eq xwidget-event-type 'document-load-finished)
159 (xwidget-adjust-size-to-content xwidget) 162 (message "webkit finished loading: '%s'" (xwidget-webkit-get-title xwidget))
160 (rename-buffer (format "*xwidget webkit: %s *" (xwidget-webkit-get-title xwidget))) 163 (xwidget-adjust-size-to-content xwidget)
161 (pop-to-buffer (current-buffer)) 164 (rename-buffer (format "*xwidget webkit: %s *" (xwidget-webkit-get-title xwidget)))
162 ) 165 (pop-to-buffer (current-buffer))
163 ))) 166 )
167
168 ((eq xwidget-event-type 'navigation-policy-decision-requested)
169 (let ((elmname (progn (string-match ".*#\\(.*\\)" strarg)(match-string 1 strarg))))
170 (message "navigation-policy-decision-requested: '%s' %s" strarg elmname )
171
172 (xwidget-webkit-show-named-element xwidget elmname)
173 )
174
175 )
176 ))))
164 177
165(define-derived-mode xwidget-webkit-mode 178(define-derived-mode xwidget-webkit-mode
166 special-mode "xwidget-webkit" "xwidget webkit view mode" 179 special-mode "xwidget-webkit" "xwidget webkit view mode"
diff --git a/src/xwidget.c b/src/xwidget.c
index 2c87959b21d..848e95fca1a 100644
--- a/src/xwidget.c
+++ b/src/xwidget.c
@@ -462,7 +462,7 @@ void store_xwidget_event_string(struct xwidget* xw, char* eventname,char* events
462 event.frame_or_window = Qnil; //frame; //how to get the frame here? //TODO i store it in the xwidget now 462 event.frame_or_window = Qnil; //frame; //how to get the frame here? //TODO i store it in the xwidget now
463 463
464 event.arg = Qnil; 464 event.arg = Qnil;
465 event.arg = Fcons (intern (eventstr), event.arg); //intern? 465 event.arg = Fcons (build_string(eventstr), event.arg); //string so dont intern
466 event.arg = Fcons ((Lisp_Object)xw, event.arg); //TODO 466 event.arg = Fcons ((Lisp_Object)xw, event.arg); //TODO
467 event.arg = Fcons (intern (eventname), event.arg);//interning should be ok 467 event.arg = Fcons (intern (eventname), event.arg);//interning should be ok
468 kbd_buffer_store_event (&event); 468 kbd_buffer_store_event (&event);
@@ -479,8 +479,8 @@ void webkit_osr_document_load_finished_callback (WebKitWebView *webkitwebvi
479 struct xwidget* xw = (struct xwidget*) g_object_get_data (G_OBJECT (webkitwebview), XG_XWIDGET); 479 struct xwidget* xw = (struct xwidget*) g_object_get_data (G_OBJECT (webkitwebview), XG_XWIDGET);
480 printf("webkit finished loading\n"); 480 printf("webkit finished loading\n");
481 481
482 store_xwidget_event_string(xw, "", 482 store_xwidget_event_string(xw,
483 "document-load-finished"); 483 "document-load-finished", "");
484} 484}
485 485
486gboolean webkit_osr_download_callback (WebKitWebView *webkitwebview, 486gboolean webkit_osr_download_callback (WebKitWebView *webkitwebview,
@@ -494,7 +494,7 @@ gboolean webkit_osr_download_callback (WebKitWebView *webkitwebview,
494 struct xwidget* xw = (struct xwidget*) g_object_get_data (G_OBJECT (webkitwebview), XG_XWIDGET); 494 struct xwidget* xw = (struct xwidget*) g_object_get_data (G_OBJECT (webkitwebview), XG_XWIDGET);
495 printf("webkit finished loading\n"); 495 printf("webkit finished loading\n");
496 496
497 store_xwidget_event_string(xw, webkit_download_get_uri (arg1), "download-requested"); 497 store_xwidget_event_string(xw, "download-requested", webkit_download_get_uri (arg1));
498 498
499 return FALSE; 499 return FALSE;
500} 500}
@@ -529,8 +529,8 @@ gboolean webkit_osr_new_window_policy_decision_requested_callback(WebKitWebView
529 printf("webkit_osr_new_window_policy_decision_requested_callback %s\n", 529 printf("webkit_osr_new_window_policy_decision_requested_callback %s\n",
530 webkit_web_navigation_action_get_original_uri (navigation_action)); 530 webkit_web_navigation_action_get_original_uri (navigation_action));
531 531
532 store_xwidget_event_string(xw, webkit_web_navigation_action_get_original_uri (navigation_action), 532 store_xwidget_event_string(xw, "new-window-policy-decision-requested", webkit_web_navigation_action_get_original_uri (navigation_action)
533 "new-window-policy-decision-requested"); 533 );
534 return FALSE; 534 return FALSE;
535} 535}
536 536
@@ -544,8 +544,8 @@ gboolean webkit_osr_navigation_policy_decision_requested_callback(WebKitWebView
544 struct xwidget* xw = (struct xwidget*) g_object_get_data (G_OBJECT (webView), XG_XWIDGET); 544 struct xwidget* xw = (struct xwidget*) g_object_get_data (G_OBJECT (webView), XG_XWIDGET);
545 printf("webkit_osr_navigation_policy_decision_requested_callback %s\n", 545 printf("webkit_osr_navigation_policy_decision_requested_callback %s\n",
546 webkit_web_navigation_action_get_original_uri (navigation_action)); 546 webkit_web_navigation_action_get_original_uri (navigation_action));
547 store_xwidget_event_string(xw, webkit_web_navigation_action_get_original_uri (navigation_action), 547 store_xwidget_event_string(xw, "navigation-policy-decision-requested", webkit_web_navigation_action_get_original_uri (navigation_action)
548 "navigation-policy-decision-requested"); 548 );
549 return FALSE; 549 return FALSE;
550} 550}
551 551