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