void gui_layout_store_on_exit () { struct t_gui_layout *ptr_layout; if (CONFIG_BOOLEAN(config_look_save_layout_on_exit) == CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_NONE) return; ptr_layout = gui_layout_current; if (!ptr_layout) { /* create a "default" layout if needed */ ptr_layout = gui_layout_search (GUI_LAYOUT_DEFAULT_NAME); if (!ptr_layout) { ptr_layout = gui_layout_alloc (GUI_LAYOUT_DEFAULT_NAME); if (!ptr_layout) return; gui_layout_add (ptr_layout); } } /* store current layout */ switch (CONFIG_BOOLEAN(config_look_save_layout_on_exit)) { case CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_BUFFERS: gui_layout_buffer_store (ptr_layout); break; case CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_WINDOWS: gui_layout_window_store (ptr_layout); break; case CONFIG_LOOK_SAVE_LAYOUT_ON_EXIT_ALL: gui_layout_buffer_store (ptr_layout); gui_layout_window_store (ptr_layout); break; default: break; } /* use layout, so it will be used after restart of WeeChat */ gui_layout_current = ptr_layout; }
int upgrade_weechat_save_layout_window (struct t_upgrade_file *upgrade_file) { struct t_gui_layout *ptr_layout; int rc; rc = 0; /* get current layout for windows */ ptr_layout = gui_layout_alloc (GUI_LAYOUT_UPGRADE); if (ptr_layout) { gui_layout_window_store (ptr_layout); /* save tree with layout of windows */ rc = upgrade_weechat_save_layout_window_tree (upgrade_file, ptr_layout->layout_windows); gui_layout_free (ptr_layout); } return rc; }