]> git.eshelyaron.com Git - emacs.git/commitdiff
* gnus-util.el (gnus-tool-bar-update): New function.
authorReiner Steib <Reiner.Steib@gmx.de>
Wed, 8 Mar 2006 14:27:20 +0000 (14:27 +0000)
committerReiner Steib <Reiner.Steib@gmx.de>
Wed, 8 Mar 2006 14:27:20 +0000 (14:27 +0000)
* gnus-group.el (gnus-group-update-tool-bar): New variable.
(gnus-group-insert-group-line): Add gnus-tool-bar-update.

* gnus-topic.el (gnus-topic-prepare-topic): Add gnus-tool-bar-update.

lisp/gnus/ChangeLog
lisp/gnus/gnus-group.el
lisp/gnus/gnus-topic.el
lisp/gnus/gnus-util.el

index 43bfc71eb5e225c32aac262b767326dabe5f31aa..f2a76109562b600e2ea231b2d323fd8f652350c4 100644 (file)
@@ -1,3 +1,12 @@
+2006-03-08  Reiner Steib  <Reiner.Steib@gmx.de>
+
+       * gnus-util.el (gnus-tool-bar-update): New function.
+
+       * gnus-group.el (gnus-group-update-tool-bar): New variable.
+       (gnus-group-insert-group-line): Add gnus-tool-bar-update.
+
+       * gnus-topic.el (gnus-topic-prepare-topic): Add gnus-tool-bar-update.
+
 2006-03-06  Katsumi Yamaoka  <yamaoka@jpl.org>
 
        * mm-view.el (mm-w3m-cid-retrieve-1): Check carefully whether
index 933c3762ed95857664aac8dde39f12131c30e9c5..3d20af8b0df0ffad3ba83304d8352fe2aff2f1de 100644 (file)
@@ -1379,6 +1379,18 @@ if it is a string, only list groups matching REGEXP."
                (gnus-range-difference (list active) (gnus-info-read info))
                seen))))))
 
+(defcustom gnus-group-update-tool-bar
+  (and (not (featurep 'xemacs))
+       (boundp 'tool-bar-mode)
+       tool-bar-mode
+       ;; Using `redraw-frame' (see `gnus-tool-bar-update') in Emacs 21 might
+       ;; be confusing, so maybe we shouldn't call it by default.
+       (fboundp 'force-window-update))
+  "Force updating the group buffer tool bar."
+  :group 'gnus-group
+  :version "22.1"
+  :type 'boolean)
+
 (defun gnus-group-insert-group-line (gnus-tmp-group gnus-tmp-level
                                                    gnus-tmp-marked number
                                                    gnus-tmp-method)
@@ -1447,8 +1459,10 @@ if it is a string, only list groups matching REGEXP."
                   (bbb-grouplens-group-p gnus-tmp-group))
              ""))
         (buffer-read-only nil)
+        beg end
         header gnus-tmp-header)        ; passed as parameter to user-funcs.
     (beginning-of-line)
+    (setq beg (point))
     (gnus-add-text-properties
      (point)
      (prog1 (1+ (point))
@@ -1463,6 +1477,12 @@ if it is a string, only list groups matching REGEXP."
                  gnus-marked ,gnus-tmp-marked-mark
                  gnus-indentation ,gnus-group-indentation
                  gnus-level ,gnus-tmp-level))
+    (setq end (point))
+    (when gnus-group-update-tool-bar
+      (gnus-put-text-property beg end 'point-entered
+                             'gnus-tool-bar-update)
+      (gnus-put-text-property beg end 'point-left
+                             'gnus-tool-bar-update))
     (forward-line -1)
     (when (inline (gnus-visual-p 'group-highlight 'highlight))
       (gnus-run-hooks 'gnus-group-update-hook))
index fc80a26f6b9899d33da92434391211a941da0314..45585526bcf4d9e447c4437f308b9ab04e412b4a 100644 (file)
@@ -585,6 +585,11 @@ articles in the topic and its subtopics."
        (not (eq (nth 2 type) 'hidden))
        level all-entries unread))
     (gnus-topic-update-unreads (car type) unread)
+    (when gnus-group-update-tool-bar
+      (gnus-put-text-property beg end 'point-entered
+                             'gnus-tool-bar-update)
+      (gnus-put-text-property beg end 'point-left
+                             'gnus-tool-bar-update))
     (goto-char end)
     unread))
 
index c9a3f8c965ad35a6b287e1a22cf830f2875a826f..686fe1cf837b48ea6f75e4f8031c59f7fdc2e339 100644 (file)
@@ -1459,6 +1459,23 @@ Return nil otherwise."
                                 display))
              display)))))
 
+(defun gnus-tool-bar-update (&rest ignore)
+  "Update the tool bar."
+  (when (and (boundp 'tool-bar-mode)
+            tool-bar-mode)
+    (let* ((args nil)
+          (func (cond ((featurep 'xemacs)
+                       'ignore)
+                      ((fboundp 'tool-bar-update)
+                       'tool-bar-update)
+                      ((fboundp 'force-window-update)
+                       'force-window-update)
+                      ((fboundp 'redraw-frame)
+                       (setq args (list (selected-frame)))
+                       'redraw-frame)
+                      (t 'ignore))))
+      (apply func args))))
+
 ;; Fixme: This has only one use (in gnus-agent), which isn't worthwhile.
 (defmacro gnus-mapcar (function seq1 &rest seqs2_n)
   "Apply FUNCTION to each element of the sequences, and make a list of the results.