gnome-games r8186 - trunk/aisleriot



Author: chpe
Date: Thu Oct 23 14:22:55 2008
New Revision: 8186
URL: http://svn.gnome.org/viewvc/gnome-games?rev=8186&view=rev

Log:
Fix window flashing on startup, by only showing the embed's stage actor
after realising the embed.

Modified:
   trunk/aisleriot/clutter-embed.c

Modified: trunk/aisleriot/clutter-embed.c
==============================================================================
--- trunk/aisleriot/clutter-embed.c	(original)
+++ trunk/aisleriot/clutter-embed.c	Thu Oct 23 14:22:55 2008
@@ -110,7 +110,8 @@
 {
   AisleriotClutterEmbedPrivate *priv = AISLERIOT_CLUTTER_EMBED (widget)->priv;
 
-  clutter_actor_show (priv->stage);
+  if (GTK_WIDGET_REALIZED (widget))
+    clutter_actor_show (priv->stage);
 
   GTK_WIDGET_CLASS (aisleriot_clutter_embed_parent_class)->show (widget);
 }
@@ -132,6 +133,9 @@
   GdkWindowAttr attributes;
   int attributes_mask;
   
+  /* we must realize the stage to get it ready for embedding */
+  clutter_actor_realize (priv->stage);
+
 #ifdef GDK_WINDOWING_X11
   {
     const XVisualInfo *xvinfo;
@@ -181,9 +185,6 @@
   
   gdk_window_set_back_pixmap (widget->window, NULL, FALSE);
 
-  /* we must realize the stage to get it ready for embedding */
-  clutter_actor_realize (priv->stage);
-
 #if defined(GDK_WINDOWING_X11)
   clutter_x11_set_stage_foreign (CLUTTER_STAGE (priv->stage), 
                                  GDK_WINDOW_XID (widget->window));
@@ -194,6 +195,9 @@
 
   clutter_actor_queue_redraw (CLUTTER_ACTOR (priv->stage));
 
+  if (GTK_WIDGET_VISIBLE (widget))
+    clutter_actor_show (priv->stage);
+
   aisleriot_clutter_embed_send_configure (AISLERIOT_CLUTTER_EMBED (widget));
 }
 



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