Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37725216
en ru br
Репозитории ALT
5.1: 2.5-alt1
4.1: 2.5-alt1
4.0: 2.5-alt1
www.altlinux.org/Changes

Группа :: Графические оболочки/Прочее
Пакет: rox-base

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: rox-2.3-workplace.patch
Скачать


diff -Nru rox-2.3-orig/ROX-Filer/src/collection.c rox-2.3/ROX-Filer/src/collection.c
--- rox-2.3-orig/ROX-Filer/src/collection.c	2005-07-31 22:04:53 +0300
+++ rox-2.3/ROX-Filer/src/collection.c	2005-08-13 13:52:25 +0300
@@ -134,6 +134,35 @@
 static gint collection_scroll_event(GtkWidget *widget, GdkEventScroll *event);
 static int collection_get_rows(const Collection *collection);
 static int collection_get_cols(const Collection *collection);
+/* treat items listed in .hidden as dotfiles */
+int hide_item(const FilerWindow *filer_window, const gchar *leafname);
+
+int hide_item(const FilerWindow *filer_window, const gchar *leafname)
+{
+//	if (filer_window->show_hidden)
+//	    return(0);
+	if (leafname[0] == '.')
+	    return(1);	
+
+	FILE *f_hidden;
+	if ((f_hidden = fopen(g_strconcat(filer_window->real_path, "/.hidden", NULL), "r")) ) 
+	{
+	    gchar str_hidden[64];
+	    while (fgets(str_hidden, 64, f_hidden))
+	    {
+		if (strncmp(str_hidden, leafname, strlen(str_hidden)-1) == 0) 
+		{
+		    fclose(f_hidden);
+		    return(1);
+		}
+	    }
+	    fclose(f_hidden);
+	}
+		
+	return(0);		
+}
+
+
 
 
 /* The number of rows, at least 1.  */
diff -Nru rox-2.3-orig/ROX-Filer/src/global.h rox-2.3/ROX-Filer/src/global.h
--- rox-2.3-orig/ROX-Filer/src/global.h	2005-08-13 12:09:53 +0300
+++ rox-2.3/ROX-Filer/src/global.h	2005-08-13 13:40:33 +0300
@@ -187,6 +187,7 @@
 #define ROX_STOCK_SELECT  "rox-select"
 #define ROX_STOCK_MOUNT  "rox-mount"
 #define ROX_STOCK_MOUNTED  "rox-mounted"
+#define ROX_STOCK_WORKPLACE "rox-workplace"
 #define ROX_STOCK_BOOKMARKS GTK_STOCK_JUMP_TO
 
 #include <libxml/tree.h>
diff -Nru rox-2.3-orig/ROX-Filer/src/menu.c rox-2.3/ROX-Filer/src/menu.c
--- rox-2.3-orig/ROX-Filer/src/menu.c	2005-08-13 12:13:08 +0300
+++ rox-2.3/ROX-Filer/src/menu.c	2005-08-13 13:42:26 +0300
@@ -147,6 +147,7 @@
 
 static void open_parent_same(gpointer data, guint action, GtkWidget *widget);
 static void open_parent(gpointer data, guint action, GtkWidget *widget);
+static void root_directory(gpointer data, guint action, GtkWidget *widget);
 static void home_directory(gpointer data, guint action, GtkWidget *widget);
 static void show_bookmarks(gpointer data, guint action, GtkWidget *widget);
 static void new_window(gpointer data, guint action, GtkWidget *widget);
@@ -236,6 +237,7 @@
 {">" N_("Parent, New Window"), 	NULL, open_parent, 0, "<StockItem>", GTK_STOCK_GO_UP},
 {">" N_("Parent, Same Window"), NULL, open_parent_same, 0, NULL},
 {">" N_("New Window"),		NULL, new_window, 0, NULL},
+{">" N_("Dateisystem"),		NULL, root_directory, 0, "<StockItem>", ROX_STOCK_WORKPLACE},
 {">" N_("Home Directory"),	"<Ctrl>Home", home_directory, 0, "<StockItem>", GTK_STOCK_HOME},
 {">" N_("Show Bookmarks"),	"<Ctrl>B", show_bookmarks, 0, "<StockItem>", ROX_STOCK_BOOKMARKS},
 {">" N_("Follow Symbolic Links"),	NULL, follow_symlinks, 0, NULL},
