]> git.eshelyaron.com Git - emacs.git/commitdiff
First attempt at bookmark support
authorJoakim Verona <joakim@verona.se>
Wed, 28 Jan 2015 00:02:43 +0000 (01:02 +0100)
committerJoakim Verona <joakim@verona.se>
Wed, 28 Jan 2015 00:02:43 +0000 (01:02 +0100)
lisp/xwidget.el

index 4ea2139610380d9ff1bcc68d00a4600dd4e767af..4471b122177370721d5cee8c8ce9bdfb81d182d1 100644 (file)
@@ -1,4 +1,4 @@
-;;; xwidget.el --- api functions for xwidgets
+p;;; xwidget.el --- api functions for xwidgets  -*- lexical-binding: t -*-
 ;;  see xwidget.c for more api functions
 
 
@@ -224,12 +224,21 @@ XWIDGET instance, XWIDGET-EVENT-TYPE depends on the originating xwidget."
                    (t (xwidget-log "unhandled event:%s" xwidget-event-type)))))
           (t (xwidget-log "error: callback called for xwidget with dead buffer")))))
 
+(defvar bookmark-make-record-function)
 (define-derived-mode xwidget-webkit-mode
   special-mode "xwidget-webkit" "xwidget webkit view mode"
   (setq buffer-read-only t)
+  (setq-local bookmark-make-record-function
+              #'xwidget-webkit-bookmark-make-record)
   ;; Keep track of [vh]scroll when switching buffers
   (image-mode-setup-winprops))
 
+(defun xwidget-webkit-bookmark-make-record ()
+  (nconc (bookmark-make-record-default t t)
+         `((page     . ,(xwidget-webkit-current-url))
+           (handler  . (lambda (bmk) (browse-url   (bookmark-prop-get bmk 'page)))))))
+
+
 (defvar xwidget-webkit-last-session-buffer nil)
 
 (defun  xwidget-webkit-last-session ()