summaryrefslogtreecommitdiff
path: root/src/nautilus-window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nautilus-window.c')
-rw-r--r--src/nautilus-window.c52
1 files changed, 34 insertions, 18 deletions
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index 187f66a9b..aa0e5bba4 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -44,11 +44,11 @@
#include <eel/eel-debug.h>
#include <eel/eel-gdk-extensions.h>
#include <eel/eel-gdk-pixbuf-extensions.h>
-#include <eel/eel-generous-bin.h>
#include <eel/eel-gtk-extensions.h>
#include <eel/eel-gtk-macros.h>
#include <eel/eel-stock-dialogs.h>
#include <eel/eel-string.h>
+#include <eel/eel-vfs-extensions.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gdk/gdkx.h>
#include <gtk/gtkmain.h>
@@ -354,7 +354,7 @@ nautilus_window_go_to (NautilusWindow *window, const char *uri)
}
void
-nautilus_window_go_up (NautilusWindow *window)
+nautilus_window_go_up (NautilusWindow *window, gboolean close_behind)
{
GnomeVFSURI *current_uri;
GnomeVFSURI *parent_uri;
@@ -379,7 +379,7 @@ nautilus_window_go_up (NautilusWindow *window)
selection = g_list_prepend (NULL, g_strdup (window->details->location));
- nautilus_window_open_location_with_selection (window, parent_uri_string, selection);
+ nautilus_window_open_location_with_selection (window, parent_uri_string, selection, close_behind);
g_free (parent_uri_string);
eel_g_list_free_deep (selection);
@@ -523,7 +523,8 @@ set_initial_window_geometry (NautilusWindow *window)
{
GdkScreen *screen;
guint max_width_for_screen, max_height_for_screen;
-
+ guint default_width, default_height;
+
screen = gtk_window_get_screen (GTK_WINDOW (window));
/* Don't let GTK determine the minimum size
@@ -550,11 +551,14 @@ set_initial_window_geometry (NautilusWindow *window)
max_width_for_screen),
MIN (NAUTILUS_WINDOW_MIN_HEIGHT,
max_height_for_screen));
-
+
+ EEL_CALL_METHOD (NAUTILUS_WINDOW_CLASS, window,
+ get_default_size, (window, &default_width, &default_height));
+
gtk_window_set_default_size (GTK_WINDOW (window),
- MIN (NAUTILUS_WINDOW_DEFAULT_WIDTH,
+ MIN (default_width,
max_width_for_screen),
- MIN (NAUTILUS_WINDOW_DEFAULT_HEIGHT,
+ MIN (default_height,
max_height_for_screen));
}
@@ -747,6 +751,9 @@ nautilus_window_close (NautilusWindow *window)
{
g_return_if_fail (NAUTILUS_IS_WINDOW (window));
+ EEL_CALL_METHOD (NAUTILUS_WINDOW_CLASS, window,
+ close, (window));
+
gtk_widget_destroy (GTK_WIDGET (window));
}
@@ -1126,27 +1133,29 @@ compute_default_title (const char *text_uri)
{
NautilusFile *file;
char *title;
-
- if (text_uri == NULL) {
+ char *canonical_uri;
+
+ canonical_uri = eel_make_uri_canonical (text_uri);
+
+ if (canonical_uri == NULL) {
title = g_strdup ("");
- } else if (strcmp (text_uri, "computer://") == 0 ||
- strcmp (text_uri, "computer:///") == 0) {
+ } else if (strcmp (canonical_uri, "computer:///") == 0 ) {
title = g_strdup (_("Computer"));
- } else if (strcmp (text_uri, "network://") == 0 ||
- strcmp (text_uri, "network:///") == 0) {
+ } else if (strcmp (canonical_uri, "network:///") == 0 ) {
title = g_strdup (_("Network"));
- } else if (strcmp (text_uri, "fonts://") == 0 ||
- strcmp (text_uri, "fonts:///") == 0) {
+ } else if (strcmp (canonical_uri, "fonts:///") == 0 ) {
title = g_strdup (_("Fonts"));
- } else if (strcmp (text_uri, "burn://") == 0 ||
- strcmp (text_uri, "burn:///") == 0) {
+ } else if (strcmp (canonical_uri, "themes:///") == 0 ) {
+ title = g_strdup (_("Themes"));
+ } else if (strcmp (canonical_uri, "burn:///") == 0 ) {
title = g_strdup (_("CD Creator"));
} else {
file = nautilus_file_get (text_uri);
title = nautilus_file_get_display_name (file);
nautilus_file_unref (file);
}
-
+
+ g_free (canonical_uri);
return title;
}
@@ -1385,11 +1394,18 @@ nautilus_window_set_viewed_file (NautilusWindow *window,
cancel_chose_component_callback (window);
if (window->details->viewed_file != NULL) {
+ if (NAUTILUS_IS_SPATIAL_WINDOW (window)) {
+ nautilus_file_set_has_open_window (window->details->viewed_file,
+ FALSE);
+ }
nautilus_file_monitor_remove (window->details->viewed_file,
window);
}
if (file != NULL) {
+ if (NAUTILUS_IS_SPATIAL_WINDOW (window)) {
+ nautilus_file_set_has_open_window (file, TRUE);
+ }
attributes = NAUTILUS_FILE_ATTRIBUTE_DISPLAY_NAME;
nautilus_file_monitor_add (file, window, attributes);
}