[PATCH] Use vbox as main content widget



From bug 160578 [1]:

"(W)hen you reduce the width of a Nautilus window, if the size of the
window gets smaller than the size of the menu, the vertical scrollbar
disappears and some of the folders then get unreachable."

"This is a such bug, with a screenshot [2]"

"The problem is that Nautilus passes the wrong arguments when packing
widgets into the window's main table."

I've solved the issue by using a vbox as main content widget instead of
a table and correctly setting it's packing information. Proposed patch
attached.

[1] http://bugzilla.gnome.org/show_bug.cgi?id=160578
[2] https://bugzilla.ubuntu.com/attachment.cgi?id=1789

-- 
Christian Neumair <chris gnome-de org>
Index: src/nautilus-navigation-window.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-navigation-window.c,v
retrieving revision 1.434
diff -u -p -r1.434 nautilus-navigation-window.c
--- src/nautilus-navigation-window.c	11 Jul 2005 08:52:21 -0000	1.434
+++ src/nautilus-navigation-window.c	11 Jul 2005 19:03:51 -0000
@@ -138,12 +138,10 @@ nautilus_navigation_window_instance_init
 	gtk_object_sink (GTK_OBJECT (window->details->tooltips));
 	
 	window->details->content_paned = nautilus_horizontal_splitter_new ();
-	gtk_table_attach (GTK_TABLE (NAUTILUS_WINDOW (window)->details->table),
-			  window->details->content_paned,
-			  /* X direction */       /* Y direction */
-			  0, 1,                   3, 4,
-			  GTK_EXPAND | GTK_FILL,  GTK_EXPAND | GTK_FILL,
-			  0,                      0);
+	gtk_box_pack_start_defaults (GTK_BOX (NAUTILUS_WINDOW (window)->details->vbox),
+				     window->details->content_paned);
+	gtk_box_reorder_child (GTK_BOX (NAUTILUS_WINDOW (window)->details->vbox),
+			       window->details->content_paned, 3);
 	gtk_widget_show (window->details->content_paned);
 
 	nautilus_navigation_window_initialize_actions (window);
@@ -152,12 +150,10 @@ nautilus_navigation_window_instance_init
 	ui_manager = nautilus_window_get_ui_manager (NAUTILUS_WINDOW (window));
 	toolbar = gtk_ui_manager_get_widget (ui_manager, "/Toolbar");
 	window->details->toolbar = toolbar;
-	gtk_table_attach (GTK_TABLE (NAUTILUS_WINDOW (window)->details->table),
-			  toolbar,
-			  /* X direction */       /* Y direction */
-			  0, 1,                   1, 2,
-			  GTK_EXPAND | GTK_FILL,  0,
-			  0,                      0);
+	gtk_box_pack_start (GTK_BOX (NAUTILUS_WINDOW (window)->details->vbox),
+			    window->details->toolbar, FALSE, FALSE, 0);
+	gtk_box_reorder_child (GTK_BOX (NAUTILUS_WINDOW (window)->details->vbox),
+			       window->details->toolbar, 1);
 	gtk_widget_show (toolbar);
 
 	nautilus_navigation_window_initialize_toolbars (window);
@@ -244,12 +240,10 @@ nautilus_navigation_window_instance_init
 
 	gtk_widget_show (location_bar);
 
