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.c124
1 files changed, 65 insertions, 59 deletions
diff --git a/src/core/workspace.c b/src/core/workspace.c
index 9af548b8..166d717f 100644
--- a/src/core/workspace.c
+++ b/src/core/workspace.c
@@ -63,16 +63,16 @@ meta_workspace_new (MetaScreen *screen)
meta_screen_foreach_window (screen, maybe_add_to_list, &workspace->mru_list);
workspace->work_areas_invalid = TRUE;
- workspace->work_area_xinerama = NULL;
+ workspace->work_area_monitor = NULL;
workspace->work_area_screen.x = 0;
workspace->work_area_screen.y = 0;
workspace->work_area_screen.width = 0;
workspace->work_area_screen.height = 0;
workspace->screen_region = NULL;
- workspace->xinerama_region = NULL;
+ workspace->monitor_region = NULL;
workspace->screen_edges = NULL;
- workspace->xinerama_edges = NULL;
+ workspace->monitor_edges = NULL;
workspace->list_containing_self = g_list_prepend (NULL, workspace);
workspace->all_struts = NULL;
@@ -139,7 +139,7 @@ meta_workspace_free (MetaWorkspace *workspace)
workspace->screen->workspaces =
g_list_remove (workspace->screen->workspaces, workspace);
- g_free (workspace->work_area_xinerama);
+ g_free (workspace->work_area_monitor);
g_list_free (workspace->mru_list);
g_list_free (workspace->list_containing_self);
@@ -154,12 +154,12 @@ meta_workspace_free (MetaWorkspace *workspace)
if (!workspace->work_areas_invalid)
{
workspace_free_struts (workspace);
- for (i = 0; i < screen->n_xinerama_infos; i++)
- meta_rectangle_free_list_and_elements (workspace->xinerama_region[i]);
- g_free (workspace->xinerama_region);
+ for (i = 0; i < screen->n_monitor_infos; i++)
+ meta_rectangle_free_list_and_elements (workspace->monitor_region[i]);
+ g_free (workspace->monitor_region);
meta_rectangle_free_list_and_elements (workspace->screen_region);
meta_rectangle_free_list_and_elements (workspace->screen_edges);
- meta_rectangle_free_list_and_elements (workspace->xinerama_edges);
+ meta_rectangle_free_list_and_elements (workspace->monitor_edges);
}
g_free (workspace);
@@ -564,21 +564,21 @@ meta_workspace_invalidate_work_area (MetaWorkspace *workspace)
if (workspace == workspace->screen->active_workspace)
meta_display_cleanup_edges (workspace->screen->display);
- g_free (workspace->work_area_xinerama);
- workspace->work_area_xinerama = NULL;
+ g_free (workspace->work_area_monitor);
+ workspace->work_area_monitor = NULL;
workspace_free_struts (workspace);
- for (i = 0; i < workspace->screen->n_xinerama_infos; i++)
- meta_rectangle_free_list_and_elements (workspace->xinerama_region[i]);
- g_free (workspace->xinerama_region);
+ for (i = 0; i < workspace->screen->n_monitor_infos; i++)
+ meta_rectangle_free_list_and_elements (workspace->monitor_region[i]);
+ g_free (workspace->monitor_region);
meta_rectangle_free_list_and_elements (workspace->screen_region);
meta_rectangle_free_list_and_elements (workspace->screen_edges);
- meta_rectangle_free_list_and_elements (workspace->xinerama_edges);
- workspace->xinerama_region = NULL;
+ meta_rectangle_free_list_and_elements (workspace->monitor_edges);
+ workspace->monitor_region = NULL;
workspace->screen_region = NULL;
workspace->screen_edges = NULL;
- workspace->xinerama_edges = NULL;
+ workspace->monitor_edges = NULL;
workspace->work_areas_invalid = TRUE;
@@ -611,10 +611,10 @@ ensure_work_areas_validated (MetaWorkspace *workspace)
return;
g_assert (workspace->all_struts == NULL);
- g_assert (workspace->xinerama_region == NULL);
+ g_assert (workspace->monitor_region == NULL);
g_assert (workspace->screen_region == NULL);
g_assert (workspace->screen_edges == NULL);
- g_assert (workspace->xinerama_edges == NULL);
+ g_assert (workspace->monitor_edges == NULL);
/* STEP 1: Get the list of struts */
windows = meta_workspace_list_windows (workspace);
@@ -633,18 +633,19 @@ ensure_work_areas_validated (MetaWorkspace *workspace)
g_list_free (windows);
/* STEP 2: Get the maximal/spanning rects for the onscreen and
- * on-single-xinerama regions
+ * on-single-monitor regions
*/
- g_assert (workspace->xinerama_region == NULL);
- g_assert (workspace->screen_region == NULL);
+ g_assert (workspace->monitor_region == NULL);
+ g_assert (workspace->screen_region == NULL);
+
+ workspace->monitor_region = g_new (GList*,
+ workspace->screen->n_monitor_infos);
- workspace->xinerama_region = g_new (GList*,
- workspace->screen->n_xinerama_infos);
- for (i = 0; i < workspace->screen->n_xinerama_infos; i++)
+ for (i = 0; i < workspace->screen->n_monitor_infos; i++)
{
- workspace->xinerama_region[i] =
+ workspace->monitor_region[i] =
meta_rectangle_get_minimal_spanning_set_for_region (
- &workspace->screen->xinerama_infos[i].rect,
+ &workspace->screen->monitor_infos[i].rect,
workspace->all_struts);
}
workspace->screen_region =
@@ -653,7 +654,7 @@ ensure_work_areas_validated (MetaWorkspace *workspace)
workspace->all_struts);
/* STEP 3: Get the work areas (region-to-maximize-to) for the screen and
- * xineramas.
+ * monitors.
*/
work_area = workspace->screen->rect; /* start with the screen */
if (workspace->screen_region == NULL)
@@ -710,35 +711,35 @@ ensure_work_areas_validated (MetaWorkspace *workspace)
workspace->work_area_screen.width,
workspace->work_area_screen.height);
- /* Now find the work areas for each xinerama */
- g_free (workspace->work_area_xinerama);
- workspace->work_area_xinerama = g_new (MetaRectangle,
- workspace->screen->n_xinerama_infos);
+ /* Now find the work areas for each monitor */
+ g_free (workspace->work_area_monitor);
+ workspace->work_area_monitor = g_new (MetaRectangle,
+ workspace->screen->n_monitor_infos);
- for (i = 0; i < workspace->screen->n_xinerama_infos; i++)
+ for (i = 0; i < workspace->screen->n_monitor_infos; i++)
{
- work_area = workspace->screen->xinerama_infos[i].rect;
+ work_area = workspace->screen->monitor_infos[i].rect;
- if (workspace->xinerama_region[i] == NULL)
+ if (workspace->monitor_region[i] == NULL)
/* FIXME: constraints.c untested with this, but it might be nice for
* a screen reader or magnifier.
*/
work_area = meta_rect (work_area.x, work_area.y, -1, -1);
else
- meta_rectangle_clip_to_region (workspace->xinerama_region[i],
+ meta_rectangle_clip_to_region (workspace->monitor_region[i],
FIXED_DIRECTION_NONE,
&work_area);
- workspace->work_area_xinerama[i] = work_area;
+ workspace->work_area_monitor[i] = work_area;
meta_topic (META_DEBUG_WORKAREA,
"Computed work area for workspace %d "
- "xinerama %d: %d,%d %d x %d\n",
+ "monitor %d: %d,%d %d x %d\n",
meta_workspace_index (workspace),
i,
- workspace->work_area_xinerama[i].x,
- workspace->work_area_xinerama[i].y,
- workspace->work_area_xinerama[i].width,
- workspace->work_area_xinerama[i].height);
+ workspace->work_area_monitor[i].x,
+ workspace->work_area_monitor[i].y,
+ workspace->work_area_monitor[i].width,
+ workspace->work_area_monitor[i].height);
}
/* STEP 4: Make sure the screen_region is nonempty (separate from step 2
@@ -752,17 +753,22 @@ ensure_work_areas_validated (MetaWorkspace *workspace)
workspace->screen_region = g_list_prepend (NULL, nonempty_region);
}
- /* STEP 5: Cache screen and xinerama edges for edge resistance and snapping */
- g_assert (workspace->screen_edges == NULL);
- g_assert (workspace->xinerama_edges == NULL);
+ /* STEP 5: Cache screen and monitor edges for edge resistance and snapping */
+ g_assert (workspace->screen_edges == NULL);
+ g_assert (workspace->monitor_edges == NULL);
+
workspace->screen_edges =
meta_rectangle_find_onscreen_edges (&workspace->screen->rect,
workspace->all_struts);
tmp = NULL;
- for (i = 0; i < workspace->screen->n_xinerama_infos; i++)
- tmp = g_list_prepend (tmp, &workspace->screen->xinerama_infos[i].rect);
- workspace->xinerama_edges =
- meta_rectangle_find_nonintersected_xinerama_edges (&workspace->screen->rect, tmp, workspace->all_struts);
+ for (i = 0; i < workspace->screen->n_monitor_infos; i++)
+ tmp = g_list_prepend (tmp, &workspace->screen->monitor_infos[i].rect);
+
+ workspace->monitor_edges =
+ meta_rectangle_find_nonintersected_monitor_edges (&workspace->screen->rect,
+ tmp,
+ workspace->all_struts);
+
g_list_free (tmp);
/* We're all done, YAAY! Record that everything has been validated. */
@@ -770,21 +776,21 @@ ensure_work_areas_validated (MetaWorkspace *workspace)
}
void
-meta_workspace_get_work_area_for_xinerama (MetaWorkspace *workspace,
- int which_xinerama,
- MetaRectangle *area)
+meta_workspace_get_work_area_for_monitor (MetaWorkspace *workspace,
+ int which_monitor,
+ MetaRectangle *area)
{
- g_assert (which_xinerama >= 0);
+ g_assert (which_monitor >= 0);
ensure_work_areas_validated (workspace);
- g_assert (which_xinerama < workspace->screen->n_xinerama_infos);
+ g_assert (which_monitor < workspace->screen->n_monitor_infos);
- *area = workspace->work_area_xinerama[which_xinerama];
+ *area = workspace->work_area_monitor[which_monitor];
}
void
-meta_workspace_get_work_area_all_xineramas (MetaWorkspace *workspace,
- MetaRectangle *area)
+meta_workspace_get_work_area_all_monitors (MetaWorkspace *workspace,
+ MetaRectangle *area)
{
ensure_work_areas_validated (workspace);
@@ -800,12 +806,12 @@ meta_workspace_get_onscreen_region (MetaWorkspace *workspace)
}
GList*
-meta_workspace_get_onxinerama_region (MetaWorkspace *workspace,
- int which_xinerama)
+meta_workspace_get_onmonitor_region (MetaWorkspace *workspace,
+ int which_monitor)
{
ensure_work_areas_validated (workspace);
- return workspace->xinerama_region[which_xinerama];
+ return workspace->monitor_region[which_monitor];
}
static const gchar *