opnsense-ports/mail/mutt/files/extra-patch-sidebar-refresh
Franco Fichtner 9fdde0e25a */*: sync with upstream
Taken from: FreeBSD
2016-01-29 06:17:22 +01:00

113 lines
3.1 KiB
Text

--- a/buffy.c.orig 2015-12-15 19:11:10.949983000 +0100
+++ b/buffy.c 2015-12-15 19:11:10.963818000 +0100
@@ -26,6 +26,7 @@
#include "mx.h"
#include "mutt_curses.h"
+#include "sidebar.h"
#ifdef USE_IMAP
#include "imap.h"
@@ -602,19 +603,28 @@
{
case M_MBOX:
case M_MMDF:
- buffy_mbox_update (tmp, &sb);
+ if (sidebar_should_refresh()) {
+ buffy_mbox_update (tmp, &sb);
+ sidebar_updated();
+ }
if (buffy_mbox_hasnew (tmp, &sb) > 0)
BuffyCount++;
break;
case M_MAILDIR:
- buffy_maildir_update (tmp);
+ if (sidebar_should_refresh()) {
+ buffy_maildir_update (tmp);
+ sidebar_updated();
+ }
if (buffy_maildir_hasnew (tmp) > 0)
BuffyCount++;
break;
case M_MH:
- mh_buffy_update (tmp->path, &tmp->msgcount, &tmp->msg_unread, &tmp->msg_flagged, &tmp->sb_last_checked);
+ if (sidebar_should_refresh()) {
+ mh_buffy_update (tmp->path, &tmp->msgcount, &tmp->msg_unread, &tmp->msg_flagged, &tmp->sb_last_checked);
+ sidebar_updated();
+ }
mh_buffy(tmp);
if (tmp->new)
BuffyCount++;
Index: mutt/globals.h
===================================================================
--- a/globals.h.orig 2015-12-15 19:11:10.951646000 +0100
+++ b/globals.h 2015-12-15 19:11:10.963953000 +0100
@@ -219,6 +219,8 @@
WHERE struct buffy_t *CurBuffy INITVAL(0);
WHERE short DrawFullLine INITVAL(0);
WHERE short SidebarWidth;
+WHERE short SidebarRefresh;
+WHERE short SidebarLastRefresh;
#ifdef USE_IMAP
WHERE short ImapKeepalive;
WHERE short ImapPipelineDepth;
Index: mutt/init.h
===================================================================
--- a/init.h.orig 2015-12-15 19:11:10.954277000 +0100
+++ b/init.h 2015-12-15 19:11:10.966235000 +0100
@@ -2042,6 +2042,12 @@
** .pp
** The width of the sidebar.
*/
+ { "sidebar_refresh", DT_NUM, R_BOTH, UL &SidebarRefresh, 60 },
+ /*
+ ** .pp
+ ** Do not refresh sidebar in less than $sidebar_refresh seconds,
+ ** (0 disables refreshing).
+ */
{ "sidebar_shortpath", DT_BOOL, R_BOTH, OPTSIDEBARSHORTPATH, 0 },
/*
** .pp
Index: mutt/sidebar.c
===================================================================
--- a/sidebar.c.orig 2015-12-15 19:11:10.959133000 +0100
+++ b/sidebar.c 2015-12-15 19:11:10.966747000 +0100
@@ -211,6 +211,7 @@
saveSidebarWidth = SidebarWidth;
if(!option(OPTSIDEBAR)) SidebarWidth = 0;
initialized = true;
+ SidebarLastRefresh = time(NULL);
}
/* save or restore the value SidebarWidth */
@@ -417,3 +418,16 @@
draw_sidebar(menu);
}
+int sidebar_should_refresh()
+{
+ if (option(OPTSIDEBAR) && SidebarRefresh > 0) {
+ if (time(NULL) - SidebarLastRefresh >= SidebarRefresh)
+ return 1;
+ }
+ return 0;
+}
+void sidebar_updated()
+{
+ SidebarLastRefresh = time(NULL);
+}
+
Index: mutt/sidebar.h
===================================================================
--- a/sidebar.h.orig 2015-12-15 19:11:10.959229000 +0100
+++ b/sidebar.h 2015-12-15 19:11:10.966962000 +0100
@@ -32,5 +32,7 @@
void scroll_sidebar(int, int);
void set_curbuffy(char*);
void set_buffystats(CONTEXT*);
+int sidebar_should_refresh();
+void sidebar_updated();
#endif /* SIDEBAR_H */