Index: gdk-pixbuf/gdk-pixbuf.c
===================================================================
--- gdk-pixbuf/gdk-pixbuf.c	(revisão 18342)
+++ gdk-pixbuf/gdk-pixbuf.c	(cópia de trabalho)
@@ -56,11 +56,42 @@ enum 
   PROP_WIDTH,
   PROP_HEIGHT,
   PROP_ROWSTRIDE,
-  PROP_PIXELS
+  PROP_PIXELS,
+  PROP_FILENAME
 };
 
 G_DEFINE_TYPE (GdkPixbuf, gdk_pixbuf, G_TYPE_OBJECT)
 
+static GObject *
+gdk_pixbuf_constructor (GType                  type,
+                        guint                  n_construct_properties,
+                        GObjectConstructParam *construct_properties)
+{
+        int i;
+        const gchar *filename = NULL;
+        
+        for (i = 0; i < n_construct_properties; i++) {
+                GParamSpec *param = construct_properties[i].pspec;
+                GValue * value = construct_properties[i].value;
+
+                switch (param->param_id) {
+                case PROP_FILENAME:
+                        filename = g_value_get_string (value);
+                        break;
+                }
+        }
+
+        if (filename)
+                return G_OBJECT (gdk_pixbuf_new_from_file (filename, NULL));
+        else {
+                return G_OBJECT_CLASS (gdk_pixbuf_parent_class)->constructor (type,
+                                                                              n_construct_properties,
+                                                                              construct_properties);
+        }
+}
+
+      
+
 static void 
 gdk_pixbuf_init (GdkPixbuf *pixbuf)
 {
@@ -71,6 +102,7 @@ gdk_pixbuf_class_init (GdkPixbufClass *k
 {
         GObjectClass *object_class = G_OBJECT_CLASS (klass);
         
+        object_class->constructor = gdk_pixbuf_constructor;
         object_class->finalize = gdk_pixbuf_finalize;
         object_class->set_property = gdk_pixbuf_set_property;
         object_class->get_property = gdk_pixbuf_get_property;
@@ -169,6 +201,13 @@ gdk_pixbuf_class_init (GdkPixbufClass *k
                                                                P_("Pixels"),
                                                                P_("A pointer to the pixel data of the pixbuf"),
                                                                PIXBUF_PARAM_FLAGS));
+
+        g_object_class_install_property (object_class,
+                                         PROP_PIXELS,
+                                         g_param_spec_pointer ("filename",
+                                                               P_("Filename"),
+                                                               P_("Filename to load pixbuf from"),
+                                                               PIXBUF_PARAM_FLAGS|G_PARAM_CONSTRUCT_ONLY));
 }
 
 static void
