mirror of
https://github.com/weechat/weechat.git
synced 2026-06-30 23:06:38 +02:00
Set unread marker for IRC server/channels/pv buffers when using /away command
This commit is contained in:
@@ -505,6 +505,17 @@ gui_buffer_set_highlight_tags (struct t_gui_buffer *buffer,
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* gui_buffer_set_unread: set unread marker for a buffer
|
||||
*/
|
||||
|
||||
void
|
||||
gui_buffer_set_unread (struct t_gui_buffer *buffer)
|
||||
{
|
||||
if (buffer->type == GUI_BUFFER_TYPE_FORMATED)
|
||||
buffer->last_read_line = buffer->last_line;
|
||||
}
|
||||
|
||||
/*
|
||||
* gui_buffer_set: set a buffer property
|
||||
*/
|
||||
@@ -537,6 +548,10 @@ gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
|
||||
gui_hotlist_add (buffer, number, NULL, 1);
|
||||
}
|
||||
}
|
||||
else if (string_strcasecmp (property, "unread") == 0)
|
||||
{
|
||||
gui_buffer_set_unread (buffer);
|
||||
}
|
||||
|
||||
if (!buffer)
|
||||
return;
|
||||
|
||||
@@ -207,6 +207,7 @@ extern void gui_buffer_set_highlight_words (struct t_gui_buffer *buffer,
|
||||
const char *new_highlight_words);
|
||||
extern void gui_buffer_set_highlight_tags (struct t_gui_buffer *buffer,
|
||||
const char *new_highlight_tags);
|
||||
extern void gui_buffer_set_unread (struct t_gui_buffer *buffer);
|
||||
extern void gui_buffer_set (struct t_gui_buffer *buffer, const char *property,
|
||||
void *value);
|
||||
extern struct t_gui_buffer *gui_buffer_search_main ();
|
||||
|
||||
+6
-8
@@ -1373,8 +1373,7 @@ gui_input_set_unread ()
|
||||
for (ptr_buffer = gui_buffers; ptr_buffer;
|
||||
ptr_buffer = ptr_buffer->next_buffer)
|
||||
{
|
||||
if (ptr_buffer->type == GUI_BUFFER_TYPE_FORMATED)
|
||||
ptr_buffer->last_read_line = ptr_buffer->last_line;
|
||||
gui_buffer_set_unread (ptr_buffer);
|
||||
}
|
||||
|
||||
/* refresh all windows */
|
||||
@@ -1388,12 +1387,11 @@ gui_input_set_unread ()
|
||||
void
|
||||
gui_input_set_unread_current_buffer ()
|
||||
{
|
||||
if (gui_current_window
|
||||
&& (gui_current_window->buffer->type == GUI_BUFFER_TYPE_FORMATED))
|
||||
gui_current_window->buffer->last_read_line = gui_current_window->buffer->last_line;
|
||||
|
||||
/* refresh all windows */
|
||||
gui_window_redraw_buffer (gui_current_window->buffer);
|
||||
if (gui_current_window)
|
||||
{
|
||||
gui_buffer_set_unread (gui_current_window->buffer);
|
||||
gui_window_redraw_buffer (gui_current_window->buffer);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -209,7 +209,7 @@ irc_buffer_split_server ()
|
||||
|
||||
if (irc_buffer_servers)
|
||||
{
|
||||
weechat_buffer_set (irc_buffer_servers, "key_unbind_meta-s", NULL);
|
||||
weechat_buffer_set (irc_buffer_servers, "key_unbind_meta-s", "");
|
||||
}
|
||||
|
||||
for (ptr_server = irc_servers; ptr_server;
|
||||
|
||||
@@ -256,6 +256,7 @@ irc_command_away_server (struct t_irc_server *server, const char *arguments)
|
||||
{
|
||||
char *string, buffer[4096];
|
||||
time_t time_now, elapsed;
|
||||
struct t_irc_channel *ptr_channel;
|
||||
|
||||
if (!server)
|
||||
return;
|
||||
@@ -291,14 +292,16 @@ irc_command_away_server (struct t_irc_server *server, const char *arguments)
|
||||
free (string);
|
||||
}
|
||||
irc_server_set_away (server, server->nick, 1);
|
||||
/*for (ptr_window = gui_windows; ptr_window;
|
||||
ptr_window = ptr_window->next_window)
|
||||
|
||||
/* reset "unread" indicator on server and channels/pv buffers */
|
||||
if (!weechat_config_boolean (irc_config_look_one_server_buffer))
|
||||
weechat_buffer_set (server->buffer, "unread", "");
|
||||
for (ptr_channel = server->channels; ptr_channel;
|
||||
ptr_channel = ptr_channel->next_channel)
|
||||
{
|
||||
if (strcmp (ptr_window->buffer->category, server->name) == 0)
|
||||
ptr_window->buffer->last_read_line =
|
||||
ptr_window->buffer->last_line;
|
||||
weechat_buffer_set (ptr_channel->buffer, "unread", "");
|
||||
}
|
||||
*/
|
||||
weechat_printf (NULL, "set unread");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user