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.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/core/workspace.c b/src/core/workspace.c
index 08e524fd..41760a2b 100644
--- a/src/core/workspace.c
+++ b/src/core/workspace.c
@@ -386,6 +386,11 @@ meta_workspace_activate_with_focus (MetaWorkspace *workspace,
if (workspace->screen->active_workspace == workspace)
return;
+ /* Free any cached pointers to the workspaces's edges from
+ * a current resize or move operation
+ */
+ meta_display_cleanup_edges (workspace->screen->display);
+
if (workspace->screen->active_workspace)
workspace_switch_sound(workspace->screen->active_workspace, workspace);
@@ -549,6 +554,12 @@ 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;