glade3 r1714 - in trunk: . gladeui src



Author: tvb
Date: Sun Mar  9 23:43:10 2008
New Revision: 1714
URL: http://svn.gnome.org/viewvc/glade3?rev=1714&view=rev

Log:

	* gladeui/glade-app.c: When adding a first project, display the
	  first toplevel in the design layout.

	* gladeui/glade-widget.c: Handle glade_widget_show() with unrealized
	  design-view, connect-after the design-view's realize and retry.



Modified:
   trunk/ChangeLog
   trunk/gladeui/glade-app.c
   trunk/gladeui/glade-widget.c
   trunk/src/glade-window.c

Modified: trunk/gladeui/glade-app.c
==============================================================================
--- trunk/gladeui/glade-app.c	(original)
+++ trunk/gladeui/glade-app.c	Sun Mar  9 23:43:10 2008
@@ -944,6 +944,21 @@
 	
 	glade_app_set_project (project);
 
+	/* Select the first window in the project */
+	if (g_list_length (app->priv->projects) == 1)
+	{
+		GList *node;
+		for (node = glade_project_get_objects (project);
+		     node != NULL;
+		     node = g_list_next (node))
+		{
+			GObject *obj = G_OBJECT (node->data);
+			if (GTK_IS_WINDOW (obj))
+				glade_widget_show (glade_widget_get_from_gobject (obj));
+			break;
+		}
+	}
+
 	/* XXX I think the palette & editor should detect this by itself */
 	gtk_widget_set_sensitive (GTK_WIDGET (app->priv->palette), TRUE);
 	gtk_widget_set_sensitive (GTK_WIDGET (app->priv->editor), TRUE);

Modified: trunk/gladeui/glade-widget.c
==============================================================================
--- trunk/gladeui/glade-widget.c	(original)
+++ trunk/gladeui/glade-widget.c	Sun Mar  9 23:43:10 2008
@@ -2168,6 +2168,19 @@
 	{
 		view = glade_design_view_get_from_project (glade_widget_get_project (widget));
 		layout = GTK_WIDGET (glade_design_view_get_layout (view));
+
+		/* This case causes a black window */
+		if (layout && !GTK_WIDGET_REALIZED (layout))
+		{
+			/* give her a little kick */
+			g_signal_connect_data (G_OBJECT (layout), "realize",
+					       G_CALLBACK (glade_widget_show), widget,
+					       NULL,
+					       G_CONNECT_AFTER|G_CONNECT_SWAPPED);
+			return;
+		}
+		else if (!layout)
+			return;
 		
 		if (gtk_bin_get_child (GTK_BIN (layout)) != NULL)
 			gtk_container_remove (GTK_CONTAINER (layout), gtk_bin_get_child (GTK_BIN (layout)));

Modified: trunk/src/glade-window.c
==============================================================================
--- trunk/src/glade-window.c	(original)
+++ trunk/src/glade-window.c	Sun Mar  9 23:43:10 2008
@@ -2548,12 +2548,12 @@
  	
  	view = glade_design_view_new (project);	
 	gtk_widget_show (view);
-	
+
 	glade_app_add_project (project);
 
 	gtk_notebook_append_page (GTK_NOTEBOOK (window->priv->notebook), GTK_WIDGET (view), NULL);
 	gtk_notebook_set_current_page (GTK_NOTEBOOK (window->priv->notebook), -1);	
-	
+		
 }
 
 void



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