mirror of
https://github.com/weechat/weechat.git
synced 2026-06-12 14:14:48 +02:00
irc: add local key bindings during the /list buffer creation
This allows the user to bind or unbind keys by setting options "weechat.buffer.irc.list_xxx.key_bind_*" and "weechat.buffer.irc.list_xxx.key_unbind_*".
This commit is contained in:
@@ -908,33 +908,6 @@ irc_list_buffer_input_data (struct t_gui_buffer *buffer, const char *input_data)
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* Sets keys on list buffer.
|
||||
*/
|
||||
|
||||
void
|
||||
irc_list_buffer_set_keys (struct t_gui_buffer *buffer)
|
||||
{
|
||||
char *keys[][2] = {
|
||||
{ "up", "/list -up" },
|
||||
{ "down", "/list -down" },
|
||||
{ "meta-home", "/list -go 0" },
|
||||
{ "meta-end", "/list -go end" },
|
||||
{ "f11", "/list -left" },
|
||||
{ "f12", "/list -right" },
|
||||
{ "ctrl-j", "/list -join" },
|
||||
{ NULL, NULL },
|
||||
};
|
||||
char str_key[64];
|
||||
int i;
|
||||
|
||||
for (i = 0; keys[i][0]; i++)
|
||||
{
|
||||
snprintf (str_key, sizeof (str_key), "key_bind_%s", keys[i][0]);
|
||||
weechat_buffer_set (buffer, str_key, keys[i][1]);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Creates buffer with list of channels for a server.
|
||||
*
|
||||
@@ -963,6 +936,14 @@ irc_list_create_buffer (struct t_irc_server *server)
|
||||
weechat_hashtable_set (buffer_props, "localvar_set_no_log", "1");
|
||||
/* disable all highlights on this buffer */
|
||||
weechat_hashtable_set (buffer_props, "highlight_words", "-");
|
||||
/* set keys on buffer */
|
||||
weechat_hashtable_set (buffer_props, "key_bind_up", "/list -up");
|
||||
weechat_hashtable_set (buffer_props, "key_bind_down", "/list -down");
|
||||
weechat_hashtable_set (buffer_props, "key_bind_meta-home", "/list -go 0");
|
||||
weechat_hashtable_set (buffer_props, "key_bind_meta-end", "/list -go end");
|
||||
weechat_hashtable_set (buffer_props, "key_bind_f11", "/list -left");
|
||||
weechat_hashtable_set (buffer_props, "key_bind_f12", "/list -right");
|
||||
weechat_hashtable_set (buffer_props, "key_bind_ctrl-j", "/list -join");
|
||||
}
|
||||
|
||||
current_buffer_number = weechat_buffer_get_integer (
|
||||
@@ -979,7 +960,6 @@ irc_list_create_buffer (struct t_irc_server *server)
|
||||
if (buffer_props)
|
||||
weechat_hashtable_free (buffer_props);
|
||||
|
||||
irc_list_buffer_set_keys (buffer);
|
||||
irc_list_buffer_set_localvar_filter (buffer, server);
|
||||
|
||||
if (weechat_buffer_get_integer (buffer, "layout_number") < 1)
|
||||
|
||||
@@ -242,16 +242,6 @@ TEST(IrcList, IrcListBufferInputDataCb)
|
||||
/* TODO: write tests */
|
||||
}
|
||||
|
||||
/*
|
||||
* Tests functions:
|
||||
* irc_list_buffer_set_keys
|
||||
*/
|
||||
|
||||
TEST(IrcList, IrcListBufferSetKeys)
|
||||
{
|
||||
/* TODO: write tests */
|
||||
}
|
||||
|
||||
/*
|
||||
* Tests functions:
|
||||
* irc_list_create_buffer
|
||||
|
||||
Reference in New Issue
Block a user