X-Git-Url: http://cgit.sxemacs.org/?p=gnus;a=blobdiff_plain;f=lisp%2Fgnus-notifications.el;h=54a75b69c850fe9f99174c6a4033b702dbbfa199;hp=1ed344e1c7a8491b4e18c2d5a28f49821329c532;hb=b52037f4a9c6bee1ff556c22750e158da1208d4b;hpb=4c012447d37884c8b8a6f186e02d9ce45b891013 diff --git a/lisp/gnus-notifications.el b/lisp/gnus-notifications.el index 1ed344e1c..54a75b69c 100644 --- a/lisp/gnus-notifications.el +++ b/lisp/gnus-notifications.el @@ -1,6 +1,6 @@ ;; gnus-notifications.el -- Send notification on new message in Gnus -;; Copyright (C) 2012-2015 Free Software Foundation, Inc. +;; Copyright (C) 2012-2016 Free Software Foundation, Inc. ;; Author: Julien Danjou ;; Keywords: news @@ -75,13 +75,19 @@ not get notifications." "Map notifications ids to messages.") (defun gnus-notifications-action (id key) - (when (string= key "read") - (let ((group-article (assoc id gnus-notifications-id-to-msg))) - (when group-article - (let ((group (cadr group-article)) - (article (nth 2 group-article))) - (gnus-fetch-group group (list article)) - (when (window-system) (x-focus-frame (selected-frame)))))))) + (let ((group-article (assoc id gnus-notifications-id-to-msg))) + (when group-article + (let ((group (cadr group-article)) + (article (nth 2 group-article))) + (cond ((string= key "read") + (gnus-fetch-group group (list article)) + (gnus-select-frame-set-input-focus (selected-frame))) + ((string= key "mark-read") + (gnus-update-read-articles + group + (delq article (gnus-list-of-unread-articles group))) + ;; gnus-group-refresh-group + (gnus-group-update-group group))))))) (defun gnus-notifications-notify (from subject photo-file) "Send a notification about a new mail. @@ -91,7 +97,7 @@ Return a notification id if any, or t on success." 'notifications-notify :title from :body subject - :actions '("read" "Read") + :actions '("read" "Read" "mark-read" "Mark As Read") :on-action 'gnus-notifications-action :app-icon (gnus-funcall-no-warning 'image-search-load-path "gnus/gnus.png")