Function: xwidget-webkit-callback

xwidget-webkit-callback is a byte-compiled function defined in xwidget.el.gz.

Signature

(xwidget-webkit-callback XWIDGET XWIDGET-EVENT-TYPE)

Documentation

Callback for xwidgets.

XWIDGET instance, XWIDGET-EVENT-TYPE depends on the originating xwidget.

Source Code

;; Defined in /usr/src/emacs/lisp/xwidget.el.gz
(defun xwidget-webkit-callback (xwidget xwidget-event-type)
  "Callback for xwidgets.
XWIDGET instance, XWIDGET-EVENT-TYPE depends on the originating xwidget."
  (if (not (buffer-live-p (xwidget-buffer xwidget)))
      (xwidget-log
       "error: callback called for xwidget with dead buffer")
    (with-current-buffer (xwidget-buffer xwidget)
      (cond ((eq xwidget-event-type 'load-changed)
             (let ((title (xwidget-webkit-title xwidget)))
               (xwidget-log "webkit finished loading: %s" title)
               ;; Do not adjust webkit size to window here, the selected window
               ;; can be the mini-buffer window unwantedly.
               (rename-buffer (format "*xwidget webkit: %s *" title) t)))
            ((eq xwidget-event-type 'decide-policy)
             (let ((strarg  (nth 3 last-input-event)))
               (if (string-match ".*#\\(.*\\)" strarg)
                   (xwidget-webkit-show-id-or-named-element
                    xwidget
                    (match-string 1 strarg)))))
            ;; TODO: Response handling other than download.
            ((eq xwidget-event-type 'download-callback)
             (let ((url  (nth 3 last-input-event))
                   (mime-type (nth 4 last-input-event))
                   (file-name (nth 5 last-input-event)))
               (xwidget-webkit-save-as-file url mime-type file-name)))
            ((eq xwidget-event-type 'javascript-callback)
             (let ((proc (nth 3 last-input-event))
                   (arg  (nth 4 last-input-event)))
               (funcall proc arg)))
            (t (xwidget-log "unhandled event:%s" xwidget-event-type))))))