gnome-shell r39 - in trunk: js/ui src



Author: otaylor
Date: Sat Nov  8 19:33:33 2008
New Revision: 39
URL: http://svn.gnome.org/viewvc/gnome-shell?rev=39&view=rev

Log:
Hide the group containing the windows while overlay is up

When we are animating the overlay, we don't want to be continually
redrawing the (obscured) window actors.

src/shell-global.c: Add 'window-group' property to expose the group
  holding the window actors.
js/ui/overlay.js: Hide the window group while the overlay is up.

Modified:
   trunk/js/ui/overlay.js
   trunk/src/metacity-symbols.c
   trunk/src/shell-global.c

Modified: trunk/js/ui/overlay.js
==============================================================================
--- trunk/js/ui/overlay.js	(original)
+++ trunk/js/ui/overlay.js	Sat Nov  8 19:33:33 2008
@@ -103,13 +103,24 @@
 		window_index++;
 	    }
 
+	    // All the the actors in the window group are completely obscured,
+	    // hiding the group holding them while the overlay is displayed greatly
+	    // increases performance of the overlay especially when there are many
+	    // windows visible.
+	    //
+	    // If we switched to displaying the actors in the overlay rather than
+	    // clones of them, this would obviously no longer be necessary.
+	    global.window_group.hide()
 	    this._group.show();
 	}
     },
 
     hide : function() {
 	if (this.visible) {
+	    let global = Shell.global_get();
+
 	    this.visible = false;
+	    global.window_group.show()
 	    this._group.hide();
 
 	    for (let i = 0; i < this._window_clones.length; i++) {

Modified: trunk/src/metacity-symbols.c
==============================================================================
--- trunk/src/metacity-symbols.c	(original)
+++ trunk/src/metacity-symbols.c	Sat Nov  8 19:33:33 2008
@@ -39,6 +39,12 @@
   return NULL;
 }
 
+ClutterActor *
+mutter_plugin_get_window_group (MutterPlugin *plugin)
+{
+  return NULL;
+}
+
 Display *
 meta_display_get_xdisplay (MetaDisplay *display)
 {

Modified: trunk/src/shell-global.c
==============================================================================
--- trunk/src/shell-global.c	(original)
+++ trunk/src/shell-global.c	Sat Nov  8 19:33:33 2008
@@ -14,7 +14,8 @@
   PROP_OVERLAY_GROUP,
   PROP_SCREEN_WIDTH,
   PROP_SCREEN_HEIGHT,
-  PROP_STAGE
+  PROP_STAGE,
+  PROP_WINDOW_GROUP
 };
 
 /* Signals */
@@ -75,6 +76,9 @@
     case PROP_STAGE:
       g_value_set_object (value, mutter_plugin_get_stage (global->plugin));
       break;
+    case PROP_WINDOW_GROUP:
+      g_value_set_object (value, mutter_plugin_get_window_group (global->plugin));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -141,6 +145,13 @@
                                                         "Stage holding the desktop scene graph",
                                                         CLUTTER_TYPE_ACTOR,
                                                         G_PARAM_READABLE));
+  g_object_class_install_property (gobject_class,
+                                   PROP_WINDOW_GROUP,
+                                   g_param_spec_object ("window-group",
+                                                        "Window Group",
+                                                        "Actor holding window actors",
+                                                        CLUTTER_TYPE_ACTOR,
+                                                        G_PARAM_READABLE));
 }
 
 /**



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