From dc248b8840b1d6b8fdce1f4e7dced7fa6b06ae72 Mon Sep 17 00:00:00 2001
From: Přemysl Janouch
Date: Tue, 8 Mar 2016 22:27:59 +0100
Subject: degesch: add goto activity and highlight
---
NEWS | 3 +++
degesch.c | 43 +++++++++++++++++++++++++++++++++++++++++++
2 files changed, 46 insertions(+)
diff --git a/NEWS b/NEWS
index aad76d2..047c527 100644
--- a/NEWS
+++ b/NEWS
@@ -18,6 +18,9 @@
* degesch: added logging of messages sent from /quote and plugins
+ * degesch: M-! and M-@ to go to the next buffer in order with
+ a highlight or new activity respectively
+
* kike: add support for IRCv3.2 server-time
* ZyklonB: plugins now run in a dedicated data directory
diff --git a/degesch.c b/degesch.c
index c433733..29909d5 100644
--- a/degesch.c
+++ b/degesch.c
@@ -11758,6 +11758,45 @@ on_switch_buffer (int count, int key, void *user_data)
return true;
}
+static bool
+on_goto_highlight (int count, int key, void *user_data)
+{
+ (void) count;
+ (void) key;
+
+ struct app_context *ctx = user_data;
+ struct buffer *new_buffer = ctx->current_buffer;
+ while (!new_buffer->highlighted)
+ {
+ if (!(new_buffer = new_buffer->next))
+ new_buffer = ctx->buffers;
+ if (new_buffer == ctx->current_buffer)
+ return false;
+ }
+ buffer_activate (ctx, new_buffer);
+ return true;
+}
+
+static bool
+on_goto_activity (int count, int key, void *user_data)
+{
+ (void) count;
+ (void) key;
+
+ struct app_context *ctx = user_data;
+ struct buffer *new_buffer = ctx->current_buffer;
+ while (new_buffer->unseen_messages_count
+ == new_buffer->unseen_unimportant_count)
+ {
+ if (!(new_buffer = new_buffer->next))
+ new_buffer = ctx->buffers;
+ if (new_buffer == ctx->current_buffer)
+ return false;
+ }
+ buffer_activate (ctx, new_buffer);
+ return true;
+}
+
static bool
on_redraw_screen (int count, int key, void *user_data)
{
@@ -11799,6 +11838,8 @@ bind_common_keys (struct app_context *ctx)
XX ("next-buffer", "Next buffer", on_next_buffer)
XX ("goto-buffer", "Go to buffer", on_goto_buffer)
XX ("switch-buffer", "Switch buffer", on_switch_buffer)
+ XX ("goto-highlight", "Go to highlight", on_goto_highlight)
+ XX ("goto-activity", "Go to activity", on_goto_activity)
XX ("display-backlog", "Show backlog", on_display_backlog)
XX ("display-full-log", "Show full log", on_display_full_log)
XX ("edit-input", "Edit input", on_edit_input)
@@ -11815,6 +11856,8 @@ bind_common_keys (struct app_context *ctx)
CALL_ (self, bind_meta, '0' + i, "goto-buffer");
CALL_ (self, bind_meta, '\t', "switch-buffer");
+ CALL_ (self, bind_meta, '!', "goto-highlight");
+ CALL_ (self, bind_meta, '@', "goto-activity");
CALL_ (self, bind_meta, 'm', "insert-attribute");
CALL_ (self, bind_meta, 'h', "display-full-log");
CALL_ (self, bind_meta, 'e', "edit-input");
--
cgit v1.2.3-70-g09d2