Free layout and chat buffer on exit

This commit is contained in:
Sebastien Helleu 2008-10-18 17:54:16 +02:00
parent 843451f9bf
commit 091c07d571
5 changed files with 34 additions and 1 deletions

View File

@ -46,6 +46,7 @@
#include "../gui-color.h" #include "../gui-color.h"
#include "../gui-filter.h" #include "../gui-filter.h"
#include "../gui-input.h" #include "../gui-input.h"
#include "../gui-layout.h"
#include "../gui-history.h" #include "../gui-history.h"
#include "../gui-nicklist.h" #include "../gui-nicklist.h"
#include "../gui-window.h" #include "../gui-window.h"
@ -331,6 +332,10 @@ gui_main_end (int clean_exit)
if (gui_input_clipboard) if (gui_input_clipboard)
free (gui_input_clipboard); free (gui_input_clipboard);
/* delete layout saved */
gui_layout_window_remove_all ();
gui_layout_buffer_remove_all ();
/* delete all windows */ /* delete all windows */
while (gui_windows) while (gui_windows)
{ {
@ -353,6 +358,9 @@ gui_main_end (int clean_exit)
/* end color */ /* end color */
gui_color_end (); gui_color_end ();
/* free chat buffer */
gui_chat_free_buffer ();
} }
/* end of Curses output */ /* end of Curses output */

View File

@ -41,6 +41,7 @@
#include "../gui-filter.h" #include "../gui-filter.h"
#include "../gui-history.h" #include "../gui-history.h"
#include "../gui-input.h" #include "../gui-input.h"
#include "../gui-layout.h"
#include "../gui-window.h" #include "../gui-window.h"
#include "gui-gtk.h" #include "gui-gtk.h"
@ -221,7 +222,11 @@ gui_main_end (int clean_exit)
/* free clipboard buffer */ /* free clipboard buffer */
if (gui_input_clipboard) if (gui_input_clipboard)
free(gui_input_clipboard); free(gui_input_clipboard);
/* delete layout saved */
gui_layout_window_remove_all ();
gui_layout_buffer_remove_all ();
/* delete all windows */ /* delete all windows */
while (gui_windows) while (gui_windows)
{ {
@ -245,5 +250,8 @@ gui_main_end (int clean_exit)
/* end color */ /* end color */
gui_color_end (); gui_color_end ();
/* free chat buffer */
gui_chat_free_buffer ();
} }
} }

View File

@ -1102,3 +1102,17 @@ gui_chat_printf_y (struct t_gui_buffer *buffer, int y, const char *message, ...)
string_iconv_fprintf (stdout, "%s\n", gui_chat_buffer); string_iconv_fprintf (stdout, "%s\n", gui_chat_buffer);
} }
} }
/*
* gui_chat_free_buffer: free buffer used by chat functions
*/
void
gui_chat_free_buffer ()
{
if (gui_chat_buffer)
{
free (gui_chat_buffer);
gui_chat_buffer = NULL;
}
}

View File

@ -87,6 +87,7 @@ extern void gui_chat_printf_date_tags (struct t_gui_buffer *buffer,
const char *message, ...); const char *message, ...);
extern void gui_chat_printf_y (struct t_gui_buffer *buffer, int y, extern void gui_chat_printf_y (struct t_gui_buffer *buffer, int y,
const char *message, ...); const char *message, ...);
extern void gui_chat_free_buffer ();
/* chat functions (GUI dependent) */ /* chat functions (GUI dependent) */

View File

@ -56,6 +56,7 @@ extern struct t_gui_layout_window *gui_layout_windows;
/* layout functions */ /* layout functions */
extern void gui_layout_buffer_remove_all ();
extern void gui_layout_buffer_reset (); extern void gui_layout_buffer_reset ();
extern struct t_gui_layout_buffer *gui_layout_buffer_add (const char *plugin_name, extern struct t_gui_layout_buffer *gui_layout_buffer_add (const char *plugin_name,
const char *buffer_name, const char *buffer_name,
@ -65,6 +66,7 @@ extern int gui_layout_buffer_get_number (const char *plugin_name,
const char *buffer_name); const char *buffer_name);
extern void gui_layout_buffer_apply (); extern void gui_layout_buffer_apply ();
extern void gui_layout_window_remove_all ();
extern void gui_layout_window_reset (); extern void gui_layout_window_reset ();
extern struct t_gui_layout_window *gui_layout_window_search_by_id (int id); extern struct t_gui_layout_window *gui_layout_window_search_by_id (int id);
extern struct t_gui_layout_window *gui_layout_window_add (int internal_id, extern struct t_gui_layout_window *gui_layout_window_add (int internal_id,