[mutter] x11/nested: Only paint monitor stage views when enabled
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] x11/nested: Only paint monitor stage views when enabled
- Date: Wed, 3 Aug 2016 03:22:22 +0000 (UTC)
commit cc4a65fe948658a5187394d1e1386fde3bec829e
Author: Jonas Ådahl <jadahl gmail com>
Date: Mon Jul 25 15:28:06 2016 +0800
x11/nested: Only paint monitor stage views when enabled
Only paint the per monitor stage views when enabled, otherwise bad
things happen.
https://bugzilla.gnome.org/show_bug.cgi?id=768976
src/backends/x11/meta-backend-x11.c | 3 ++-
src/backends/x11/meta-stage-x11-nested.c | 11 ++++++++++-
2 files changed, 12 insertions(+), 2 deletions(-)
---
diff --git a/src/backends/x11/meta-backend-x11.c b/src/backends/x11/meta-backend-x11.c
index 24aaca3..c9a6b9a 100644
--- a/src/backends/x11/meta-backend-x11.c
+++ b/src/backends/x11/meta-backend-x11.c
@@ -817,7 +817,8 @@ meta_backend_x11_update_screen_size (MetaBackend *backend,
ClutterActor *stage = meta_backend_get_stage (backend);
MetaRenderer *renderer = meta_backend_get_renderer (backend);
- meta_renderer_rebuild_views (renderer);
+ if (meta_is_stage_views_enabled ())
+ meta_renderer_rebuild_views (renderer);
clutter_actor_set_size (stage, width, height);
}
else
diff --git a/src/backends/x11/meta-stage-x11-nested.c b/src/backends/x11/meta-stage-x11-nested.c
index c9dee09..9777191 100644
--- a/src/backends/x11/meta-stage-x11-nested.c
+++ b/src/backends/x11/meta-stage-x11-nested.c
@@ -66,7 +66,10 @@ meta_stage_x11_nested_get_views (ClutterStageWindow *stage_window)
MetaBackend *backend = meta_get_backend ();
MetaRenderer *renderer = meta_backend_get_renderer (backend);
- return meta_renderer_get_views (renderer);
+ if (meta_is_stage_views_enabled ())
+ return meta_renderer_get_views (renderer);
+ else
+ return clutter_stage_window_parent_iface->get_views (stage_window);
}
static void
@@ -80,6 +83,12 @@ meta_stage_x11_nested_finish_frame (ClutterStageWindow *stage_window)
CoglFramebuffer *onscreen = COGL_FRAMEBUFFER (stage_x11->onscreen);
GList *l;
+ /*
+ * If we are in legacy mode, the stage is already on the onscreen.
+ */
+ if (!meta_is_stage_views_enabled ())
+ return;
+
if (!stage_nested->pipeline)
stage_nested->pipeline = cogl_pipeline_new (clutter_backend->cogl_context);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]