Author: cazfi Date: Sun May 15 14:10:50 2016 New Revision: 32719 URL: http://svn.gna.org/viewcvs/freeciv?rev=32719&view=rev Log: Free gtk3-client editbar icons on exit
See bug #24634 Modified: branches/S2_5/client/gui-gtk-3.0/editgui.c branches/S2_5/client/gui-gtk-3.0/editgui.h branches/S2_5/client/gui-gtk-3.0/gui_main.c Modified: branches/S2_5/client/gui-gtk-3.0/editgui.c URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_5/client/gui-gtk-3.0/editgui.c?rev=32719&r1=32718&r2=32719&view=diff ============================================================================== --- branches/S2_5/client/gui-gtk-3.0/editgui.c (original) +++ branches/S2_5/client/gui-gtk-3.0/editgui.c Sun May 15 14:10:50 2016 @@ -825,6 +825,19 @@ } /**************************************************************************** + Clears all stores from the editbar. +****************************************************************************/ +static void clear_tool_stores(struct editbar *eb) +{ + clear_tool_store(eb->tool_selectors[ETT_TERRAIN]->store); + clear_tool_store(eb->tool_selectors[ETT_TERRAIN_RESOURCE]->store); + clear_tool_store(eb->tool_selectors[ETT_TERRAIN_SPECIAL]->store); + clear_tool_store(eb->tool_selectors[ETT_ROAD]->store); + clear_tool_store(eb->tool_selectors[ETT_MILITARY_BASE]->store); + clear_tool_store(eb->tool_selectors[ETT_UNIT]->store); +} + +/**************************************************************************** Reload all tool value data from the tileset for the given toolbar. ****************************************************************************/ static void editbar_reload_tileset(struct editbar *eb) @@ -839,11 +852,12 @@ return; } + clear_tool_stores(eb); + /* Reload terrains. */ tvs = eb->tool_selectors[ETT_TERRAIN]; store = tvs->store; - clear_tool_store(store); terrain_type_iterate(pterrain) { gtk_list_store_append(store, &iter); @@ -863,7 +877,6 @@ tvs = eb->tool_selectors[ETT_TERRAIN_RESOURCE]; store = tvs->store; - clear_tool_store(store); resource_type_iterate(presource) { gtk_list_store_append(store, &iter); @@ -889,7 +902,6 @@ tvs = eb->tool_selectors[ETT_TERRAIN_SPECIAL]; store = tvs->store; - clear_tool_store(store); tile_special_type_iterate(special) { gtk_list_store_append(store, &iter); @@ -912,7 +924,6 @@ tvs = eb->tool_selectors[ETT_ROAD]; store = tvs->store; - clear_tool_store(store); road_type_iterate(proad) { int id; @@ -935,7 +946,6 @@ tvs = eb->tool_selectors[ETT_MILITARY_BASE]; store = tvs->store; - clear_tool_store(store); base_type_iterate(pbase) { int id; @@ -959,7 +969,6 @@ tvs = eb->tool_selectors[ETT_UNIT]; store = tvs->store; - clear_tool_store(store); unit_type_iterate(putype) { gtk_list_store_append(store, &iter); @@ -1929,6 +1938,16 @@ } /**************************************************************************** + Free everything allocated for the editgui. +****************************************************************************/ +void editgui_free(void) +{ + struct editbar *eb = editgui_get_editbar(); + + clear_tool_stores(eb); +} + +/**************************************************************************** Return a pointer to the editor info box embedded in the client's GUI. ****************************************************************************/ struct editinfobox *editgui_get_editinfobox(void) Modified: branches/S2_5/client/gui-gtk-3.0/editgui.h URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_5/client/gui-gtk-3.0/editgui.h?rev=32719&r1=32718&r2=32719&view=diff ============================================================================== --- branches/S2_5/client/gui-gtk-3.0/editgui.h (original) +++ branches/S2_5/client/gui-gtk-3.0/editgui.h Sun May 15 14:10:50 2016 @@ -1,4 +1,4 @@ -/********************************************************************** +/*********************************************************************** Freeciv - Copyright (C) 2005 - The Freeciv Project This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -61,6 +61,7 @@ }; void editgui_create_widgets(void); +void editgui_free(void); struct editbar *editgui_get_editbar(void); struct editinfobox *editgui_get_editinfobox(void); Modified: branches/S2_5/client/gui-gtk-3.0/gui_main.c URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_5/client/gui-gtk-3.0/gui_main.c?rev=32719&r1=32718&r2=32719&view=diff ============================================================================== --- branches/S2_5/client/gui-gtk-3.0/gui_main.c (original) +++ branches/S2_5/client/gui-gtk-3.0/gui_main.c Sun May 15 14:10:50 2016 @@ -1791,6 +1791,7 @@ diplomacy_dialog_done(); cma_fe_done(); free_unit_table(); + editgui_free(); gtk_widget_destroy(toplevel_tabs); message_buffer = NULL; /* Result of destruction of everything */ tileset_free_tiles(tileset); _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits