When a workspace's list of struts is freed, free the struts too. Closes
2008-09-01 Thomas Thurman <tthurman@gnome.org> * src/core/workspace.c: When a workspace's list of struts is freed, free the struts too. Closes #549952, and #468075. svn path=/trunk/; revision=3840
This commit is contained in:
parent
2095cce3ab
commit
8bd3cdff14
@ -1,3 +1,8 @@
|
|||||||
|
2008-09-01 Thomas Thurman <tthurman@gnome.org>
|
||||||
|
|
||||||
|
* src/core/workspace.c: When a workspace's list of struts
|
||||||
|
is freed, free the struts too. Closes #549952, and #468075.
|
||||||
|
|
||||||
2008-09-01 Thomas Thurman <tthurman@gnome.org>
|
2008-09-01 Thomas Thurman <tthurman@gnome.org>
|
||||||
|
|
||||||
Add new move_to_center keybinding, requested by Khanh-Dang Nguyen
|
Add new move_to_center keybinding, requested by Khanh-Dang Nguyen
|
||||||
|
@ -35,6 +35,9 @@ static void set_active_space_hint (MetaScreen *screen);
|
|||||||
static void focus_ancestor_or_mru_window (MetaWorkspace *workspace,
|
static void focus_ancestor_or_mru_window (MetaWorkspace *workspace,
|
||||||
MetaWindow *not_this_one,
|
MetaWindow *not_this_one,
|
||||||
guint32 timestamp);
|
guint32 timestamp);
|
||||||
|
static void free_this (gpointer candidate,
|
||||||
|
gpointer dummy);
|
||||||
|
static void workspace_free_struts (MetaWorkspace *workspace);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
maybe_add_to_list (MetaScreen *screen, MetaWindow *window, gpointer data)
|
maybe_add_to_list (MetaScreen *screen, MetaWindow *window, gpointer data)
|
||||||
@ -79,6 +82,29 @@ meta_workspace_new (MetaScreen *screen)
|
|||||||
return workspace;
|
return workspace;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Foreach function for workspace_free_struts() */
|
||||||
|
static void
|
||||||
|
free_this (gpointer candidate, gpointer dummy)
|
||||||
|
{
|
||||||
|
g_free (candidate);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Frees the struts list of a workspace.
|
||||||
|
*
|
||||||
|
* \param workspace The workspace.
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
workspace_free_struts (MetaWorkspace *workspace)
|
||||||
|
{
|
||||||
|
if (workspace->all_struts == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
g_slist_foreach (workspace->all_struts, free_this, NULL);
|
||||||
|
g_slist_free (workspace->all_struts);
|
||||||
|
workspace->all_struts = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_workspace_free (MetaWorkspace *workspace)
|
meta_workspace_free (MetaWorkspace *workspace)
|
||||||
{
|
{
|
||||||
@ -127,7 +153,7 @@ meta_workspace_free (MetaWorkspace *workspace)
|
|||||||
|
|
||||||
if (!workspace->work_areas_invalid)
|
if (!workspace->work_areas_invalid)
|
||||||
{
|
{
|
||||||
g_slist_free (workspace->all_struts);
|
workspace_free_struts (workspace);
|
||||||
for (i = 0; i < screen->n_xinerama_infos; i++)
|
for (i = 0; i < screen->n_xinerama_infos; i++)
|
||||||
meta_rectangle_free_list_and_elements (workspace->xinerama_region[i]);
|
meta_rectangle_free_list_and_elements (workspace->xinerama_region[i]);
|
||||||
g_free (workspace->xinerama_region);
|
g_free (workspace->xinerama_region);
|
||||||
@ -457,8 +483,7 @@ meta_workspace_invalidate_work_area (MetaWorkspace *workspace)
|
|||||||
g_free (workspace->work_area_xinerama);
|
g_free (workspace->work_area_xinerama);
|
||||||
workspace->work_area_xinerama = NULL;
|
workspace->work_area_xinerama = NULL;
|
||||||
|
|
||||||
g_slist_free (workspace->all_struts);
|
workspace_free_struts (workspace);
|
||||||
workspace->all_struts = NULL;
|
|
||||||
|
|
||||||
for (i = 0; i < workspace->screen->n_xinerama_infos; i++)
|
for (i = 0; i < workspace->screen->n_xinerama_infos; i++)
|
||||||
meta_rectangle_free_list_and_elements (workspace->xinerama_region[i]);
|
meta_rectangle_free_list_and_elements (workspace->xinerama_region[i]);
|
||||||
|
Loading…
Reference in New Issue
Block a user