-	gtk_table_attach (GTK_TABLE (NAUTILUS_WINDOW (window)->details->table),
-			  location_bar,
-			  /* X direction */       /* Y direction */
-			  0, 1,                   2, 3,
-			  GTK_EXPAND | GTK_FILL,  0,
-			  0,                      0);
+	gtk_box_pack_start (GTK_BOX (NAUTILUS_WINDOW (window)->details->vbox),
+			    location_bar, FALSE, FALSE, 0);
+	gtk_box_reorder_child (GTK_BOX (NAUTILUS_WINDOW (window)->details->vbox),
+			       location_bar, 2);
 
 	eel_preferences_add_callback_while_alive (NAUTILUS_PREFERENCES_ALWAYS_USE_LOCATION_ENTRY,
 						  always_use_location_entry_changed,
Index: src/nautilus-spatial-window.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-spatial-window.c,v
retrieving revision 1.448
diff -u -p -r1.448 nautilus-spatial-window.c
--- src/nautilus-spatial-window.c	11 Jul 2005 10:23:57 -0000	1.448
+++ src/nautilus-spatial-window.c	11 Jul 2005 19:03:51 -0000
@@ -753,12 +753,11 @@ nautilus_spatial_window_instance_init (N
 
 	window->details->content_box = 
 		gtk_hbox_new (FALSE, 0);
-	gtk_table_attach (GTK_TABLE (NAUTILUS_WINDOW (window)->details->table),
-			  window->details->content_box,
-			  /* X direction */       /* Y direction */
-			  0, 1,                   1, 4,
-			  GTK_EXPAND | GTK_FILL,  GTK_EXPAND | GTK_FILL,
-			  0,                      0);
+	gtk_box_pack_start (GTK_BOX (NAUTILUS_WINDOW (window)->details->vbox),
+			    window->details->content_box, TRUE, TRUE, 0);
+	gtk_box_reorder_child (GTK_BOX (NAUTILUS_WINDOW (window)->details->vbox),
+			       window->details->content_box, 1);
+
 	gtk_widget_show (window->details->content_box);
 
 	window->details->location_button = gtk_button_new ();
Index: src/nautilus-window.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-window.c,v
retrieving revision 1.452
diff -u -p -r1.452 nautilus-window.c
--- src/nautilus-window.c	11 Jul 2005 10:23:57 -0000	1.452
+++ src/nautilus-window.c	11 Jul 2005 19:03:51 -0000
@@ -137,7 +137,7 @@ icons_changed_callback (GObject *factory
 static void
 nautilus_window_init (NautilusWindow *window)
 {
-	GtkWidget *table;
+	GtkWidget *vbox;
 	GtkWidget *menu;
 	GtkWidget *statusbar;
       
@@ -148,20 +148,15 @@ nautilus_window_init (NautilusWindow *wi
 	/* Set initial window title */
 	gtk_window_set_title (GTK_WINDOW (window), _("Nautilus"));
 
-	table = gtk_table_new (1, 5, FALSE);
-	window->details->table = table;
-	gtk_widget_show (table);
-	gtk_container_add (GTK_CONTAINER (window), table);
+	vbox = gtk_vbox_new (FALSE, 0);
+	window->details->vbox = vbox;
+	gtk_widget_show (vbox);
+	gtk_container_add (GTK_CONTAINER (window), vbox);
 
 
 	statusbar = gtk_statusbar_new ();
 	window->details->statusbar = statusbar;
-	gtk_table_attach (GTK_TABLE (table),
-			  statusbar,
-			  /* X direction */       /* Y direction */
-			  0, 1,                   4, 5,
-			  GTK_EXPAND | GTK_FILL,  0,
-			  0,                      0);
+	gtk_box_pack_end (GTK_BOX (vbox), statusbar, FALSE, FALSE, 0);
 	window->details->help_message_cid = gtk_statusbar_get_context_id
 		(GTK_STATUSBAR (statusbar), "help_message");
 	gtk_widget_show (statusbar);
@@ -171,13 +166,8 @@ nautilus_window_init (NautilusWindow *wi
 	menu = gtk_ui_manager_get_widget (window->details->ui_manager, "/MenuBar");
 	window->details->menubar = menu;
 	gtk_widget_show (menu);
-	gtk_table_attach (GTK_TABLE (table),
-			  menu, 
-			  /* X direction */          /* Y direction */
-			  0, 1,                      0, 1,
-			  GTK_EXPAND | GTK_FILL,     0,
-			  0,                         0);
-
+	gtk_box_pack_start (GTK_BOX (vbox), menu, FALSE, FALSE, 0);
+	gtk_box_reorder_child (GTK_BOX (vbox), menu, 0);
 	
 	/* Register IconFactory callback to update the window border icon
 	 * when the icon-theme is changed.

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil



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