diff options
author | Po Lu <luangruo@yahoo.com> | 2021-12-07 13:44:52 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2021-12-07 13:44:52 +0800 |
commit | bdcf3c3504566fd61c42b06ee41cae5c074c3c03 (patch) | |
tree | d0d719ef3a189263f3efa270e92c461261570ad7 /lisp/xwidget.el | |
parent | e17aea73a5b2ae5f7cbf9057d7dad286be81ffc0 (diff) | |
download | emacs-bdcf3c3504566fd61c42b06ee41cae5c074c3c03.tar.gz emacs-bdcf3c3504566fd61c42b06ee41cae5c074c3c03.tar.bz2 emacs-bdcf3c3504566fd61c42b06ee41cae5c074c3c03.zip |
Cancel xwidget progress timer when buffer is killed
* lisp/xwidget.el (xwidget-webkit-buffer-kill): New function.
(xwidget-webkit-mode): Add `xwidget-webkit-buffer-kill' to
`kill-buffer-hook'. (bug#52344)
Diffstat (limited to 'lisp/xwidget.el')
-rw-r--r-- | lisp/xwidget.el | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lisp/xwidget.el b/lisp/xwidget.el index cf4396fec2d..ce9839ebd34 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -409,6 +409,11 @@ If N is omitted or nil, scroll backwards by one char." (with-current-buffer (xwidget-buffer xwidget) (force-mode-line-update))) +(defun xwidget-webkit-buffer-kill () + "Clean up an xwidget-webkit buffer before it is killed." + (when (timerp xwidget-webkit--progress-update-timer) + (cancel-timer xwidget-webkit--progress-update-timer))) + (defun xwidget-webkit-callback (xwidget xwidget-event-type) "Callback for xwidgets. XWIDGET instance, XWIDGET-EVENT-TYPE depends on the originating xwidget." @@ -479,6 +484,7 @@ If non-nil, plugins are enabled. Otherwise, disabled." (define-derived-mode xwidget-webkit-mode special-mode "xwidget-webkit" "Xwidget webkit view mode." (setq buffer-read-only t) + (add-hook 'kill-buffer-hook #'xwidget-webkit-buffer-kill) (setq-local tool-bar-map xwidget-webkit-tool-bar-map) (setq-local bookmark-make-record-function #'xwidget-webkit-bookmark-make-record) |