1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-09 11:13:12 +02:00

core: fix bugs with automatic layout (bug #26110), add support of merged buffers in layout (task #10893)

This commit is contained in:
Sebastien Helleu
2011-08-05 13:18:03 +02:00
parent 02532973e9
commit d27c459c1d
14 changed files with 217 additions and 113 deletions
+20 -17
View File
@@ -182,24 +182,27 @@ irc_channel_new (struct t_irc_server *server, int channel_type,
free (new_channel);
return NULL;
}
buffer_position = (channel_type == IRC_CHANNEL_TYPE_CHANNEL) ?
weechat_config_integer (irc_config_look_new_channel_position) :
weechat_config_integer (irc_config_look_new_pv_position);
switch (buffer_position)
if (weechat_buffer_get_integer (new_buffer, "layout_number") < 1)
{
case IRC_CONFIG_LOOK_BUFFER_POSITION_NONE:
/* do nothing */
break;
case IRC_CONFIG_LOOK_BUFFER_POSITION_NEXT:
/* move buffer to current number + 1 */
snprintf (str_number, sizeof (str_number),
"%d", current_buffer_number + 1);
weechat_buffer_set (new_buffer, "number", str_number);
break;
case IRC_CONFIG_LOOK_BUFFER_POSITION_NEAR_SERVER:
/* move buffer after last channel/pv of server */
irc_channel_move_near_server (server, channel_type, new_buffer);
break;
buffer_position = (channel_type == IRC_CHANNEL_TYPE_CHANNEL) ?
weechat_config_integer (irc_config_look_new_channel_position) :
weechat_config_integer (irc_config_look_new_pv_position);
switch (buffer_position)
{
case IRC_CONFIG_LOOK_BUFFER_POSITION_NONE:
/* do nothing */
break;
case IRC_CONFIG_LOOK_BUFFER_POSITION_NEXT:
/* move buffer to current number + 1 */
snprintf (str_number, sizeof (str_number),
"%d", current_buffer_number + 1);
weechat_buffer_set (new_buffer, "number", str_number);
break;
case IRC_CONFIG_LOOK_BUFFER_POSITION_NEAR_SERVER:
/* move buffer after last channel/pv of server */
irc_channel_move_near_server (server, channel_type, new_buffer);
break;
}
}
buffer_created = 1;
}
+9 -2
View File
@@ -2865,9 +2865,16 @@ irc_server_create_buffer (struct t_irc_server *server)
irc_server_set_buffer_title (server);
/* merge buffer if needed */
if (ptr_buffer_for_merge)
/*
* merge buffer if needed: if merge with(out) core set, and if no layout
* number is assigned for this buffer (if layout number is assigned, then
* buffer was already moved/merged by WeeChat core)
*/
if (ptr_buffer_for_merge
&& (weechat_buffer_get_integer (server->buffer, "layout_number") < 1))
{
weechat_buffer_merge (server->buffer, ptr_buffer_for_merge);
}
return server->buffer;
}