#include "mx.h"
#include "mutt_curses.h"
+#include "sidebar.h"
#ifdef USE_IMAP
#include "imap.h"
{
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++;
WHERE struct buffy_t *CurBuffy INITVAL(0);
WHERE short DrawFullLine INITVAL(0);
+WHERE short SidebarLastRefresh;
+WHERE short SidebarRefresh;
WHERE LIST *SidebarWhitelist INITVAL(0);
WHERE short SidebarWidth;
** Setting sidebar_next_new_wrap=yes causes mutt to wrap around the list
** of mailboxes when using Next/Previous New Mailbox commands.
*/
+ { "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
prev_show_value = option(OPTSIDEBAR);
saveSidebarWidth = SidebarWidth;
if(!option(OPTSIDEBAR)) SidebarWidth = 0;
+ SidebarLastRefresh = time(NULL);
initialized = true;
}
return 0;
}
+int sidebar_should_refresh()
+{
+ if (option(OPTSIDEBAR) && SidebarRefresh > 0) {
+ if (time(NULL) - SidebarLastRefresh >= SidebarRefresh)
+ return 1;
+ }
+ return 0;
+}
+
void scroll_sidebar(int op, int menu)
{
BUFFY *tmp;
}
}
+void sidebar_updated()
+{
+ SidebarLastRefresh = time(NULL);
+}
int draw_sidebar(int);
void scroll_sidebar(int, int);
void set_buffystats(CONTEXT*);
-void set_curbuffy(char*);
+int sidebar_should_refresh();
+void sidebar_updated();
#endif /* SIDEBAR_H */