diff -urN -x tags rox-2.0.1.orig/ROX-Filer/src/menu.c rox-2.0.1/ROX-Filer/src/menu.c --- rox-2.0.1.orig/ROX-Filer/src/menu.c 2004-07-29 11:11:06.000000000 +0200 +++ rox-2.0.1/ROX-Filer/src/menu.c 2005-01-26 14:15:56.546954288 +0100 @@ -154,6 +154,7 @@ static void new_window(gpointer data, guint action, GtkWidget *widget); /* static void new_user(gpointer data, guint action, GtkWidget *widget); */ static void close_window(gpointer data, guint action, GtkWidget *widget); +static void close_all_windows(gpointer data, guint action, GtkWidget *widget); static void follow_symlinks(gpointer data, guint action, GtkWidget *widget); /* (action used in this - MiniType) */ @@ -240,6 +241,7 @@ /* {">" N_("New, As User..."), NULL, new_user, 0, NULL}, */ {">" N_("Close Window"), NULL, close_window, 0, "", GTK_STOCK_CLOSE}, +{">" N_("Close All Windows"), "Q", close_all_windows, 0, "", GTK_STOCK_CLOSE}, {">", NULL, NULL, 0, ""}, {">" N_("Enter Path..."), "slash", mini_buffer, MINI_PATH, NULL}, {">" N_("Shell Command..."), NULL, mini_buffer, MINI_SHELL, NULL}, @@ -1661,6 +1663,13 @@ gtk_widget_destroy(window_with_focus->window); } +static void close_all_windows(gpointer data, guint action, GtkWidget *widget) +{ + g_return_if_fail(window_with_focus != NULL); + + filer_close_recursive("/"); +} + static void mini_buffer(gpointer data, guint action, GtkWidget *widget) { MiniType type = (MiniType) action;