compositor: don't show stage right away

We don't want the stage shown until gnome-shell is ready for it.
This commit ensures the stage isn't shown implicitly.

https://bugzilla.gnome.org/show_bug.cgi?id=694321
This commit is contained in:
Ray Strode 2013-03-01 14:34:41 -05:00
parent 6e02fb80c4
commit 160150d127
2 changed files with 26 additions and 1 deletions

View File

@ -611,7 +611,6 @@ meta_compositor_manage_screen (MetaCompositor *compositor,
}
clutter_actor_show (info->overlay_group);
clutter_actor_show (info->stage);
}
void

View File

@ -23,6 +23,7 @@
#include <meta/meta-plugin.h>
#include <meta/window.h>
#include <meta/util.h>
#include <libintl.h>
#define _(x) dgettext (GETTEXT_PACKAGE, x)
@ -68,6 +69,7 @@ struct _MetaDefaultPluginClass
static GQuark actor_data_quark = 0;
static void start (MetaPlugin *plugin);
static void minimize (MetaPlugin *plugin,
MetaWindowActor *actor);
static void map (MetaPlugin *plugin,
@ -191,6 +193,7 @@ meta_default_plugin_class_init (MetaDefaultPluginClass *klass)
gobject_class->set_property = meta_default_plugin_set_property;
gobject_class->get_property = meta_default_plugin_get_property;
plugin_class->start = start;
plugin_class->map = map;
plugin_class->minimize = minimize;
plugin_class->maximize = maximize;
@ -282,6 +285,29 @@ on_switch_workspace_effect_complete (ClutterTimeline *timeline, gpointer data)
meta_plugin_switch_workspace_completed (plugin);
}
static gboolean
show_stage (MetaPlugin *plugin)
{
MetaScreen *screen;
ClutterActor *stage;
screen = meta_plugin_get_screen (plugin);
stage = meta_get_stage_for_screen (screen);
clutter_actor_show (stage);
return FALSE;
}
static void
start (MetaPlugin *plugin)
{
meta_later_add (META_LATER_BEFORE_REDRAW,
(GSourceFunc) show_stage,
plugin,
NULL);
}
static void
switch_workspace (MetaPlugin *plugin,
gint from, gint to,