summaryrefslogtreecommitdiff
path: root/src/core/workspace.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/workspace.c')
-rw-r--r--src/core/workspace.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/core/workspace.c b/src/core/workspace.c
index b85ab53c..928f3de6 100644
--- a/src/core/workspace.c
+++ b/src/core/workspace.c
@@ -382,6 +382,10 @@ meta_workspace_activate_with_focus (MetaWorkspace *workspace,
if (workspace->screen->active_workspace)
workspace_switch_sound(workspace->screen->active_workspace, workspace);
+ /* Free any cached pointers to the workspaces's edges from
+ * a current resize or move operation */
+ meta_display_cleanup_edges (workspace->screen->display);
+
/* Note that old can be NULL; e.g. when starting up */
old = workspace->screen->active_workspace;
@@ -542,6 +546,11 @@ meta_workspace_invalidate_work_area (MetaWorkspace *workspace)
"Invalidating work area for workspace %d\n",
meta_workspace_index (workspace));
+ /* If we are in the middle of a resize or move operation, we
+ * might have cached pointers to the workspace's edges */
+ if (workspace == workspace->screen->active_workspace)
+ meta_display_cleanup_edges (workspace->screen->display);
+
g_free (workspace->work_area_xinerama);
workspace->work_area_xinerama = NULL;