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