[mutter/wip/xwayland-on-demand: 17/32] Stop using MetaScreen where it is unnecessary



commit 046712a28b92411af467a7424c7db61455a61580
Author: Armin Krezović <krezovic armin gmail com>
Date:   Sat Aug 26 21:43:17 2017 +0200

    Stop using MetaScreen where it is unnecessary

 src/backends/meta-cursor-renderer.h            |    1 -
 src/backends/meta-cursor-tracker.c             |    8 +-
 src/backends/meta-cursor.c                     |    1 -
 src/backends/meta-monitor-manager-private.h    |    1 -
 src/compositor/compositor.c                    |  129 +++++++++++------------
 src/compositor/meta-background-actor-private.h |    1 -
 src/compositor/meta-background-actor.c         |   30 +++---
 src/compositor/meta-background.c               |   63 +++++-------
 src/compositor/meta-plugin-manager.h           |    1 -
 src/compositor/meta-plugin.c                   |   13 +--
 src/compositor/meta-window-group.c             |    8 +-
 src/compositor/meta-window-group.h             |    4 +-
 src/compositor/plugins/default.c               |   74 ++++++--------
 src/core/bell.c                                |    3 +-
 src/core/core.c                                |    6 +-
 src/core/display-private.h                     |    1 -
 src/core/display.c                             |   44 +--------
 src/core/keybindings.c                         |  104 ++++---------------
 src/core/stack.c                               |    5 -
 src/core/startup-notification.c                |    1 -
 src/core/window-private.h                      |    4 +-
 src/core/window.c                              |   40 +------
 src/meta/compositor-mutter.h                   |   32 +++---
 src/meta/compositor.h                          |    4 +-
 src/meta/display.h                             |    5 -
 src/meta/meta-background-actor.h               |    5 +-
 src/meta/meta-background.h                     |    3 +-
 src/meta/meta-cursor-tracker.h                 |    2 +-
 src/meta/meta-plugin.h                         |    2 +-
 src/meta/prefs.h                               |    2 -
 src/meta/window.h                              |    1 -
 src/meta/workspace.h                           |    1 -
 src/wayland/meta-wayland-popup.c               |    1 -
 src/wayland/meta-wayland-surface-role-cursor.c |    1 -
 src/wayland/meta-wayland-surface.c             |    1 -
 src/wayland/meta-window-wayland.c              |    2 -
 src/x11/events.c                               |    5 +-
 src/x11/window-x11.c                           |    5 +-
 38 files changed, 215 insertions(+), 399 deletions(-)
---
diff --git a/src/backends/meta-cursor-renderer.h b/src/backends/meta-cursor-renderer.h
index 8ac0fe7..5a69db8 100644
--- a/src/backends/meta-cursor-renderer.h
+++ b/src/backends/meta-cursor-renderer.h
@@ -31,7 +31,6 @@
 #include <wayland-server.h>
 #endif
 
-#include <meta/screen.h>
 #include "meta-cursor.h"
 
 #define META_TYPE_CURSOR_RENDERER (meta_cursor_renderer_get_type ())
diff --git a/src/backends/meta-cursor-tracker.c b/src/backends/meta-cursor-tracker.c
index b9ccdb3..72509e6 100644
--- a/src/backends/meta-cursor-tracker.c
+++ b/src/backends/meta-cursor-tracker.c
@@ -133,15 +133,15 @@ meta_cursor_tracker_class_init (MetaCursorTrackerClass *klass)
 }
 
 /**
- * meta_cursor_tracker_get_for_screen:
- * @screen: the #MetaScreen
+ * meta_cursor_tracker_get_for_display:
+ * @display: the #MetaDisplay
  *
- * Retrieves the cursor tracker object for @screen.
+ * Retrieves the cursor tracker object for @display.
  *
  * Returns: (transfer none):
  */
 MetaCursorTracker *
