[gnome-shell] shell-embedded-window: Remove hacks for old and fixed Clutter bug



commit d212d574669ef842cb39a0a0f7a7fa066656528c
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Sun Mar 25 07:02:17 2012 -0300

    shell-embedded-window: Remove hacks for old and fixed Clutter bug
    
    We used to use realize/unrealize instead of map/unmap in ShellEmbeddedWindow
    because there originally was no map/unmap. The days of this are long gone...
    
    https://bugzilla.gnome.org/show_bug.cgi?id=672790

 src/shell-embedded-window-private.h |    4 ++--
 src/shell-embedded-window.c         |   20 +++++---------------
 src/shell-gtk-embed.c               |   16 ++++++++--------
 3 files changed, 15 insertions(+), 25 deletions(-)
---
diff --git a/src/shell-embedded-window-private.h b/src/shell-embedded-window-private.h
index 1c696db..5714af9 100644
--- a/src/shell-embedded-window-private.h
+++ b/src/shell-embedded-window-private.h
@@ -14,7 +14,7 @@ void _shell_embedded_window_allocate (ShellEmbeddedWindow *window,
 				      int                  width,
 				      int                  height);
 
-void _shell_embedded_window_realize   (ShellEmbeddedWindow *window);
-void _shell_embedded_window_unrealize (ShellEmbeddedWindow *window);
+void _shell_embedded_window_map (ShellEmbeddedWindow *window);
+void _shell_embedded_window_unmap (ShellEmbeddedWindow *window);
 
 #endif /* __SHELL_EMBEDDED_WINDOW_PRIVATE_H__ */
diff --git a/src/shell-embedded-window.c b/src/shell-embedded-window.c
index abc29ac..d1d273f 100644
--- a/src/shell-embedded-window.c
+++ b/src/shell-embedded-window.c
@@ -19,20 +19,10 @@
  *  - ShellGtkEmbed is created for the ShellEmbeddedWindow
  *  - actor is added to a stage
  *
- * Ideally, the way it would work is that the GtkWindow is mapped
- * if and only if both:
+ * The way it works is that the GtkWindow is mapped if and only if both:
  *
- * - GTK_WIDGET_VISIBLE (window) [widget has been shown]
+ * - gtk_widget_visible (window) [widget has been shown]
  * - Actor is mapped [actor and all parents visible, actor in stage]
- *
- * Implementing this perfectly is not currently possible, due to problems
- * in Clutter, see:
- *
- * http://bugzilla.openedhand.com/show_bug.cgi?id=1138
- *
- * So until that is fixed we use the "realized" state of the ClutterActor
- * as a stand-in for the ideal mapped state, this will work as long
- * as the ClutterActor and all its parents are in fact visible.
  */
 
 G_DEFINE_TYPE (ShellEmbeddedWindow, shell_embedded_window, GTK_TYPE_WINDOW);
@@ -232,7 +222,7 @@ _shell_embedded_window_set_actor (ShellEmbeddedWindow  *window,
   window->priv->actor = actor;
 
   if (actor &&
-      CLUTTER_ACTOR_IS_REALIZED (actor) &&
+      CLUTTER_ACTOR_IS_MAPPED (actor) &&
       gtk_widget_get_visible (GTK_WIDGET (window)))
     gtk_widget_map (GTK_WIDGET (window));
 }
@@ -272,7 +262,7 @@ _shell_embedded_window_allocate (ShellEmbeddedWindow *window,
 }
 
 void
-_shell_embedded_window_realize (ShellEmbeddedWindow *window)
+_shell_embedded_window_map (ShellEmbeddedWindow *window)
 {
   g_return_if_fail (SHELL_IS_EMBEDDED_WINDOW (window));
 
@@ -281,7 +271,7 @@ _shell_embedded_window_realize (ShellEmbeddedWindow *window)
 }
 
 void
-_shell_embedded_window_unrealize (ShellEmbeddedWindow *window)
+_shell_embedded_window_unmap (ShellEmbeddedWindow *window)
 {
   g_return_if_fail (SHELL_IS_EMBEDDED_WINDOW (window));
 
diff --git a/src/shell-gtk-embed.c b/src/shell-gtk-embed.c
index fded8ed..8120e1e 100644
--- a/src/shell-gtk-embed.c
+++ b/src/shell-gtk-embed.c
@@ -199,23 +199,23 @@ shell_gtk_embed_allocate (ClutterActor          *actor,
 }
 
 static void
-shell_gtk_embed_realize (ClutterActor *actor)
+shell_gtk_embed_map (ClutterActor *actor)
 {
   ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
 
-  _shell_embedded_window_realize (embed->priv->window);
+  _shell_embedded_window_map (embed->priv->window);
 
-  CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)->realize (actor);
+  CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)->map (actor);
 }
 
 static void
-shell_gtk_embed_unrealize (ClutterActor *actor)
+shell_gtk_embed_unmap (ClutterActor *actor)
 {
   ShellGtkEmbed *embed = SHELL_GTK_EMBED (actor);
 
-  _shell_embedded_window_unrealize (embed->priv->window);
+  _shell_embedded_window_unmap (embed->priv->window);
 
-  CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)->unrealize (actor);
+  CLUTTER_ACTOR_CLASS (shell_gtk_embed_parent_class)->unmap (actor);
 }
 
 static void
@@ -243,8 +243,8 @@ shell_gtk_embed_class_init (ShellGtkEmbedClass *klass)
   actor_class->get_preferred_width = shell_gtk_embed_get_preferred_width;
   actor_class->get_preferred_height = shell_gtk_embed_get_preferred_height;
   actor_class->allocate = shell_gtk_embed_allocate;
-  actor_class->realize = shell_gtk_embed_realize;
-  actor_class->unrealize = shell_gtk_embed_unrealize;
+  actor_class->map = shell_gtk_embed_map;
+  actor_class->unmap = shell_gtk_embed_unmap;
 
   g_object_class_install_property (object_class,
                                    PROP_WINDOW,



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