aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorJoakim Verona2012-01-23 15:08:53 +0100
committerJoakim Verona2012-01-23 15:08:53 +0100
commitd5114bfea3ea4c37c57e2af0f3b095be9fcd8bac (patch)
treeb61140bc590538137eee8416bfe28852ecf606af /lisp
parent698bd5eb8efd16be779b75934175c52d9150b5c9 (diff)
downloademacs-d5114bfea3ea4c37c57e2af0f3b095be9fcd8bac.tar.gz
emacs-d5114bfea3ea4c37c57e2af0f3b095be9fcd8bac.zip
added stuff for logging
Diffstat (limited to 'lisp')
-rw-r--r--lisp/xwidget.el47
1 files changed, 28 insertions, 19 deletions
diff --git a/lisp/xwidget.el b/lisp/xwidget.el
index a8fa84da37f..50e74add6a0 100644
--- a/lisp/xwidget.el
+++ b/lisp/xwidget.el
@@ -142,35 +142,44 @@ defaults to the string looking like a url around the cursor position."
142;;since the xwidget can generate an event even if its offscreen 142;;since the xwidget can generate an event even if its offscreen
143;;TODO this needs to use callbacks and consider different xw ev types 143;;TODO this needs to use callbacks and consider different xw ev types
144(define-key (current-global-map) [xwidget-event] 'xwidget-event-handler) 144(define-key (current-global-map) [xwidget-event] 'xwidget-event-handler)
145(defun xwidget-log ( &rest msg)
146 (let ( (buf (get-buffer-create "*xwidget-log*")))
147 (save-excursion
148 (buffer-disable-undo buf)
149 (set-buffer buf)
150 (insert (apply 'format msg))
151 (insert "\n"))))
145 152
146(defun xwidget-event-handler () 153(defun xwidget-event-handler ()
147 "Receive xwidget event." 154 "Receive xwidget event."
148 (interactive) 155 (interactive)
149 (message "stuff happened to xwidget %S" last-input-event) 156 (xwidget-log "stuff happened to xwidget %S" last-input-event)
150 (let* 157 (let*
151 ((xwidget-event-type (nth 1 last-input-event)) 158 ((xwidget-event-type (nth 1 last-input-event))
152 (xwidget (nth 2 last-input-event)) 159 (xwidget (nth 2 last-input-event))
153 ;(xwidget-callback (xwidget-get xwidget 'callback));;TODO stopped working for some reason 160 ;(xwidget-callback (xwidget-get xwidget 'callback));;TODO stopped working for some reason
154 ) 161 )
155 ;(funcall xwidget-callback xwidget xwidget-event-type) 162 ;(funcall xwidget-callback xwidget xwidget-event-type)
156 (funcall 'xwidget-webkit-callback xwidget xwidget-event-type) 163 (funcall 'xwidget-webkit-callback xwidget xwidget-event-type)
157 )) 164 ))
158 165
159(defun xwidget-webkit-callback (xwidget xwidget-event-type) 166(defun xwidget-webkit-callback (xwidget xwidget-event-type)
160 (save-excursion 167 (save-excursion
161 (set-buffer (xwidget-buffer xwidget)) 168 (cond ( (buffer-live-p (xwidget-buffer xwidget))
162 (let* ( (strarg (nth 3 last-input-event))) 169 (set-buffer (xwidget-buffer xwidget))
163 (cond ((eq xwidget-event-type 'document-load-finished) 170 (let* ( (strarg (nth 3 last-input-event)))
164 (message "webkit finished loading: '%s'" (xwidget-webkit-get-title xwidget)) 171 (cond ((eq xwidget-event-type 'document-load-finished)
165 (xwidget-adjust-size-to-content xwidget) 172 (xwidget-log "webkit finished loading: '%s'" (xwidget-webkit-get-title xwidget))
166 (rename-buffer (format "*xwidget webkit: %s *" (xwidget-webkit-get-title xwidget))) 173 (xwidget-adjust-size-to-content xwidget)
167 (pop-to-buffer (current-buffer)) 174 (rename-buffer (format "*xwidget webkit: %s *" (xwidget-webkit-get-title xwidget)))
168 ) 175 (pop-to-buffer (current-buffer))
169 176 )
170 ((eq xwidget-event-type 'navigation-policy-decision-requested) 177
171 (if (string-match ".*#\\(.*\\)" strarg) 178 ((eq xwidget-event-type 'navigation-policy-decision-requested)
172 (xwidget-webkit-show-id-or-named-element xwidget (match-string 1 strarg)))) 179 (if (string-match ".*#\\(.*\\)" strarg)
173 (t (message "unhandled event:%s" xwidget-event-type)))))) 180 (xwidget-webkit-show-id-or-named-element xwidget (match-string 1 strarg))))
181 (t (xwidget-log "unhandled event:%s" xwidget-event-type)))))
182 (t (xwidget-log "error: callback called for xwidget with dead buffer")))))
174 183
175(define-derived-mode xwidget-webkit-mode 184(define-derived-mode xwidget-webkit-mode
176 special-mode "xwidget-webkit" "xwidget webkit view mode" 185 special-mode "xwidget-webkit" "xwidget webkit view mode"
@@ -272,7 +281,7 @@ Argument STR string."
272 (let ((y 281 (let ((y
273 (string-to-number (xwidget-webkit-execute-script-rv xw (format "document.getElementsByName('%s')[0].getBoundingClientRect().top" element-name) 0)))) 282 (string-to-number (xwidget-webkit-execute-script-rv xw (format "document.getElementsByName('%s')[0].getBoundingClientRect().top" element-name) 0))))
274 ;;now we need to tell emacs to scroll the element into view. 283 ;;now we need to tell emacs to scroll the element into view.
275 (message "scroll: %d" y) 284 (xwidget-log "scroll: %d" y)
276 (set-window-vscroll (selected-window) y t)) 285 (set-window-vscroll (selected-window) y t))
277 ) 286 )
278 287
@@ -282,7 +291,7 @@ Argument STR string."
282 (let ((y 291 (let ((y
283 (string-to-number (xwidget-webkit-execute-script-rv xw (format "document.getElementById('%s').getBoundingClientRect().top" element-id) 0)))) 292 (string-to-number (xwidget-webkit-execute-script-rv xw (format "document.getElementById('%s').getBoundingClientRect().top" element-id) 0))))
284 ;;now we need to tell emacs to scroll the element into view. 293 ;;now we need to tell emacs to scroll the element into view.
285 (message "scroll: %d" y) 294 (xwidget-log "scroll: %d" y)
286 (set-window-vscroll (selected-window) y t)) 295 (set-window-vscroll (selected-window) y t))
287 ) 296 )
288 297
@@ -295,7 +304,7 @@ Argument STR string."
295 (string-to-number (xwidget-webkit-execute-script-rv xw (format "document.getElementById('%s').getBoundingClientRect().top" element-id) 0))) 304 (string-to-number (xwidget-webkit-execute-script-rv xw (format "document.getElementById('%s').getBoundingClientRect().top" element-id) 0)))
296 (y3 (max y1 y2))) 305 (y3 (max y1 y2)))
297 ;;now we need to tell emacs to scroll the element into view. 306 ;;now we need to tell emacs to scroll the element into view.
298 (message "scroll: %d" y3) 307 (xwidget-log "scroll: %d" y3)
299 (set-window-vscroll (selected-window) y3 t)) 308 (set-window-vscroll (selected-window) y3 t))
300 ) 309 )
301 310