-meta_cursor_tracker_get_for_screen (MetaScreen *screen)
+meta_cursor_tracker_get_for_display (MetaDisplay *display)
 {
   MetaBackend *backend = meta_get_backend ();
   MetaCursorTracker *tracker = meta_backend_get_cursor_tracker (backend);
diff --git a/src/backends/meta-cursor.c b/src/backends/meta-cursor.c
index 256b0ca..421825c 100644
--- a/src/backends/meta-cursor.c
+++ b/src/backends/meta-cursor.c
@@ -26,7 +26,6 @@
 #include <meta/errors.h>
 
 #include "display-private.h"
-#include "screen-private.h"
 #include "meta-backend-private.h"
 
 #include <string.h>
diff --git a/src/backends/meta-monitor-manager-private.h b/src/backends/meta-monitor-manager-private.h
index 60115c0..51d15cb 100644
--- a/src/backends/meta-monitor-manager-private.h
+++ b/src/backends/meta-monitor-manager-private.h
@@ -40,7 +40,6 @@
 #include <libupower-glib/upower.h>
 
 #include "display-private.h"
-#include <meta/screen.h>
 #include "stack-tracker.h"
 #include <meta/meta-monitor-manager.h>
 
diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
index 1a2a081..8c4e201 100644
--- a/src/compositor/compositor.c
+++ b/src/compositor/compositor.c
@@ -42,8 +42,8 @@
  * There's two containers in the stage that are used to place window actors, here
  * are listed in the order in which they are painted:
  *
- * - window group, accessible with meta_get_window_group_for_screen()
- * - top window group, accessible with meta_get_top_window_group_for_screen()
+ * - window group, accessible with meta_get_window_group_for_display()
+ * - top window group, accessible with meta_get_top_window_group_for_display()
  *
  * Mutter will place actors representing windows in the window group, except for
  * override-redirect windows (ie. popups and menus) which will be placed in the
@@ -55,7 +55,6 @@
 #include <clutter/x11/clutter-x11.h>
 
 #include "core.h"
-#include <meta/screen.h>
 #include <meta/errors.h>
 #include <meta/window.h>
 #include "compositor-private.h"
@@ -151,78 +150,78 @@ process_damage (MetaCompositor     *compositor,
 
 /* compat helper */
 static MetaCompositor *
-get_compositor_for_screen (MetaScreen *screen)
+get_compositor_for_display (MetaDisplay *display)
 {
-  return screen->display->compositor;
+  return display->compositor;
 }
 
 /**
- * meta_get_stage_for_screen:
- * @screen: a #MetaScreen
+ * meta_get_stage_for_display:
+ * @display: a #MetaDisplay
  *
- * Returns: (transfer none): The #ClutterStage for the screen
+ * Returns: (transfer none): The #ClutterStage for the display
  */
 ClutterActor *
-meta_get_stage_for_screen (MetaScreen *screen)
+meta_get_stage_for_display (MetaDisplay *display)
 {
-  MetaCompositor *compositor = get_compositor_for_screen (screen);
+  MetaCompositor *compositor = get_compositor_for_display (display);
   return compositor->stage;
 }
 
 /**
- * meta_get_window_group_for_screen:
- * @screen: a #MetaScreen
+ * meta_get_window_group_for_display:
+ * @display: a #MetaDisplay
  *
- * Returns: (transfer none): The window group corresponding to @screen
+ * Returns: (transfer none): The window group corresponding to @display
  */
 ClutterActor *
-meta_get_window_group_for_screen (MetaScreen *screen)
+meta_get_window_group_for_display (MetaDisplay *display)
 {
-  MetaCompositor *compositor = get_compositor_for_screen (screen);
+  MetaCompositor *compositor = get_compositor_for_display (display);
   return compositor->window_group;
 }
 
 /**
- * meta_get_top_window_group_for_screen:
- * @screen: a #MetaScreen
+ * meta_get_top_window_group_for_display:
+ * @display: a #MetaDisplay
  *
- * Returns: (transfer none): The top window group corresponding to @screen
+ * Returns: (transfer none): The top window group corresponding to @display
  */
 ClutterActor *
-meta_get_top_window_group_for_screen (MetaScreen *screen)
+meta_get_top_window_group_for_display (MetaDisplay *display)
 {
-  MetaCompositor *compositor = get_compositor_for_screen (screen);
+  MetaCompositor *compositor = get_compositor_for_display (display);
   return compositor->top_window_group;
 }
 
 /**
- * meta_get_feedback_group_for_screen:
- * @screen: a #MetaScreen
+ * meta_get_feedback_group_for_display:
+ * @display: a #MetaDisplay
  *
- * Returns: (transfer none): The feedback group corresponding to @screen
+ * Returns: (transfer none): The feedback group corresponding to @display
  */
 ClutterActor *
-meta_get_feedback_group_for_screen (MetaScreen *screen)
+meta_get_feedback_group_for_display (MetaDisplay *display)
 {
-  MetaCompositor *compositor = get_compositor_for_screen (screen);
+  MetaCompositor *compositor = get_compositor_for_display (display);
   return compositor->feedback_group;
 }
 
 /**
  * meta_get_window_actors:
- * @screen: a #MetaScreen
+ * @display: a #MetaDisplay
  *
- * Returns: (transfer none) (element-type Clutter.Actor): The set of #MetaWindowActor on @screen
+ * Returns: (transfer none) (element-type Clutter.Actor): The set of #MetaWindowActor on @display
  */
 GList *
-meta_get_window_actors (MetaScreen *screen)
+meta_get_window_actors (MetaDisplay *display)
 {
-  MetaCompositor *compositor = get_compositor_for_screen (screen);
+  MetaCompositor *compositor = get_compositor_for_display (display);
   return compositor->windows;
 }
 
 void
-meta_set_stage_input_region (MetaScreen   *screen,
+meta_set_stage_input_region (MetaDisplay  *display,
                              XserverRegion region)
 {
   /* As a wayland compositor we can simply ignore all this trickery
@@ -232,7 +231,6 @@ meta_set_stage_input_region (MetaScreen   *screen,
    */
   if (!meta_is_wayland_compositor ())
     {
-      MetaDisplay *display = screen->display;
       MetaCompositor *compositor = display->compositor;
       Display *xdpy = meta_x11_display_get_xdisplay (display->x11_display);
       Window xstage = clutter_x11_get_stage_window (CLUTTER_STAGE (compositor->stage));
@@ -249,7 +247,7 @@ meta_set_stage_input_region (MetaScreen   *screen,
 }
 
 void
-meta_empty_stage_input_region (MetaScreen *screen)
+meta_empty_stage_input_region (MetaDisplay *display)
 {
   /* Using a static region here is a bit hacky, but Metacity never opens more than
    * one XDisplay, so it works fine. */
@@ -257,22 +255,21 @@ meta_empty_stage_input_region (MetaScreen *screen)
 
   if (region == None)
     {
-      MetaDisplay  *display = meta_screen_get_display (screen);
-      Display      *xdpy    = meta_x11_display_get_xdisplay (display->x11_display);
+      Display *xdpy = meta_x11_display_get_xdisplay (display->x11_display);
       region = XFixesCreateRegion (xdpy, NULL, 0);
     }
 
-  meta_set_stage_input_region (screen, region);
+  meta_set_stage_input_region (display, region);
 }
 
 void
-meta_focus_stage_window (MetaScreen *screen,
-                         guint32     timestamp)
+meta_focus_stage_window (MetaDisplay *display,
+                         guint32      timestamp)
 {
   ClutterStage *stage;
   Window window;
 
-  stage = CLUTTER_STAGE (meta_get_stage_for_screen (screen));
+  stage = CLUTTER_STAGE (meta_get_stage_for_display (display));
   if (!stage)
     return;
 
@@ -281,13 +278,13 @@ meta_focus_stage_window (MetaScreen *screen,
   if (window == None)
     return;
 
-  meta_x11_display_set_input_focus_xwindow (screen->display->x11_display,
+  meta_x11_display_set_input_focus_xwindow (display->x11_display,
                                             window,
                                             timestamp);
 }
 
 gboolean
-meta_stage_is_focused (MetaScreen *screen)
+meta_stage_is_focused (MetaDisplay *display)
 {
   ClutterStage *stage;
   Window window;
@@ -295,7 +292,7 @@ meta_stage_is_focused (MetaScreen *screen)
   if (meta_is_wayland_compositor ())
     return TRUE;
 
-  stage = CLUTTER_STAGE (meta_get_stage_for_screen (screen));
+  stage = CLUTTER_STAGE (meta_get_stage_for_display (display));
   if (!stage)
     return FALSE;
 
@@ -304,7 +301,7 @@ meta_stage_is_focused (MetaScreen *screen)
   if (window == None)
     return FALSE;
 
-  return (screen->display->x11_display->focus_xwindow == window);
+  return (display->x11_display->focus_xwindow == window);
 }
 
 static gboolean
@@ -381,7 +378,7 @@ meta_begin_modal_for_plugin (MetaCompositor   *compositor,
   display->grab_have_keyboard = TRUE;
 
   g_signal_emit_by_name (display, "grab-op-begin",
-                         meta_plugin_get_screen (plugin),
+                         meta_plugin_get_display (plugin),
                          display->grab_window, display->grab_op);
 
   if (meta_is_wayland_compositor ())
@@ -408,7 +405,7 @@ meta_end_modal_for_plugin (MetaCompositor *compositor,
   g_return_if_fail (is_modal (display));
 
   g_signal_emit_by_name (display, "grab-op-end",
-                         meta_plugin_get_screen (plugin),
+                         meta_plugin_get_display (plugin),
                          display->grab_window, display->grab_op);
 
   display->grab_op = META_GRAB_OP_NONE;
@@ -441,9 +438,8 @@ after_stage_paint (ClutterStage *stage,
 }
 
 static void
-redirect_windows (MetaScreen *screen)
+redirect_windows (MetaDisplay *display)
 {
-  MetaDisplay *display = meta_screen_get_display (screen);
   MetaX11Display *x11_display = meta_display_get_x11_display (display);
   Display *xdisplay = meta_x11_display_get_xdisplay (x11_display);
   Window xroot = meta_x11_display_get_xroot (x11_display);
@@ -489,7 +485,6 @@ meta_compositor_manage (MetaCompositor *compositor)
 {
   MetaDisplay *display = compositor->display;
   Display *xdisplay = display->x11_display->xdisplay;
-  MetaScreen *screen = display->screen;
   MetaBackend *backend = meta_get_backend ();
 
   meta_x11_display_set_cm_selection (display->x11_display);
@@ -513,9 +508,9 @@ meta_compositor_manage (MetaCompositor *compositor)
 
   clutter_stage_set_sync_delay (CLUTTER_STAGE (compositor->stage), META_SYNC_DELAY);
 
-  compositor->window_group = meta_window_group_new (screen);
-  compositor->top_window_group = meta_window_group_new (screen);
-  compositor->feedback_group = meta_window_group_new (screen);
+  compositor->window_group = meta_window_group_new (display);
+  compositor->top_window_group = meta_window_group_new (display);
+  compositor->feedback_group = meta_window_group_new (display);
 
   clutter_actor_add_child (compositor->stage, compositor->window_group);
   clutter_actor_add_child (compositor->stage, compositor->top_window_group);
@@ -538,7 +533,7 @@ meta_compositor_manage (MetaCompositor *compositor)
 
       XReparentWindow (xdisplay, xwin, compositor->output, 0, 0);
 
-      meta_empty_stage_input_region (screen);
+      meta_empty_stage_input_region (display);
 
       /* Make sure there isn't any left-over output shape on the
        * overlay window by setting the whole screen to be an
@@ -558,7 +553,7 @@ meta_compositor_manage (MetaCompositor *compositor)
       compositor->have_x11_sync_object = meta_sync_ring_init (xdisplay);
     }
 
-  redirect_windows (display->screen);
+  redirect_windows (display);
 
   compositor->plugin_mgr = meta_plugin_manager_new (compositor);
 }
@@ -1208,44 +1203,44 @@ meta_compositor_new (MetaDisplay *display)
 
 /**
  * meta_get_overlay_window: (skip)
- * @screen: a #MetaScreen
+ * @display: a #MetaDisplay
  *
  */
 Window
-meta_get_overlay_window (MetaScreen *screen)
+meta_get_overlay_window (MetaDisplay *display)
 {
-  MetaCompositor *compositor = get_compositor_for_screen (screen);
+  MetaCompositor *compositor = get_compositor_for_display (display);
   return compositor->output;
 }
 
 /**
- * meta_disable_unredirect_for_screen:
- * @screen: a #MetaScreen
+ * meta_disable_unredirect_for_display:
+ * @display: a #MetaDisplay
  *
  * Disables unredirection, can be usefull in situations where having
  * unredirected windows is undesireable like when recording a video.
  *
  */
 void
-meta_disable_unredirect_for_screen (MetaScreen *screen)
+meta_disable_unredirect_for_display (MetaDisplay *display)
 {
-  MetaCompositor *compositor = get_compositor_for_screen (screen);
+  MetaCompositor *compositor = get_compositor_for_display (display);
   compositor->disable_unredirect_count++;
 }
 
 /**
- * meta_enable_unredirect_for_screen:
- * @screen: a #MetaScreen
+ * meta_enable_unredirect_for_display:
+ * @display: a #MetaDisplay
  *
  * Enables unredirection which reduces the overhead for apps like games.
  *
  */
 void
-meta_enable_unredirect_for_screen (MetaScreen *screen)
+meta_enable_unredirect_for_display (MetaDisplay *display)
 {
-  MetaCompositor *compositor = get_compositor_for_screen (screen);
+  MetaCompositor *compositor = get_compositor_for_display (display);
   if (compositor->disable_unredirect_count == 0)
-    g_warning ("Called enable_unredirect_for_screen while unredirection is enabled.");
+    g_warning ("Called enable_unredirect_for_display while unredirection is enabled.");
   if (compositor->disable_unredirect_count > 0)
     compositor->disable_unredirect_count--;
 }
@@ -1262,15 +1257,15 @@ flash_out_completed (ClutterTimeline *timeline,
 }
 
 void
-meta_compositor_flash_screen (MetaCompositor *compositor,
-                              MetaScreen     *screen)
+meta_compositor_flash_display (MetaCompositor *compositor,
+                               MetaDisplay    *display)
 {
   ClutterActor *stage;
   ClutterActor *flash;
   ClutterTransition *transition;
   gfloat width, height;
 
-  stage = meta_get_stage_for_screen (screen);
+  stage = meta_get_stage_for_display (display);
   clutter_actor_get_size (stage, &width, &height);
 
   flash = clutter_actor_new ();
diff --git a/src/compositor/meta-background-actor-private.h b/src/compositor/meta-background-actor-private.h
index d48fb03..4b64d78 100644
--- a/src/compositor/meta-background-actor-private.h
+++ b/src/compositor/meta-background-actor-private.h
@@ -3,7 +3,6 @@
 #ifndef META_BACKGROUND_ACTOR_PRIVATE_H
 #define META_BACKGROUND_ACTOR_PRIVATE_H
 
-#include <meta/screen.h>
 #include <meta/meta-background-actor.h>
 
 cairo_region_t *meta_background_actor_get_clip_region (MetaBackgroundActor *self);
diff --git a/src/compositor/meta-background-actor.c b/src/compositor/meta-background-actor.c
index 6edb6e2..bdd60d2 100644
--- a/src/compositor/meta-background-actor.c
+++ b/src/compositor/meta-background-actor.c
@@ -86,7 +86,7 @@
 
 enum
 {
-  PROP_META_SCREEN = 1,
+  PROP_META_DISPLAY = 1,
   PROP_MONITOR,
   PROP_BACKGROUND,
   PROP_VIGNETTE,
@@ -128,7 +128,7 @@ typedef enum {
 
 struct _MetaBackgroundActorPrivate
 {
-  MetaScreen *screen;
+  MetaDisplay *display;
   int monitor;
 
   MetaBackground *background;
@@ -187,7 +187,7 @@ get_preferred_size (MetaBackgroundActor *self,
   MetaBackgroundActorPrivate *priv = META_BACKGROUND_ACTOR (self)->priv;
   MetaRectangle monitor_geometry;
 
-  meta_display_get_monitor_geometry (meta_screen_get_display (priv->screen),
+  meta_display_get_monitor_geometry (priv->display,
                                      priv->monitor,
                                      &monitor_geometry);
 
@@ -481,8 +481,8 @@ meta_background_actor_set_property (GObject      *object,
 
   switch (prop_id)
     {
-    case PROP_META_SCREEN:
-      priv->screen = g_value_get_object (value);
+    case PROP_META_DISPLAY:
+      priv->display = g_value_get_object (value);
       break;
     case PROP_MONITOR:
       priv->monitor = g_value_get_int (value);
@@ -524,8 +524,8 @@ meta_background_actor_get_property (GObject      *object,
 
   switch (prop_id)
     {
-    case PROP_META_SCREEN:
-      g_value_set_object (value, priv->screen);
+    case PROP_META_DISPLAY:
+      g_value_set_object (value, priv->display);
       break;
     case PROP_MONITOR:
       g_value_set_int (value, priv->monitor);
@@ -566,14 +566,14 @@ meta_background_actor_class_init (MetaBackgroundActorClass *klass)
   actor_class->get_paint_volume = meta_background_actor_get_paint_volume;
   actor_class->paint = meta_background_actor_paint;
 
-  param_spec = g_param_spec_object ("meta-screen",
-                                    "MetaScreen",
-                                    "MetaScreen",
-                                    META_TYPE_SCREEN,
+  param_spec = g_param_spec_object ("meta-display",
+                                    "MetaDisplay",
+                                    "MetaDisplay",
+                                    META_TYPE_DISPLAY,
                                     G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
 
   g_object_class_install_property (object_class,
-                                   PROP_META_SCREEN,
+                                   PROP_META_DISPLAY,
                                    param_spec);
 
   param_spec = g_param_spec_int ("monitor",
@@ -650,13 +650,13 @@ meta_background_actor_init (MetaBackgroundActor *self)
  * Return value: the newly created background actor
  */
 ClutterActor *
-meta_background_actor_new (MetaScreen *screen,
-                           int         monitor)
+meta_background_actor_new (MetaDisplay *display,
+                           int          monitor)
 {
   MetaBackgroundActor *self;
 
   self = g_object_new (META_TYPE_BACKGROUND_ACTOR,
-                       "meta-screen", screen,
+                       "meta-display", display,
                        "monitor", monitor,
                        NULL);
 
diff --git a/src/compositor/meta-background.c b/src/compositor/meta-background.c
index 56ee64d..838b4a4 100644
--- a/src/compositor/meta-background.c
+++ b/src/compositor/meta-background.c
@@ -26,10 +26,6 @@
 
 #include <string.h>
 
-// XXX: Remove this once transition to MetaDisplay has been completed
-#include "core/display-private.h"
-#include "core/screen-private.h"
-
 enum
 {
   CHANGED,
@@ -49,7 +45,7 @@ struct _MetaBackgroundMonitor
 
 struct _MetaBackgroundPrivate
 {
-  MetaScreen *screen;
+  MetaDisplay *display;
   MetaBackgroundMonitor *monitors;
   int n_monitors;
 
@@ -73,7 +69,7 @@ struct _MetaBackgroundPrivate
 
 enum
 {
-  PROP_META_SCREEN = 1,
+  PROP_META_DISPLAY = 1,
   PROP_MONITOR,
 };
 
@@ -137,18 +133,17 @@ on_monitors_changed (MetaDisplay    *display,
                      MetaBackground *self)
 {
   MetaBackgroundPrivate *priv = self->priv;
-  MetaScreen *screen = display->screen;
 
   free_fbos (self);
   g_free (priv->monitors);
   priv->monitors = NULL;
   priv->n_monitors = 0;
 
-  if (priv->screen)
+  if (priv->display)
     {
       int i;
 
-      priv->n_monitors = meta_display_get_n_monitors (meta_screen_get_display (screen));
+      priv->n_monitors = meta_display_get_n_monitors (display);
       priv->monitors = g_new0 (MetaBackgroundMonitor, priv->n_monitors);
 
       for (i = 0; i < priv->n_monitors; i++)
@@ -157,27 +152,27 @@ on_monitors_changed (MetaDisplay    *display,
 }
 
 static void
-set_screen (MetaBackground *self,
-            MetaScreen     *screen)
+set_display (MetaBackground *self,
+             MetaDisplay    *display)
 {
   MetaBackgroundPrivate *priv = self->priv;
 
-  if (priv->screen != NULL && priv->screen->display != NULL)
+  if (priv->display != NULL)
     {
-      g_signal_handlers_disconnect_by_func (priv->screen->display,
+      g_signal_handlers_disconnect_by_func (priv->display,
                                             (gpointer)on_monitors_changed,
                                             self);
     }
 
-  priv->screen = screen;
+  priv->display = display;
 
-  if (priv->screen != NULL && priv->screen->display != NULL)
+  if (priv->display != NULL)
     {
-      g_signal_connect (priv->screen->display, "monitors-changed",
+      g_signal_connect (priv->display, "monitors-changed",
                         G_CALLBACK (on_monitors_changed), self);
     }
 
-  on_monitors_changed (priv->screen->display, self);
+  on_monitors_changed (priv->display, self);
 }
 
 static void
@@ -188,8 +183,8 @@ meta_background_set_property (GObject      *object,
 {
   switch (prop_id)
     {
-    case PROP_META_SCREEN:
-      set_screen (META_BACKGROUND (object), g_value_get_object (value));
+    case PROP_META_DISPLAY:
+      set_display (META_BACKGROUND (object), g_value_get_object (value));
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -207,8 +202,8 @@ meta_background_get_property (GObject      *object,
 
   switch (prop_id)
     {
-    case PROP_META_SCREEN:
-      g_value_set_object (value, priv->screen);
+    case PROP_META_DISPLAY:
+      g_value_set_object (value, priv->display);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -310,7 +305,7 @@ meta_background_dispose (GObject *object)
   set_file (self, &priv->file1, &priv->background_image1, NULL);
   set_file (self, &priv->file2, &priv->background_image2, NULL);
 
-  set_screen (self, NULL);
+  set_display (self, NULL);
 
   G_OBJECT_CLASS (meta_background_parent_class)->dispose (object);
 }
@@ -331,7 +326,7 @@ meta_background_constructed (GObject *object)
 
   G_OBJECT_CLASS (meta_background_parent_class)->constructed (object);
 
-  g_signal_connect_object (meta_screen_get_display (priv->screen), "gl-video-memory-purged",
+  g_signal_connect_object (priv->display, "gl-video-memory-purged",
                            G_CALLBACK (mark_changed), object, G_CONNECT_SWAPPED);
 }
 
@@ -357,14 +352,14 @@ meta_background_class_init (MetaBackgroundClass *klass)
                   NULL, NULL, NULL,
                   G_TYPE_NONE, 0);
 
-  param_spec = g_param_spec_object ("meta-screen",
-                                    "MetaScreen",
-                                    "MetaScreen",
-                                    META_TYPE_SCREEN,
+  param_spec = g_param_spec_object ("meta-display",
+                                    "MetaDisplay",
+                                    "MetaDisplay",
+                                    META_TYPE_DISPLAY,
                                     G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
 
   g_object_class_install_property (object_class,
-                                   PROP_META_SCREEN,
+                                   PROP_META_DISPLAY,
                                    param_spec);
 
 }
@@ -394,7 +389,6 @@ get_texture_area (MetaBackground          *self,
                   CoglTexture             *texture,
                   cairo_rectangle_int_t   *texture_area)
 {
-  MetaDisplay *display;
   MetaBackgroundPrivate *priv = self->priv;
   cairo_rectangle_int_t image_area;
   int screen_width, screen_height;
@@ -403,7 +397,6 @@ get_texture_area (MetaBackground          *self,
 
   texture_width = cogl_texture_get_width (texture);
   texture_height = cogl_texture_get_height (texture);
-  display = meta_screen_get_display (priv->screen);
 
   switch (priv->style)
     {
@@ -415,7 +408,7 @@ get_texture_area (MetaBackground          *self,
       set_texture_area_from_monitor_area (monitor_rect, texture_area);
       break;
     case G_DESKTOP_BACKGROUND_STYLE_WALLPAPER:
-      meta_display_get_size (display, &screen_width, &screen_height);
+      meta_display_get_size (priv->display, &screen_width, &screen_height);
 
       /* Start off by centering a tile in the middle of the
        * total screen area.
@@ -484,7 +477,7 @@ get_texture_area (MetaBackground          *self,
         /* paint region is the union of all monitors, with the origin
          * of the region set to align with monitor associated with the background.
          */
-        meta_display_get_size (display, &screen_width, &screen_height);
+        meta_display_get_size (priv->display, &screen_width, &screen_height);
 
         /* unclipped texture area is whole screen */
         image_area.width = screen_width;
@@ -758,7 +751,7 @@ meta_background_get_texture (MetaBackground         *self,
 
   monitor = &priv->monitors[monitor_index];
 
-  meta_display_get_monitor_geometry (meta_screen_get_display (priv->screen),
+  meta_display_get_monitor_geometry (priv->display,
                                      monitor_index,
                                      &geometry);
   monitor_area.x = geometry.x;
@@ -889,10 +882,10 @@ meta_background_get_texture (MetaBackground         *self,
 }
 
 MetaBackground *
-meta_background_new  (MetaScreen *screen)
+meta_background_new (MetaDisplay *display)
 {
   return g_object_new (META_TYPE_BACKGROUND,
-                       "meta-screen", screen,
+                       "meta-display", display,
                        NULL);
 }
 
diff --git a/src/compositor/meta-plugin-manager.h b/src/compositor/meta-plugin-manager.h
index 1915903..130db5b 100644
--- a/src/compositor/meta-plugin-manager.h
+++ b/src/compositor/meta-plugin-manager.h
@@ -23,7 +23,6 @@
 #define META_PLUGIN_MANAGER_H_
 
 #include <meta/types.h>
-#include <meta/screen.h>
 #include <meta/meta-plugin.h>
 
 typedef enum {
diff --git a/src/compositor/meta-plugin.c b/src/compositor/meta-plugin.c
index 32e61d6..15a7ffd 100644
--- a/src/compositor/meta-plugin.c
+++ b/src/compositor/meta-plugin.c
@@ -28,7 +28,6 @@
 
 #include <meta/meta-plugin.h>
 #include "meta-plugin-manager.h"
-#include <meta/screen.h>
 #include <meta/display.h>
 #include <meta/util.h>
 
@@ -191,19 +190,19 @@ meta_plugin_end_modal (MetaPlugin *plugin,
 }
 
 /**
- * meta_plugin_get_screen:
+ * meta_plugin_get_display:
  * @plugin: a #MetaPlugin
  *
- * Gets the #MetaScreen corresponding to a plugin.
+ * Gets the #MetaDisplay corresponding to a plugin.
  *
- * Return value: (transfer none): the #MetaScreen for the plugin
+ * Return value: (transfer none): the #MetaDisplay for the plugin
  */
-MetaScreen *
-meta_plugin_get_screen (MetaPlugin *plugin)
+MetaDisplay *
+meta_plugin_get_display (MetaPlugin *plugin)
 {
   MetaPluginPrivate *priv = META_PLUGIN (plugin)->priv;
 
-  return priv->compositor->display->screen;
+  return priv->compositor->display;
 }
 
 void
diff --git a/src/compositor/meta-window-group.c b/src/compositor/meta-window-group.c
index 97dac53..2a3e841 100644
--- a/src/compositor/meta-window-group.c
+++ b/src/compositor/meta-window-group.c
@@ -24,7 +24,7 @@ struct _MetaWindowGroup
 {
   ClutterActor parent;
 
-  MetaScreen *screen;
+  MetaDisplay *display;
 };
 
 static void cullable_iface_init (MetaCullableInterface *iface);
@@ -65,7 +65,7 @@ meta_window_group_paint (ClutterActor *actor)
   MetaWindowGroup *window_group = META_WINDOW_GROUP (actor);
   ClutterActor *stage = clutter_actor_get_stage (actor);
 
-  meta_display_get_size (window_group->screen->display, &screen_width, &screen_height);
+  meta_display_get_size (window_group->display, &screen_width, &screen_height);
 
   /* Normally we expect an actor to be drawn at it's position on the screen.
    * However, if we're inside the paint of a ClutterClone, that won't be the
@@ -200,13 +200,13 @@ meta_window_group_init (MetaWindowGroup *window_group)
 }
 
 ClutterActor *
-meta_window_group_new (MetaScreen *screen)
+meta_window_group_new (MetaDisplay *display)
 {
   MetaWindowGroup *window_group;
 
   window_group = g_object_new (META_TYPE_WINDOW_GROUP, NULL);
 
-  window_group->screen = screen;
+  window_group->display = display;
 
   return CLUTTER_ACTOR (window_group);
 }
diff --git a/src/compositor/meta-window-group.h b/src/compositor/meta-window-group.h
index d624ac6..7742df8 100644
--- a/src/compositor/meta-window-group.h
+++ b/src/compositor/meta-window-group.h
@@ -5,7 +5,7 @@
 
 #include <clutter/clutter.h>
 
-#include <meta/screen.h>
+#include <meta/display.h>
 
 /**
  * MetaWindowGroup:
@@ -29,7 +29,7 @@ typedef struct _MetaWindowGroupPrivate MetaWindowGroupPrivate;
 
 GType meta_window_group_get_type (void);
 
-ClutterActor *meta_window_group_new (MetaScreen *screen);
+ClutterActor *meta_window_group_new (MetaDisplay *display);
 
 gboolean meta_window_group_actor_is_untransformed (ClutterActor *actor,
                                                    int          *x_origin,
diff --git a/src/compositor/plugins/default.c b/src/compositor/plugins/default.c
index 9e45bd6..ccf500a 100644
--- a/src/compositor/plugins/default.c
+++ b/src/compositor/plugins/default.c
@@ -33,16 +33,13 @@
 #include <gmodule.h>
 #include <string.h>
 
-// XXX: Remove this once transition to MetaDisplay has been completed
-#include "core/display-private.h"
-
 #define DESTROY_TIMEOUT   100
 #define MINIMIZE_TIMEOUT  250
 #define MAP_TIMEOUT       250
 #define SWITCH_TIMEOUT    500
 
 #define ACTOR_DATA_KEY "MCCP-Default-actor-data"
-#define SCREEN_TILE_PREVIEW_DATA_KEY "MCCP-Default-screen-tile-preview-data"
+#define DISPLAY_TILE_PREVIEW_DATA_KEY "MCCP-Default-display-tile-preview-data"
 
 #define META_TYPE_DEFAULT_PLUGIN            (meta_default_plugin_get_type ())
 #define META_DEFAULT_PLUGIN(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), META_TYPE_DEFAULT_PLUGIN, 
MetaDefaultPlugin))
@@ -71,7 +68,7 @@ struct _MetaDefaultPluginClass
 };
 
 static GQuark actor_data_quark = 0;
-static GQuark screen_tile_preview_data_quark = 0;
+static GQuark display_tile_preview_data_quark = 0;
 
 static void start      (MetaPlugin      *plugin);
 static void minimize   (MetaPlugin      *plugin,
@@ -138,14 +135,14 @@ typedef struct
 } EffectCompleteData;
 
 
-typedef struct _ScreenTilePreview
+typedef struct _DisplayTilePreview
 {
   ClutterActor   *actor;
 
   GdkRGBA        *preview_color;
 
   MetaRectangle   tile_rect;
-} ScreenTilePreview;
+} DisplayTilePreview;
 
 static void
 meta_default_plugin_dispose (GObject *object)
@@ -289,8 +286,8 @@ on_switch_workspace_effect_complete (ClutterTimeline *timeline, gpointer data)
 {
   MetaPlugin               *plugin  = META_PLUGIN (data);
   MetaDefaultPluginPrivate *priv = META_DEFAULT_PLUGIN (plugin)->priv;
-  MetaScreen *screen = meta_plugin_get_screen (plugin);
-  GList *l = meta_get_window_actors (screen);
+  MetaDisplay *display = meta_plugin_get_display (plugin);
+  GList *l = meta_get_window_actors (display);
 
   while (l)
     {
@@ -325,14 +322,13 @@ static void
 on_monitors_changed (MetaDisplay *display,
                      MetaPlugin  *plugin)
 {
-  MetaScreen *screen = display->screen;
   MetaDefaultPlugin *self = META_DEFAULT_PLUGIN (plugin);
   int i, n;
   GRand *rand = g_rand_new_with_seed (123456);
 
   clutter_actor_destroy_all_children (self->priv->background_group);
 
-  n = meta_display_get_n_monitors (meta_screen_get_display (screen));
+  n = meta_display_get_n_monitors (display);
   for (i = 0; i < n; i++)
     {
       MetaRectangle rect;
@@ -340,9 +336,9 @@ on_monitors_changed (MetaDisplay *display,
       MetaBackground *background;
       ClutterColor color;
 
-      meta_display_get_monitor_geometry (meta_screen_get_display (screen), i, &rect);
+      meta_display_get_monitor_geometry (display, i, &rect);
 
-      background_actor = meta_background_actor_new (screen, i);
+      background_actor = meta_background_actor_new (display, i);
 
       clutter_actor_set_position (background_actor, rect.x, rect.y);
       clutter_actor_set_size (background_actor, rect.width, rect.height);
@@ -357,7 +353,7 @@ on_monitors_changed (MetaDisplay *display,
                           g_rand_int_range (rand, 0, 255),
                           255);
 
-      background = meta_background_new (screen);
+      background = meta_background_new (display);
       meta_background_set_color (background, &color);
       meta_background_actor_set_background (META_BACKGROUND_ACTOR (background_actor), background);
       g_object_unref (background);
@@ -377,18 +373,18 @@ static void
 start (MetaPlugin *plugin)
 {
   MetaDefaultPlugin *self = META_DEFAULT_PLUGIN (plugin);
-  MetaScreen *screen = meta_plugin_get_screen (plugin);
-  MetaDisplay *display = meta_screen_get_display (screen);
+  MetaDisplay *display = meta_plugin_get_display (plugin);
 
   self->priv->background_group = meta_background_group_new ();
-  clutter_actor_insert_child_below (meta_get_window_group_for_screen (screen),
+  clutter_actor_insert_child_below (meta_get_window_group_for_display (display),
                                     self->priv->background_group, NULL);
 
   g_signal_connect (display, "monitors-changed",
                     G_CALLBACK (on_monitors_changed), plugin);
+
   on_monitors_changed (display, plugin);
 
-  clutter_actor_show (meta_get_stage_for_screen (screen));
+  clutter_actor_show (meta_get_stage_for_display (display));
 }
 
 static void
@@ -396,7 +392,6 @@ switch_workspace (MetaPlugin *plugin,
                   gint from, gint to,
                   MetaMotionDirection direction)
 {
-  MetaScreen *screen;
   MetaDisplay *display;
   MetaDefaultPluginPrivate *priv = META_DEFAULT_PLUGIN (plugin)->priv;
   GList        *l;
@@ -405,9 +400,8 @@ switch_workspace (MetaPlugin *plugin,
   ClutterActor *stage;
   int           screen_width, screen_height;
 
-  screen = meta_plugin_get_screen (plugin);
-  display = meta_screen_get_display (screen);
-  stage = meta_get_stage_for_screen (screen);
+  display = meta_plugin_get_display (plugin);
+  stage = meta_get_stage_for_display (display);
 
   meta_display_get_size (display,
                          &screen_width,
@@ -429,7 +423,7 @@ switch_workspace (MetaPlugin *plugin,
       return;
     }
 
-  l = g_list_last (meta_get_window_actors (screen));
+  l = g_list_last (meta_get_window_actors (display));
 
   while (l)
     {
@@ -677,36 +671,36 @@ destroy (MetaPlugin *plugin, MetaWindowActor *window_actor)
  * Tile preview private data accessor
  */
 static void
-free_screen_tile_preview (gpointer data)
+free_display_tile_preview (gpointer data)
 {
-  ScreenTilePreview *preview = data;
+  DisplayTilePreview *preview = data;
 
   if (G_LIKELY (preview != NULL)) {
     clutter_actor_destroy (preview->actor);
-    g_slice_free (ScreenTilePreview, preview);
+    g_slice_free (DisplayTilePreview, preview);
   }
 }
 
-static ScreenTilePreview *
-get_screen_tile_preview (MetaScreen *screen)
+static DisplayTilePreview *
+get_display_tile_preview (MetaDisplay *display)
 {
-  ScreenTilePreview *preview = g_object_get_qdata (G_OBJECT (screen), screen_tile_preview_data_quark);
+  DisplayTilePreview *preview = g_object_get_qdata (G_OBJECT (display), display_tile_preview_data_quark);
 
-  if (G_UNLIKELY (screen_tile_preview_data_quark == 0))
-    screen_tile_preview_data_quark = g_quark_from_static_string (SCREEN_TILE_PREVIEW_DATA_KEY);
+  if (G_UNLIKELY (display_tile_preview_data_quark == 0))
+    display_tile_preview_data_quark = g_quark_from_static_string (DISPLAY_TILE_PREVIEW_DATA_KEY);
 
   if (G_UNLIKELY (!preview))
     {
-      preview = g_slice_new0 (ScreenTilePreview);
+      preview = g_slice_new0 (DisplayTilePreview);
 
       preview->actor = clutter_actor_new ();
       clutter_actor_set_background_color (preview->actor, CLUTTER_COLOR_Blue);
       clutter_actor_set_opacity (preview->actor, 100);
 
-      clutter_actor_add_child (meta_get_window_group_for_screen (screen), preview->actor);
-      g_object_set_qdata_full (G_OBJECT (screen),
-                               screen_tile_preview_data_quark, preview,
-                               free_screen_tile_preview);
+      clutter_actor_add_child (meta_get_window_group_for_display (display), preview->actor);
+      g_object_set_qdata_full (G_OBJECT (display),
+                               display_tile_preview_data_quark, preview,
+                               free_display_tile_preview);
     }
 
   return preview;
@@ -718,8 +712,8 @@ show_tile_preview (MetaPlugin    *plugin,
                    MetaRectangle *tile_rect,
                    int            tile_monitor_number)
 {
-  MetaScreen *screen = meta_plugin_get_screen (plugin);
-  ScreenTilePreview *preview = get_screen_tile_preview (screen);
+  MetaDisplay *display = meta_plugin_get_display (plugin);
+  DisplayTilePreview *preview = get_display_tile_preview (display);
   ClutterActor *window_actor;
 
   if (clutter_actor_is_visible (preview->actor)
@@ -745,8 +739,8 @@ show_tile_preview (MetaPlugin    *plugin,
 static void
 hide_tile_preview (MetaPlugin *plugin)
 {
-  MetaScreen *screen = meta_plugin_get_screen (plugin);
-  ScreenTilePreview *preview = get_screen_tile_preview (screen);
+  MetaDisplay *display = meta_plugin_get_display (plugin);
+  DisplayTilePreview *preview = get_display_tile_preview (display);
 
   clutter_actor_hide (preview->actor);
 }
diff --git a/src/core/bell.c b/src/core/bell.c
index 9764b14..ae8466b 100644
--- a/src/core/bell.c
+++ b/src/core/bell.c
@@ -49,7 +49,6 @@
 
 #include <config.h>
 #include "bell.h"
-#include "screen-private.h"
 #include "window-private.h"
 #include "util-private.h"
 #include "compositor/compositor-private.h"
@@ -74,7 +73,7 @@
 static void
 bell_flash_fullscreen (MetaDisplay *display)
 {
-  meta_compositor_flash_screen (display->compositor, display->screen);
+  meta_compositor_flash_display (display->compositor, display);
 }
 
 /**
diff --git a/src/core/core.c b/src/core/core.c
index 15949fa..fa702e1 100644
--- a/src/core/core.c
+++ b/src/core/core.c
@@ -220,14 +220,10 @@ meta_core_begin_grab_op (Display    *xdisplay,
 {
   MetaWindow *window = get_window (xdisplay, frame_xwindow);
   MetaDisplay *display;
-  MetaScreen *screen;
 
   display = meta_display_for_x_display (xdisplay);
-  screen = display->screen;
 
-  g_assert (screen != NULL);
-
-  return meta_display_begin_grab_op (display, screen, window,
+  return meta_display_begin_grab_op (display, window,
                                      op, pointer_already_grabbed,
                                      frame_action,
                                      button, modmask,
diff --git a/src/core/display-private.h b/src/core/display-private.h
index 6b88ac8..25c341d 100644
--- a/src/core/display-private.h
+++ b/src/core/display-private.h
@@ -147,7 +147,6 @@ struct _MetaDisplay
   guint focused_by_us : 1;
 
   /*< private-ish >*/
-  MetaScreen *screen;
   GHashTable *stamps;
   GHashTable *wayland_windows;
 
diff --git a/src/core/display.c b/src/core/display.c
index 9850e78..007ebde 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -35,7 +35,6 @@
 #include "events.h"
 #include "util-private.h"
 #include <meta/main.h>
-#include "screen-private.h"
 #include "window-private.h"
 #include "boxes-private.h"
 #include "frame.h"
@@ -296,7 +295,7 @@ meta_display_class_init (MetaDisplayClass *klass)
                   0,
                   NULL, NULL, NULL,
                   G_TYPE_NONE, 3,
-                  META_TYPE_SCREEN,
+                  META_TYPE_DISPLAY,
                   META_TYPE_WINDOW,
                   META_TYPE_GRAB_OP);
 
@@ -307,7 +306,7 @@ meta_display_class_init (MetaDisplayClass *klass)
                   0,
                   NULL, NULL, NULL,
                   G_TYPE_NONE, 3,
-                  META_TYPE_SCREEN,
+                  META_TYPE_DISPLAY,
                   META_TYPE_WINDOW,
                   META_TYPE_GRAB_OP);
 
@@ -688,7 +687,6 @@ meta_display_open (void)
   GError *error = NULL;
   MetaDisplay *display;
   MetaX11Display *x11_display;
-  MetaScreen *screen;
   int i;
   guint32 timestamp;
   Window old_active_xwindow = None;
@@ -704,7 +702,6 @@ meta_display_open (void)
   display->autoraise_timeout_id = 0;
   display->autoraise_window = NULL;
   display->focus_window = NULL;
-  display->screen = NULL;
   display->x11_display = NULL;
 
   display->rect.x = display->rect.y = 0;
@@ -790,23 +787,6 @@ meta_display_open (void)
   display->last_user_time = timestamp;
   display->compositor = NULL;
 
-  /* Mutter used to manage all X screens of the display in a single process, but
-   * now it always manages exactly one screen - the default screen retrieved
-   * from GDK.
-   */
-  screen = meta_screen_new (display, timestamp);
-
-  if (!screen)
-    {
-      /* This would typically happen because all the screens already
-       * have window managers.
-       */
-      meta_display_close (display, timestamp);
-      return FALSE;
-    }
-
-  display->screen = screen;
-
   if (!meta_is_wayland_compositor ())
     meta_prop_get_window (display->x11_display,
                           display->x11_display->xroot,
@@ -1005,10 +985,6 @@ meta_display_close (MetaDisplay *display,
 
   meta_display_unmanage_windows (display, timestamp);
 
-  if (display->screen)
-    meta_screen_free (display->screen, timestamp);
-  display->screen = NULL;
-
   /* Must be after all calls to meta_window_unmanage() since they
    * unregister windows
    */
@@ -1661,7 +1637,6 @@ get_event_route_from_grab_op (MetaGrabOp op)
 
 gboolean
 meta_display_begin_grab_op (MetaDisplay *display,
-                           MetaScreen  *screen,
                             MetaWindow  *window,
                             MetaGrabOp   op,
                             gboolean     pointer_already_grabbed,
@@ -1791,7 +1766,7 @@ meta_display_begin_grab_op (MetaDisplay *display,
     }
 
   g_signal_emit (display, display_signals[GRAB_OP_BEGIN], 0,
-                 screen, display->grab_window, display->grab_op);
+                 display, display->grab_window, display->grab_op);
 
   if (display->event_route == META_EVENT_ROUTE_WINDOW_OP)
     meta_window_grab_op_began (display->grab_window, display->grab_op);
@@ -1816,7 +1791,7 @@ meta_display_end_grab_op (MetaDisplay *display,
   g_assert (grab_window != NULL);
 
   g_signal_emit (display, display_signals[GRAB_OP_END], 0,
-                 display->screen, grab_window, grab_op);
+                 display, grab_window, grab_op);
 
   /* We need to reset this early, since the
    * meta_window_grab_op_ended callback relies on this being
@@ -2428,17 +2403,6 @@ meta_resize_gravity_from_grab_op (MetaGrabOp op)
 }
 
 void
-meta_display_unmanage_screen (MetaDisplay *display,
-                              MetaScreen  *screen,
-                              guint32      timestamp)
-{
-  meta_verbose ("Unmanaging screen %d on display %s\n",
-                meta_ui_get_screen_number (),
-                display->x11_display->name);
-  meta_display_close (display, timestamp);
-}
-
-void
 meta_display_manage_all_windows (MetaDisplay *display)
 {
   guint64 *_children;
diff --git a/src/core/keybindings.c b/src/core/keybindings.c
index 9eb71c0..5e1d972 100644
--- a/src/core/keybindings.c
+++ b/src/core/keybindings.c
@@ -34,7 +34,6 @@
 #include <meta/errors.h>
 #include "edge-resistance.h"
 #include "frame.h"
-#include "screen-private.h"
 #include <meta/prefs.h>
 #include "meta-accel-parse.h"
 
@@ -166,17 +165,14 @@ meta_key_binding_is_builtin (MetaKeyBinding *binding)
  */
 
 static gboolean process_mouse_move_resize_grab (MetaDisplay     *display,
-                                                MetaScreen      *screen,
                                                 MetaWindow      *window,
                                                 ClutterKeyEvent *event);
 
 static gboolean process_keyboard_move_grab (MetaDisplay     *display,
-                                            MetaScreen      *screen,
                                             MetaWindow      *window,
                                             ClutterKeyEvent *event);
 
 static gboolean process_keyboard_resize_grab (MetaDisplay     *display,
-                                              MetaScreen      *screen,
                                               MetaWindow      *window,
                                               ClutterKeyEvent *event);
 
@@ -1405,7 +1401,6 @@ meta_window_ungrab_keys (MetaWindow  *window)
 
 static void
 handle_external_grab (MetaDisplay     *display,
-                      MetaScreen      *screen,
                       MetaWindow      *window,
                       ClutterKeyEvent *event,
                       MetaKeyBinding  *binding,
@@ -1682,21 +1677,20 @@ is_modifier (xkb_keysym_t keysym)
 
 static void
 invoke_handler (MetaDisplay     *display,
-                MetaScreen      *screen,
                 MetaKeyHandler  *handler,
                 MetaWindow      *window,
                 ClutterKeyEvent *event,
                 MetaKeyBinding  *binding)
 {
   if (handler->func)
-    (* handler->func) (display, screen,
+    (* handler->func) (display,
                        handler->flags & META_KEY_BINDING_PER_WINDOW ?
                        window : NULL,
                        event,
                        binding,
                        handler->user_data);
   else
-    (* handler->default_func) (display, screen,
+    (* handler->default_func) (display,
                                handler->flags & META_KEY_BINDING_PER_WINDOW ?
                                window: NULL,
                                event,
@@ -1706,7 +1700,6 @@ invoke_handler (MetaDisplay     *display,
 
 static gboolean
 process_event (MetaDisplay          *display,
-               MetaScreen           *screen,
                MetaWindow           *window,
                ClutterKeyEvent      *event)
 {
@@ -1756,7 +1749,7 @@ process_event (MetaDisplay          *display,
    */
   display->allow_terminal_deactivation = TRUE;
 
-  invoke_handler (display, screen, binding->handler, window, event, binding);
+  invoke_handler (display, binding->handler, window, event, binding);
 
   return TRUE;
 
@@ -1768,7 +1761,6 @@ process_event (MetaDisplay          *display,
 
 static gboolean
 process_overlay_key (MetaDisplay *display,
-                     MetaScreen *screen,
                      ClutterKeyEvent *event,
                      MetaWindow *window)
 {
@@ -1800,7 +1792,7 @@ process_overlay_key (MetaDisplay *display,
            * the event. Other clients with global grabs will be out of
            * luck.
            */
-          if (process_event (display, screen, window, event))
+          if (process_event (display, window, event))
             {
               /* As normally, after we've handled a global key
                * binding, we unfreeze the keyboard but keep the grab
@@ -1885,7 +1877,6 @@ process_overlay_key (MetaDisplay *display,
 
 static gboolean
 process_iso_next_group (MetaDisplay *display,
-                        MetaScreen *screen,
                         ClutterKeyEvent *event)
 {
   MetaKeyBindingManager *keys = &display->key_binding_manager;
@@ -1929,20 +1920,15 @@ process_key_event (MetaDisplay     *display,
   gboolean keep_grab;
   gboolean all_keys_grabbed;
   gboolean handled;
-  MetaScreen *screen;
-
-  /* window may be NULL */
-
-  screen = display->screen;
 
   all_keys_grabbed = window ? window->all_keys_grabbed : FALSE;
   if (!all_keys_grabbed)
     {
-      handled = process_overlay_key (display, screen, event, window);
+      handled = process_overlay_key (display, event, window);
       if (handled)
         return TRUE;
 
-      handled = process_iso_next_group (display, screen, event);
+      handled = process_iso_next_group (display, event);
       if (handled)
         return TRUE;
     }
@@ -1976,20 +1962,20 @@ process_key_event (MetaDisplay     *display,
                 {
                   meta_topic (META_DEBUG_KEYBINDINGS,
                               "Processing event for keyboard move\n");
-                  keep_grab = process_keyboard_move_grab (display, screen, window, event);
+                  keep_grab = process_keyboard_move_grab (display, window, event);
                 }
               else
                 {
                   meta_topic (META_DEBUG_KEYBINDINGS,
                               "Processing event for keyboard resize\n");
-                  keep_grab = process_keyboard_resize_grab (display, screen, window, event);
+                  keep_grab = process_keyboard_resize_grab (display, window, event);
                 }
             }
           else
             {
               meta_topic (META_DEBUG_KEYBINDINGS,
                           "Processing event for mouse-only move/resize\n");
-              keep_grab = process_mouse_move_resize_grab (display, screen, window, event);
+              keep_grab = process_mouse_move_resize_grab (display, window, event);
             }
         }
       if (!keep_grab)
@@ -1999,7 +1985,7 @@ process_key_event (MetaDisplay     *display,
     }
 
   /* Do the normal keybindings */
-  return process_event (display, screen, window, event);
+  return process_event (display, window, event);
 }
 
 /* Handle a key event. May be called recursively: some key events cause
@@ -2041,7 +2027,6 @@ meta_keybindings_process_event (MetaDisplay        *display,
 
 static gboolean
 process_mouse_move_resize_grab (MetaDisplay     *display,
-                                MetaScreen      *screen,
                                 MetaWindow      *window,
                                 ClutterKeyEvent *event)
 {
@@ -2085,7 +2070,6 @@ process_mouse_move_resize_grab (MetaDisplay     *display,
 
 static gboolean
 process_keyboard_move_grab (MetaDisplay     *display,
-                            MetaScreen      *screen,
                             MetaWindow      *window,
                             ClutterKeyEvent *event)
 {
@@ -2202,7 +2186,6 @@ process_keyboard_move_grab (MetaDisplay     *display,
 
 static gboolean
 process_keyboard_resize_grab_op_change (MetaDisplay     *display,
-                                        MetaScreen      *screen,
                                         MetaWindow      *window,
                                         ClutterKeyEvent *event)
 {
@@ -2323,7 +2306,6 @@ process_keyboard_resize_grab_op_change (MetaDisplay     *display,
 
 static gboolean
 process_keyboard_resize_grab (MetaDisplay     *display,
-                              MetaScreen      *screen,
                               MetaWindow      *window,
                               ClutterKeyEvent *event)
 {
@@ -2358,7 +2340,7 @@ process_keyboard_resize_grab (MetaDisplay     *display,
       return FALSE;
     }
 
-  if (process_keyboard_resize_grab_op_change (display, screen, window, event))
+  if (process_keyboard_resize_grab_op_change (display, window, event))
     return TRUE;
 
   width = window->rect.width;
@@ -2553,7 +2535,6 @@ process_keyboard_resize_grab (MetaDisplay     *display,
 
 static void
 handle_switch_to_last_workspace (MetaDisplay     *display,
-                                 MetaScreen      *screen,
                                  MetaWindow      *event_window,
                                  ClutterKeyEvent *event,
                                  MetaKeyBinding *binding,
@@ -2566,7 +2547,6 @@ handle_switch_to_last_workspace (MetaDisplay     *display,
 
 static void
 handle_switch_to_workspace (MetaDisplay     *display,
-                            MetaScreen      *screen,
                             MetaWindow      *event_window,
                             ClutterKeyEvent *event,
                             MetaKeyBinding  *binding,
@@ -2602,7 +2582,6 @@ handle_switch_to_workspace (MetaDisplay     *display,
 
 static void
 handle_maximize_vertically (MetaDisplay     *display,
-                            MetaScreen      *screen,
                             MetaWindow      *window,
                             ClutterKeyEvent *event,
                             MetaKeyBinding  *binding,
@@ -2619,7 +2598,6 @@ handle_maximize_vertically (MetaDisplay     *display,
 
 static void
 handle_maximize_horizontally (MetaDisplay     *display,
-                              MetaScreen      *screen,
                               MetaWindow      *window,
                               ClutterKeyEvent *event,
                               MetaKeyBinding  *binding,
@@ -2636,7 +2614,6 @@ handle_maximize_horizontally (MetaDisplay     *display,
 
 static void
 handle_always_on_top (MetaDisplay     *display,
-                      MetaScreen      *screen,
                       MetaWindow      *window,
                       ClutterKeyEvent *event,
                       MetaKeyBinding  *binding,
@@ -2650,7 +2627,6 @@ handle_always_on_top (MetaDisplay     *display,
 
 static void
 handle_move_to_corner_backend (MetaDisplay           *display,
-                               MetaScreen            *screen,
                                MetaWindow            *window,
                                int                    gravity)
 {
@@ -2709,95 +2685,86 @@ handle_move_to_corner_backend (MetaDisplay           *display,
 
 static void
 handle_move_to_corner_nw  (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
                            gpointer         dummy)
 {
-  handle_move_to_corner_backend (display, screen, window, NorthWestGravity);
+  handle_move_to_corner_backend (display, window, NorthWestGravity);
 }
 
 static void
 handle_move_to_corner_ne  (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
                            gpointer         dummy)
 {
-  handle_move_to_corner_backend (display, screen, window, NorthEastGravity);
+  handle_move_to_corner_backend (display, window, NorthEastGravity);
 }
 
 static void
 handle_move_to_corner_sw  (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
                            gpointer         dummy)
 {
-  handle_move_to_corner_backend (display, screen, window, SouthWestGravity);
+  handle_move_to_corner_backend (display, window, SouthWestGravity);
 }
 
 static void
 handle_move_to_corner_se  (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
                            gpointer         dummy)
 {
-  handle_move_to_corner_backend (display, screen, window, SouthEastGravity);
+  handle_move_to_corner_backend (display, window, SouthEastGravity);
 }
 
 static void
 handle_move_to_side_n     (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
                            gpointer         dummy)
 {
-  handle_move_to_corner_backend (display, screen, window, NorthGravity);
+  handle_move_to_corner_backend (display, window, NorthGravity);
 }
 
 static void
 handle_move_to_side_s     (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
                            gpointer         dummy)
 {
-  handle_move_to_corner_backend (display, screen, window, SouthGravity);
+  handle_move_to_corner_backend (display, window, SouthGravity);
 }
 
 static void
 handle_move_to_side_e     (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
                            gpointer         dummy)
 {
-  handle_move_to_corner_backend (display, screen, window, EastGravity);
+  handle_move_to_corner_backend (display, window, EastGravity);
 }
 
 static void
 handle_move_to_side_w     (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
                            gpointer         dummy)
 {
-  handle_move_to_corner_backend (display, screen, window, WestGravity);
+  handle_move_to_corner_backend (display, window, WestGravity);
 }
 
 static void
 handle_move_to_center  (MetaDisplay     *display,
-                        MetaScreen      *screen,
                         MetaWindow      *window,
                         ClutterKeyEvent *event,
                         MetaKeyBinding  *binding,
@@ -2817,7 +2784,6 @@ handle_move_to_center  (MetaDisplay     *display,
 
 static void
 handle_show_desktop (MetaDisplay     *display,
-                     MetaScreen      *screen,
                      MetaWindow      *window,
                      ClutterKeyEvent *event,
                      MetaKeyBinding  *binding,
@@ -2836,7 +2802,6 @@ handle_show_desktop (MetaDisplay     *display,
 
 static void
 handle_panel (MetaDisplay     *display,
-              MetaScreen      *screen,
               MetaWindow      *window,
               ClutterKeyEvent *event,
               MetaKeyBinding  *binding,
@@ -2889,7 +2854,6 @@ handle_panel (MetaDisplay     *display,
 
 static void
 handle_activate_window_menu (MetaDisplay     *display,
-                             MetaScreen      *screen,
                              MetaWindow      *event_window,
                              ClutterKeyEvent *event,
                              MetaKeyBinding  *binding,
@@ -2915,7 +2879,6 @@ handle_activate_window_menu (MetaDisplay     *display,
 
 static void
 do_choose_window (MetaDisplay     *display,
-                  MetaScreen      *screen,
                   MetaWindow      *event_window,
                   ClutterKeyEvent *event,
                   MetaKeyBinding  *binding,
@@ -2939,31 +2902,28 @@ do_choose_window (MetaDisplay     *display,
 
 static void
 handle_switch (MetaDisplay     *display,
-               MetaScreen      *screen,
                MetaWindow      *event_window,
                ClutterKeyEvent *event,
                MetaKeyBinding  *binding,
                gpointer         dummy)
 {
   gboolean backwards = meta_key_binding_is_reversed (binding);
-  do_choose_window (display, screen, event_window, event, binding, backwards);
+  do_choose_window (display, event_window, event, binding, backwards);
 }
 
 static void
 handle_cycle (MetaDisplay     *display,
-              MetaScreen      *screen,
               MetaWindow      *event_window,
               ClutterKeyEvent *event,
               MetaKeyBinding  *binding,
               gpointer         dummy)
 {
   gboolean backwards = meta_key_binding_is_reversed (binding);
-  do_choose_window (display, screen, event_window, event, binding, backwards);
+  do_choose_window (display, event_window, event, binding, backwards);
 }
 
 static void
 handle_toggle_fullscreen  (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
@@ -2977,7 +2937,6 @@ handle_toggle_fullscreen  (MetaDisplay     *display,
 
 static void
 handle_toggle_above       (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
@@ -2991,7 +2950,6 @@ handle_toggle_above       (MetaDisplay     *display,
 
 static void
 handle_toggle_tiled (MetaDisplay     *display,
-                     MetaScreen      *screen,
                      MetaWindow      *window,
                      ClutterKeyEvent *event,
                      MetaKeyBinding  *binding,
@@ -3029,7 +2987,6 @@ handle_toggle_tiled (MetaDisplay     *display,
 
 static void
 handle_toggle_maximized    (MetaDisplay     *display,
-                            MetaScreen      *screen,
                             MetaWindow      *window,
                             ClutterKeyEvent *event,
                             MetaKeyBinding  *binding,
@@ -3043,7 +3000,6 @@ handle_toggle_maximized    (MetaDisplay     *display,
 
 static void
 handle_maximize           (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
@@ -3055,7 +3011,6 @@ handle_maximize           (MetaDisplay     *display,
 
 static void
 handle_unmaximize         (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
@@ -3067,7 +3022,6 @@ handle_unmaximize         (MetaDisplay     *display,
 
 static void
 handle_toggle_shaded      (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
@@ -3081,7 +3035,6 @@ handle_toggle_shaded      (MetaDisplay     *display,
 
 static void
 handle_close              (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
@@ -3093,7 +3046,6 @@ handle_close              (MetaDisplay     *display,
 
 static void
 handle_minimize        (MetaDisplay     *display,
-                        MetaScreen      *screen,
                         MetaWindow      *window,
                         ClutterKeyEvent *event,
                         MetaKeyBinding  *binding,
@@ -3105,7 +3057,6 @@ handle_minimize        (MetaDisplay     *display,
 
 static void
 handle_begin_move         (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
@@ -3122,7 +3073,6 @@ handle_begin_move         (MetaDisplay     *display,
 
 static void
 handle_begin_resize       (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
@@ -3139,7 +3089,6 @@ handle_begin_resize       (MetaDisplay     *display,
 
 static void
 handle_toggle_on_all_workspaces (MetaDisplay     *display,
-                                 MetaScreen      *screen,
                                  MetaWindow      *window,
                                  ClutterKeyEvent *event,
                                  MetaKeyBinding  *binding,
@@ -3153,7 +3102,6 @@ handle_toggle_on_all_workspaces (MetaDisplay     *display,
 
 static void
 handle_move_to_workspace_last (MetaDisplay     *display,
-                               MetaScreen      *screen,
                                MetaWindow      *window,
                                ClutterKeyEvent *event,
                                MetaKeyBinding  *binding,
@@ -3173,7 +3121,6 @@ handle_move_to_workspace_last (MetaDisplay     *display,
 
 static void
 handle_move_to_workspace  (MetaDisplay     *display,
-                           MetaScreen      *screen,
                            MetaWindow      *window,
                            ClutterKeyEvent *event,
                            MetaKeyBinding  *binding,
@@ -3228,7 +3175,6 @@ handle_move_to_workspace  (MetaDisplay     *display,
 
 static void
 handle_move_to_monitor (MetaDisplay    *display,
-                        MetaScreen     *screen,
                         MetaWindow     *window,
                        ClutterKeyEvent *event,
                         MetaKeyBinding *binding,
@@ -3252,7 +3198,6 @@ handle_move_to_monitor (MetaDisplay    *display,
 
 static void
 handle_raise_or_lower (MetaDisplay     *display,
-                       MetaScreen      *screen,
                       MetaWindow      *window,
                       ClutterKeyEvent *event,
                       MetaKeyBinding  *binding,
@@ -3299,7 +3244,6 @@ handle_raise_or_lower (MetaDisplay     *display,
 
 static void
 handle_raise (MetaDisplay     *display,
-              MetaScreen      *screen,
               MetaWindow      *window,
               ClutterKeyEvent *event,
               MetaKeyBinding  *binding,
@@ -3310,7 +3254,6 @@ handle_raise (MetaDisplay     *display,
 
 static void
 handle_lower (MetaDisplay     *display,
-              MetaScreen      *screen,
               MetaWindow      *window,
               ClutterKeyEvent *event,
               MetaKeyBinding  *binding,
@@ -3321,7 +3264,6 @@ handle_lower (MetaDisplay     *display,
 
 static void
 handle_set_spew_mark (MetaDisplay     *display,
-                      MetaScreen      *screen,
                       MetaWindow      *window,
                       ClutterKeyEvent *event,
                       MetaKeyBinding  *binding,
@@ -3333,7 +3275,6 @@ handle_set_spew_mark (MetaDisplay     *display,
 #ifdef HAVE_NATIVE_BACKEND
 static void
 handle_switch_vt (MetaDisplay     *display,
-                  MetaScreen      *screen,
                   MetaWindow      *window,
                   ClutterKeyEvent *event,
                   MetaKeyBinding  *binding,
@@ -3352,7 +3293,6 @@ handle_switch_vt (MetaDisplay     *display,
 
 static void
 handle_switch_monitor (MetaDisplay    *display,
-                       MetaScreen     *screen,
                        MetaWindow     *window,
                        ClutterKeyEvent *event,
                        MetaKeyBinding *binding,
@@ -3373,7 +3313,6 @@ handle_switch_monitor (MetaDisplay    *display,
 
 static void
 handle_rotate_monitor (MetaDisplay    *display,
-                       MetaScreen     *screen,
                        MetaWindow     *window,
                        ClutterKeyEvent *event,
                        MetaKeyBinding *binding,
@@ -3388,7 +3327,6 @@ handle_rotate_monitor (MetaDisplay    *display,
 
 static void
 handle_restore_shortcuts (MetaDisplay     *display,
-                          MetaScreen      *screen,
                           MetaWindow      *window,
                           ClutterKeyEvent *event,
                           MetaKeyBinding  *binding,
diff --git a/src/core/stack.c b/src/core/stack.c
index 74b3295..6118f16 100644
--- a/src/core/stack.c
+++ b/src/core/stack.c
@@ -497,8 +497,6 @@ add_constraint (Constraint **constraints,
 {
   Constraint *c;
 
-  g_assert (above->screen == below->screen);
-
   /* check if constraint is a duplicate */
   c = constraints[below->stack_position];
   while (c != NULL)
@@ -559,7 +557,6 @@ create_constraints (Constraint **constraints,
               MetaWindow *group_window = tmp2->data;
 
               if (!WINDOW_IN_STACK (group_window) ||
-                  w->screen != group_window->screen ||
                   group_window->override_redirect)
                 {
                   tmp2 = tmp2->next;
@@ -1287,8 +1284,6 @@ meta_stack_windows_cmp  (MetaStack  *stack,
                          MetaWindow *window_a,
                          MetaWindow *window_b)
 {
-  g_return_val_if_fail (window_a->screen == window_b->screen, 0);
-
   /* -1 means a below b */
 
   stack_ensure_sorted (stack); /* update constraints, layers */
diff --git a/src/core/startup-notification.c b/src/core/startup-notification.c
index a607793..df1bc4e 100644
--- a/src/core/startup-notification.c
+++ b/src/core/startup-notification.c
@@ -29,7 +29,6 @@
 #include <meta/errors.h>
 #include "display-private.h"
 #include "x11/meta-x11-display-private.h"
-#include "screen-private.h"
 #include "startup-notification-private.h"
 
 /* This should be fairly long, as it should never be required unless
diff --git a/src/core/window-private.h b/src/core/window-private.h
index 521682d..792c501 100644
--- a/src/core/window-private.h
+++ b/src/core/window-private.h
@@ -36,7 +36,7 @@
 #include <meta/compositor.h>
 #include <meta/window.h>
 #include <meta/meta-close-dialog.h>
-#include "screen-private.h"
+#include "backends/meta-logical-monitor.h"
 #include <meta/util.h>
 #include "stack.h"
 #include <X11/Xutil.h>
@@ -134,7 +134,6 @@ struct _MetaWindow
   GObject parent_instance;
 
   MetaDisplay *display;
-  MetaScreen *screen;
   guint64 stamp;
   MetaLogicalMonitor *monitor;
   MetaWorkspace *workspace;
@@ -567,7 +566,6 @@ struct _MetaWindowClass
 #define META_WINDOW_ALLOWS_VERTICAL_RESIZE(w)   (META_WINDOW_ALLOWS_RESIZE_EXCEPT_HINTS (w) && 
(w)->size_hints.min_height < (w)->size_hints.max_height)
 
 MetaWindow * _meta_window_shared_new       (MetaDisplay         *display,
-                                            MetaScreen          *screen,
                                             MetaWindowClientType client_type,
                                             MetaWaylandSurface  *surface,
                                             Window               xwindow,
diff --git a/src/core/window.c b/src/core/window.c
index 474ff5d..7a6d961 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -846,7 +846,6 @@ meta_window_calculate_main_logical_monitor (MetaWindow *window)
 
 MetaWindow *
 _meta_window_shared_new (MetaDisplay         *display,
-                         MetaScreen          *screen,
                          MetaWindowClientType client_type,
                          MetaWaylandSurface  *surface,
                          Window               xwindow,
@@ -883,9 +882,6 @@ _meta_window_shared_new (MetaDisplay         *display,
   window->surface = surface;
   window->xwindow = xwindow;
 
-  /* this is in window->screen->display, but that's too annoying to
-   * type
-   */
   window->display = display;
   meta_display_register_stamp (window->display, &window->stamp, window);
 
@@ -896,8 +892,6 @@ _meta_window_shared_new (MetaDisplay         *display,
   window->sync_request_timeout_id = 0;
   window->sync_request_alarm = None;
 
-  window->screen = screen;
-
   meta_window_update_flatpak_id (window);
   meta_window_update_desc (window);
 
@@ -1232,7 +1226,7 @@ _meta_window_shared_new (MetaDisplay         *display,
       set_net_wm_state (window);
     }
 
-  meta_compositor_add_window (screen->display->compositor, window);
+  meta_compositor_add_window (window->display->compositor, window);
   window->known_to_compositor = TRUE;
 
   /* Sync stack changes */
@@ -1351,7 +1345,7 @@ meta_window_unmanage (MetaWindow  *window,
   /* Make sure to only show window on all workspaces if requested, to
    * not confuse other window managers that may take over
    */
-  if (window->screen->closing && meta_prefs_get_workspaces_only_on_primary ())
+  if (meta_prefs_get_workspaces_only_on_primary ())
     meta_window_on_all_workspaces_changed (window);
 
   if (window->fullscreen)
@@ -1654,11 +1648,8 @@ stackcmp (gconstpointer a, gconstpointer b)
   MetaWindow *aw = (gpointer) a;
   MetaWindow *bw = (gpointer) b;
 
-  if (aw->screen != bw->screen)
-    return 0; /* don't care how they sort with respect to each other */
-  else
-    return meta_stack_windows_cmp (aw->display->stack,
-                                   aw, bw);
+  return meta_stack_windows_cmp (aw->display->stack,
+                                 aw, bw);
 }
 
 static gboolean
@@ -2969,11 +2960,8 @@ unmaximize_window_before_freeing (MetaWindow        *window)
       window->rect = window->saved_rect;
       set_net_wm_state (window);
     }
-  else if (window->screen->closing      /* See bug #358042 */
 #ifdef HAVE_WAYLAND
-           && !meta_is_wayland_compositor ()
-#endif
-           )
+  else if (!meta_is_wayland_compositor ())
     {
       /* Do NOT update net_wm_state: this screen is closing,
        * it likely will be managed by another window manager
@@ -2988,6 +2976,7 @@ unmaximize_window_before_freeing (MetaWindow        *window)
                                      window->saved_rect.width,
                                      window->saved_rect.height);
     }
+#endif
 }
 
 void
@@ -6512,7 +6501,6 @@ meta_window_begin_grab_op (MetaWindow *window,
                      op, &x, &y);
 
   meta_display_begin_grab_op (window->display,
-                              window->screen,
                               window,
                               op,
                               FALSE,
@@ -6866,20 +6854,6 @@ meta_window_is_skip_taskbar (MetaWindow *window)
 }
 
 /**
- * meta_window_get_screen:
- * @window: a #MetaWindow
- *
- * Gets the #MetaScreen that the window is on.
- *
- * Return value: (transfer none): the #MetaScreen for the window
- */
-MetaScreen *
-meta_window_get_screen (MetaWindow *window)
-{
-  return window->screen;
-}
-
-/**
  * meta_window_get_display:
  * @window: A #MetaWindow
  *
@@ -7941,7 +7915,6 @@ meta_window_handle_ungrabbed_event (MetaWindow         *window,
 
           if (op != META_GRAB_OP_WINDOW_BASE)
             meta_display_begin_grab_op (display,
-                                        window->screen,
                                         window,
                                         op,
                                         TRUE,
@@ -7965,7 +7938,6 @@ meta_window_handle_ungrabbed_event (MetaWindow         *window,
       if (window->has_move_func)
         {
           meta_display_begin_grab_op (display,
-                                      window->screen,
                                       window,
                                       META_GRAB_OP_MOVING,
                                       TRUE,
diff --git a/src/meta/compositor-mutter.h b/src/meta/compositor-mutter.h
index 66c6138..c701140 100644
--- a/src/meta/compositor-mutter.h
+++ b/src/meta/compositor-mutter.h
@@ -32,21 +32,21 @@
 #include <meta/meta-window-actor.h>
 
 /* Public compositor API */
-ClutterActor *meta_get_stage_for_screen         (MetaScreen *screen);
-Window        meta_get_overlay_window           (MetaScreen *screen);
-GList        *meta_get_window_actors            (MetaScreen *screen);
-ClutterActor *meta_get_window_group_for_screen  (MetaScreen *screen);
-ClutterActor *meta_get_top_window_group_for_screen (MetaScreen *screen);
-ClutterActor *meta_get_feedback_group_for_screen (MetaScreen *screen);
-
-void        meta_disable_unredirect_for_screen  (MetaScreen *screen);
-void        meta_enable_unredirect_for_screen   (MetaScreen *screen);
-
-void meta_set_stage_input_region     (MetaScreen    *screen,
-                                      XserverRegion  region);
-void meta_empty_stage_input_region   (MetaScreen    *screen);
-void meta_focus_stage_window         (MetaScreen    *screen,
-                                      guint32        timestamp);
-gboolean meta_stage_is_focused       (MetaScreen    *screen);
+ClutterActor *meta_get_stage_for_display            (MetaDisplay *display);
+Window        meta_get_overlay_window               (MetaDisplay *display);
+GList        *meta_get_window_actors                (MetaDisplay *display);
+ClutterActor *meta_get_window_group_for_display     (MetaDisplay *display);
+ClutterActor *meta_get_top_window_group_for_display (MetaDisplay *display);
+ClutterActor *meta_get_feedback_group_for_display   (MetaDisplay *display);
+
+void meta_disable_unredirect_for_display (MetaDisplay *display);
+void meta_enable_unredirect_for_display  (MetaDisplay *display);
+
+void meta_set_stage_input_region   (MetaDisplay  *display,
+                                    XserverRegion region);
+void meta_empty_stage_input_region (MetaDisplay  *display);
+void meta_focus_stage_window       (MetaDisplay  *display,
+                                    guint32       timestamp);
+gboolean meta_stage_is_focused     (MetaDisplay  *display);
 
 #endif
diff --git a/src/meta/compositor.h b/src/meta/compositor.h
index f4de9b1..29334d5 100644
--- a/src/meta/compositor.h
+++ b/src/meta/compositor.h
@@ -114,8 +114,8 @@ void meta_compositor_queue_frame_drawn    (MetaCompositor *compositor,
 void meta_compositor_sync_stack                (MetaCompositor *compositor,
                                                 GList          *stack);
 
-void meta_compositor_flash_screen              (MetaCompositor *compositor,
-                                                MetaScreen     *screen);
+void meta_compositor_flash_display             (MetaCompositor *compositor,
+                                                MetaDisplay    *display);
 
 void meta_compositor_show_tile_preview (MetaCompositor *compositor,
                                         MetaWindow     *window,
diff --git a/src/meta/display.h b/src/meta/display.h
index aa26306..f688451 100644
--- a/src/meta/display.h
+++ b/src/meta/display.h
@@ -104,7 +104,6 @@ MetaWindow* meta_display_get_tab_current (MetaDisplay   *display,
                                           MetaWorkspace *workspace);
 
 gboolean meta_display_begin_grab_op (MetaDisplay *display,
-                                     MetaScreen  *screen,
                                      MetaWindow  *window,
                                      MetaGrabOp   op,
                                      gboolean     pointer_already_grabbed,
@@ -144,10 +143,6 @@ GSList *meta_display_sort_windows_by_stacking (MetaDisplay *display,
 void meta_display_add_ignored_crossing_serial (MetaDisplay  *display,
                                                unsigned long serial);
 
-void meta_display_unmanage_screen (MetaDisplay *display,
-                                   MetaScreen  *screen,
-                                   guint32      timestamp);
-
 void meta_display_clear_mouse_mode (MetaDisplay *display);
 
 void meta_display_freeze_keyboard (MetaDisplay *display,
diff --git a/src/meta/meta-background-actor.h b/src/meta/meta-background-actor.h
index e2c4d6a..415aa7f 100644
--- a/src/meta/meta-background-actor.h
+++ b/src/meta/meta-background-actor.h
@@ -22,7 +22,6 @@
 #define META_BACKGROUND_ACTOR_H
 
 #include <clutter/clutter.h>
-#include <meta/screen.h>
 #include <meta/meta-background.h>
 
 #include <gsettings-desktop-schemas/gdesktop-enums.h>
@@ -61,8 +60,8 @@ struct _MetaBackgroundActor
 
 GType meta_background_actor_get_type (void);
 
-ClutterActor *meta_background_actor_new    (MetaScreen *screen,
-                                            int         monitor);
+ClutterActor *meta_background_actor_new    (MetaDisplay *display,
+                                            int          monitor);
 
 void meta_background_actor_set_background  (MetaBackgroundActor *self,
                                             MetaBackground      *background);
diff --git a/src/meta/meta-background.h b/src/meta/meta-background.h
index d48d966..043b847 100644
--- a/src/meta/meta-background.h
+++ b/src/meta/meta-background.h
@@ -23,7 +23,6 @@
 
 #include <clutter/clutter.h>
 #include <gsettings-desktop-schemas/gdesktop-enums.h>
-#include <meta/screen.h>
 
 /**
  * MetaBackground:
@@ -61,7 +60,7 @@ void meta_background_refresh_all (void);
 
 GType meta_background_get_type (void);
 
-MetaBackground *meta_background_new  (MetaScreen *screen);
+MetaBackground *meta_background_new (MetaDisplay *display);
 
 void meta_background_set_color    (MetaBackground            *self,
                                    ClutterColor              *color);
diff --git a/src/meta/meta-cursor-tracker.h b/src/meta/meta-cursor-tracker.h
index e045fa5..9430bdc 100644
--- a/src/meta/meta-cursor-tracker.h
+++ b/src/meta/meta-cursor-tracker.h
@@ -39,7 +39,7 @@ typedef struct _MetaCursorTrackerClass   MetaCursorTrackerClass;
 
 GType meta_cursor_tracker_get_type (void);
 
-MetaCursorTracker *meta_cursor_tracker_get_for_screen (MetaScreen *screen);
+MetaCursorTracker *meta_cursor_tracker_get_for_display (MetaDisplay *display);
 
 void           meta_cursor_tracker_get_hot    (MetaCursorTracker *tracker,
                                                int               *x,
diff --git a/src/meta/meta-plugin.h b/src/meta/meta-plugin.h
index 73d94e5..afeea13 100644
--- a/src/meta/meta-plugin.h
+++ b/src/meta/meta-plugin.h
@@ -421,7 +421,7 @@ void
 meta_plugin_end_modal (MetaPlugin *plugin,
                        guint32     timestamp);
 
-MetaScreen *meta_plugin_get_screen        (MetaPlugin *plugin);
+MetaDisplay *meta_plugin_get_display (MetaPlugin *plugin);
 
 void _meta_plugin_set_compositor (MetaPlugin *plugin, MetaCompositor *compositor);
 
diff --git a/src/meta/prefs.h b/src/meta/prefs.h
index df3cf6c..378ef5d 100644
--- a/src/meta/prefs.h
+++ b/src/meta/prefs.h
@@ -384,7 +384,6 @@ typedef enum
 /**
  * MetaKeyHandlerFunc:
  * @display: a #MetaDisplay
- * @screen: a #MetaScreen
  * @window: a #MetaWindow
  * @event: (type gpointer): a #ClutterKeyEvent
  * @binding: a #MetaKeyBinding
@@ -392,7 +391,6 @@ typedef enum
  *
  */
 typedef void (* MetaKeyHandlerFunc) (MetaDisplay     *display,
-                                     MetaScreen      *screen,
                                      MetaWindow      *window,
                                      ClutterKeyEvent *event,
                                      MetaKeyBinding  *binding,
diff --git a/src/meta/window.h b/src/meta/window.h
index b482bed..02c39bb 100644
--- a/src/meta/window.h
+++ b/src/meta/window.h
@@ -119,7 +119,6 @@ void meta_window_frame_rect_to_client_rect (MetaWindow    *window,
                                             MetaRectangle *frame_rect,
                                             MetaRectangle *client_rect);
 
-MetaScreen *meta_window_get_screen (MetaWindow *window);
 MetaDisplay *meta_window_get_display (MetaWindow *window);
 Window meta_window_get_xwindow (MetaWindow *window);
 MetaWindowType meta_window_get_window_type (MetaWindow *window);
diff --git a/src/meta/workspace.h b/src/meta/workspace.h
index d83a389..18bf05d 100644
--- a/src/meta/workspace.h
+++ b/src/meta/workspace.h
@@ -23,7 +23,6 @@
 
 #include <meta/types.h>
 #include <meta/boxes.h>
-#include <meta/screen.h>
 
 #define META_TYPE_WORKSPACE            (meta_workspace_get_type ())
 #define META_WORKSPACE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), META_TYPE_WORKSPACE, 
MetaWorkspace))
diff --git a/src/wayland/meta-wayland-popup.c b/src/wayland/meta-wayland-popup.c
index 1b36d00..7ec2d22 100644
--- a/src/wayland/meta-wayland-popup.c
+++ b/src/wayland/meta-wayland-popup.c
@@ -190,7 +190,6 @@ meta_wayland_popup_grab_begin (MetaWaylandPopupGrab *grab,
 
   meta_wayland_pointer_start_grab (pointer, (MetaWaylandPointerGrab*)grab);
   meta_display_begin_grab_op (window->display,
-                              window->screen,
                               window,
                               META_GRAB_OP_WAYLAND_POPUP,
                               FALSE, /* pointer_already_grabbed */
diff --git a/src/wayland/meta-wayland-surface-role-cursor.c b/src/wayland/meta-wayland-surface-role-cursor.c
index 1c8ba94..1bd31fc 100644
--- a/src/wayland/meta-wayland-surface-role-cursor.c
+++ b/src/wayland/meta-wayland-surface-role-cursor.c
@@ -26,7 +26,6 @@
 #include "meta-wayland-surface-role-cursor.h"
 #include "meta-wayland-buffer.h"
 #include "meta-xwayland.h"
-#include "screen-private.h"
 #include "meta-wayland-private.h"
 #include "backends/meta-backend-private.h"
 #include "backends/meta-logical-monitor.h"
diff --git a/src/wayland/meta-wayland-surface.c b/src/wayland/meta-wayland-surface.c
index ddca18f..2f775e3 100644
--- a/src/wayland/meta-wayland-surface.c
+++ b/src/wayland/meta-wayland-surface.c
@@ -1410,7 +1410,6 @@ meta_wayland_surface_begin_grab_op (MetaWaylandSurface *surface,
      constrain it in the same way as it would be if the window was
      being moved/resized via a SSD event. */
   return meta_display_begin_grab_op (window->display,
-                                     window->screen,
                                      window,
                                      grab_op,
                                      TRUE, /* pointer_already_grabbed */
diff --git a/src/wayland/meta-window-wayland.c b/src/wayland/meta-window-wayland.c
index a91542e..52e3ab5 100644
--- a/src/wayland/meta-window-wayland.c
+++ b/src/wayland/meta-window-wayland.c
@@ -564,7 +564,6 @@ meta_window_wayland_new (MetaDisplay        *display,
                          MetaWaylandSurface *surface)
 {
   XWindowAttributes attrs = { 0 };
-  MetaScreen *scr = display->screen;
   MetaWindow *window;
 
   /*
@@ -590,7 +589,6 @@ meta_window_wayland_new (MetaDisplay        *display,
                                                 */
 
   window = _meta_window_shared_new (display,
-                                    scr,
                                     META_WINDOW_CLIENT_TYPE_WAYLAND,
                                     surface,
                                     None,
diff --git a/src/x11/events.c b/src/x11/events.c
index 21d1bf7..6863280 100644
--- a/src/x11/events.c
+++ b/src/x11/events.c
@@ -1160,9 +1160,8 @@ process_selection_clear (MetaX11Display *x11_display,
   meta_verbose ("Got selection clear for on display %s\n",
                 x11_display->name);
 
-  meta_display_unmanage_screen (x11_display->display,
-                                x11_display->display->screen,
-                                event->xselectionclear.time);
+  meta_display_close (x11_display->display,
+                      event->xselectionclear.time);
   return TRUE;
 }
 
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
index c86c5d1..f210d73 100644
--- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c
@@ -2246,7 +2246,7 @@ meta_window_x11_property_notify (MetaWindow *window,
 static int
 query_pressed_buttons (MetaWindow *window)
 {
-  MetaCursorTracker *tracker = meta_cursor_tracker_get_for_screen (window->screen);
+  MetaCursorTracker *tracker = meta_cursor_tracker_get_for_display (window->display);
   ClutterModifierType mods;
   int button = 0;
 
@@ -2611,7 +2611,6 @@ meta_window_x11_client_message (MetaWindow *window,
           meta_topic (META_DEBUG_WINDOW_OPS,
                       "Beginning move/resize with button = %d\n", button);
           meta_display_begin_grab_op (window->display,
-                                      window->screen,
                                       window,
                                       op,
                                       FALSE,
@@ -2933,7 +2932,6 @@ meta_window_x11_new (MetaDisplay       *display,
                      MetaCompEffect     effect)
 {
   MetaX11Display *x11_display = display->x11_display;
-  MetaScreen *screen = display->screen;
   XWindowAttributes attrs;
   gulong existing_wm_state;
   MetaWindow *window = NULL;
@@ -3065,7 +3063,6 @@ meta_window_x11_new (MetaDisplay       *display,
     }
 
   window = _meta_window_shared_new (display,
-                                    screen,
                                     META_WINDOW_CLIENT_TYPE_X11,
                                     NULL,
                                     xwindow,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]