mirror of
https://github.com/irssi/irssi.git
synced 2025-04-25 12:31:09 -05:00
Merge 149ed1188b3c51dffe5a139c3913cfdeec87da6c into ee4471a1184b7a17e11146a87c2b18caaf11e49c
This commit is contained in:
commit
db24769f9f
@ -183,18 +183,26 @@ static void sig_layout_save_item(WINDOW_REC *window, WI_ITEM_REC *item,
|
||||
}
|
||||
}
|
||||
|
||||
static void window_save_items(WINDOW_REC *window, CONFIG_NODE *node)
|
||||
static int window_save_items(WINDOW_REC *window, CONFIG_NODE *node)
|
||||
{
|
||||
GSList *tmp;
|
||||
int save_only_channels = settings_get_bool("layout_save_only_channels");
|
||||
int items_saved = FALSE;
|
||||
|
||||
node = iconfig_node_section(node, "items", NODE_TYPE_LIST);
|
||||
for (tmp = window->items; tmp != NULL; tmp = tmp->next)
|
||||
signal_emit("layout save item", 3, window, tmp->data, node);
|
||||
if ((save_only_channels && IS_CHANNEL(tmp->data)) || !save_only_channels) {
|
||||
items_saved = TRUE;
|
||||
signal_emit("layout save item", 3, window, tmp->data, node);
|
||||
}
|
||||
|
||||
return items_saved;
|
||||
}
|
||||
|
||||
static void window_save(WINDOW_REC *window, CONFIG_NODE *node)
|
||||
{
|
||||
char refnum[MAX_INT_STRLEN];
|
||||
int save_node = FALSE;
|
||||
|
||||
ltoa(refnum, window->refnum);
|
||||
node = iconfig_node_section(node, refnum, NODE_TYPE_BLOCK);
|
||||
@ -224,9 +232,10 @@ static void window_save(WINDOW_REC *window, CONFIG_NODE *node)
|
||||
while (window->bound_items != NULL)
|
||||
window_bind_destroy(window, window->bound_items->data);
|
||||
if (window->items != NULL)
|
||||
window_save_items(window, node);
|
||||
save_node = window_save_items(window, node);
|
||||
|
||||
signal_emit("layout save window", 2, window, node);
|
||||
if (save_node)
|
||||
signal_emit("layout save window", 2, window, node);
|
||||
}
|
||||
|
||||
void windows_layout_save(void)
|
||||
@ -268,6 +277,8 @@ void windows_layout_init(void)
|
||||
signal_add("layout restore item", (SIGNAL_FUNC) sig_layout_restore_item);
|
||||
signal_add("layout restore", (SIGNAL_FUNC) sig_layout_restore);
|
||||
signal_add("layout save item", (SIGNAL_FUNC) sig_layout_save_item);
|
||||
|
||||
settings_add_bool("misc", "layout_save_only_channels", FALSE);
|
||||
}
|
||||
|
||||
void windows_layout_deinit(void)
|
||||
|
Loading…
x
Reference in New Issue
Block a user