emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master bdcf3c3: Cancel xwidget progress timer when buffer is killed


From: Po Lu
Subject: master bdcf3c3: Cancel xwidget progress timer when buffer is killed
Date: Tue, 7 Dec 2021 00:46:12 -0500 (EST)

branch: master
commit bdcf3c3504566fd61c42b06ee41cae5c074c3c03
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    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)
---
 lisp/xwidget.el | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lisp/xwidget.el b/lisp/xwidget.el
index cf4396f..ce9839e 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)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]