@@ -1725,6 +1727,14 @@
 	filer_change_to(window_with_focus, home_dir, NULL);
 }
 
+static void root_directory(gpointer data, guint action, GtkWidget *widget)
+{
+	g_return_if_fail(window_with_focus != NULL);
+
+	filer_change_to(window_with_focus, "/", NULL);
+}
+
+
 static void show_bookmarks(gpointer data, guint action, GtkWidget *widget)
 {
 	g_return_if_fail(window_with_focus != NULL);
diff -Nru rox-2.3-orig/ROX-Filer/src/pixmaps.c rox-2.3/ROX-Filer/src/pixmaps.c
--- rox-2.3-orig/ROX-Filer/src/pixmaps.c	2005-08-13 12:15:04 +0300
+++ rox-2.3/ROX-Filer/src/pixmaps.c	2005-08-13 13:43:09 +0300
@@ -106,6 +106,7 @@
 	ROX_STOCK_SELECT,
 	ROX_STOCK_MOUNT,
 	ROX_STOCK_MOUNTED,
+	ROX_STOCK_WORKPLACE
 };
 
 static GtkIconSize mount_icon_size = -1;
diff -Nru rox-2.3-orig/ROX-Filer/src/toolbar.c rox-2.3/ROX-Filer/src/toolbar.c
--- rox-2.3-orig/ROX-Filer/src/toolbar.c	2005-08-01 10:10:20 +0300
+++ rox-2.3/ROX-Filer/src/toolbar.c	2005-08-13 13:45:35 +0300
@@ -46,7 +46,7 @@
 
 typedef struct _Tool Tool;
 
-typedef enum {DROP_NONE, DROP_TO_PARENT, DROP_TO_HOME, DROP_BOOKMARK} DropDest;
+typedef enum {DROP_NONE, DROP_TO_PARENT, DROP_TO_WORKPLACE, DROP_TO_HOME, DROP_BOOKMARK} DropDest;
 
 struct _Tool {
 	const gchar	*label;
@@ -74,6 +74,7 @@
 /* Static prototypes */
 static void toolbar_close_clicked(GtkWidget *widget, FilerWindow *filer_window);
 static void toolbar_up_clicked(GtkWidget *widget, FilerWindow *filer_window);
+static void toolbar_workplace_clicked(GtkWidget *widget, FilerWindow *filer_window);
 static void toolbar_home_clicked(GtkWidget *widget, FilerWindow *filer_window);
 static void toolbar_bookmarks_clicked(GtkWidget *widget,
 				      FilerWindow *filer_window);
@@ -123,6 +124,10 @@
 	{N_("Home"), GTK_STOCK_HOME, N_("Change to home directory"),
 	 toolbar_home_clicked, DROP_TO_HOME, TRUE,
 	 FALSE},
+
+	 {N_("Dateisystem"), ROX_STOCK_WORKPLACE, N_("Dateisystem"),
+	 toolbar_workplace_clicked, DROP_TO_WORKPLACE, TRUE,
+	 FALSE},
 	
 	{N_("Bookmarks"), ROX_STOCK_BOOKMARKS, N_("Bookmarks menu"),
 	 toolbar_bookmarks_clicked, DROP_BOOKMARK, FALSE,
@@ -316,6 +321,20 @@
 	gdk_event_free(event);
 }
 
+static void toolbar_workplace_clicked(GtkWidget *widget, FilerWindow *filer_window)
+{
+	GdkEvent	*event;
+
+	event = gtk_get_current_event();
+	if (event->type == GDK_BUTTON_RELEASE && NEW_WIN_BUTTON(event))
+	{
+		filer_opendir("/", filer_window, NULL);
+	}
+	else
+		filer_change_to(filer_window, "/", NULL);
+}
+
+
 static void toolbar_home_clicked(GtkWidget *widget, FilerWindow *filer_window)
 {
 	GdkEvent	*event;
@@ -691,7 +710,10 @@
 			action = GDK_ACTION_ASK;
 	}
 
-	if (dest == DROP_TO_HOME)
+	if (dest == DROP_TO_WORKPLACE)
+		g_dataset_set_data(context, "drop_dest_path",
+				   (gchar *) "/");
+	else if (dest == DROP_TO_HOME)		
 		g_dataset_set_data(context, "drop_dest_path",
 				   (gchar *) home_dir);
 	else if (dest == DROP_BOOKMARK)
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin