- Update to 2.23.3
This commit is contained in:
parent
75d719e0c0
commit
fde975600e
@ -1 +1 @@
|
||||
nautilus-2.23.2.tar.bz2
|
||||
nautilus-2.23.3.tar.bz2
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: src/file-manager/fm-properties-window.c
|
||||
===================================================================
|
||||
--- src/file-manager/fm-properties-window.c (revision 14082)
|
||||
--- src/file-manager/fm-properties-window.c (revision 14227)
|
||||
+++ src/file-manager/fm-properties-window.c (working copy)
|
||||
@@ -102,6 +102,10 @@
|
||||
@@ -83,6 +83,10 @@
|
||||
#define FREE_FILL_B (0.811764706 * 65535)
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
#define PREVIEW_IMAGE_WIDTH 96
|
||||
|
||||
#define ROW_PAD 6
|
||||
@@ -143,12 +147,15 @@
|
||||
@@ -125,12 +129,15 @@
|
||||
unsigned int owner_change_timeout;
|
||||
|
||||
GList *permission_buttons;
|
||||
@ -30,7 +30,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
GList *mime_list;
|
||||
|
||||
gboolean deep_count_finished;
|
||||
@@ -242,6 +249,10 @@
|
||||
@@ -217,6 +224,10 @@
|
||||
GtkComboBox *combo);
|
||||
static void value_field_update (FMPropertiesWindow *window,
|
||||
GtkLabel *field);
|
||||
@ -41,23 +41,23 @@ Index: src/file-manager/fm-properties-window.c
|
||||
static void properties_window_update (FMPropertiesWindow *window,
|
||||
GList *files);
|
||||
static void is_directory_ready_callback (NautilusFile *file,
|
||||
@@ -272,9 +283,36 @@
|
||||
@@ -246,10 +257,36 @@
|
||||
const char *initial_text);
|
||||
|
||||
static GtkWidget* create_pie_widget (FMPropertiesWindow *window);
|
||||
|
||||
+
|
||||
+static void attach_selinux_data_edit_field (GtkEntry *entry,
|
||||
+ char *attr_value,
|
||||
+ char *def_attr_value);
|
||||
+ char *attr_value,
|
||||
+ char *def_attr_value);
|
||||
+
|
||||
+#ifdef HAVE_SELINUX
|
||||
+static void attach_selinux_data_popup_field (GtkComboBox *comb,
|
||||
+ char *attr_val,
|
||||
+ char *def_attr_val);
|
||||
+ char *attr_val,
|
||||
+ char *def_attr_val);
|
||||
+#endif
|
||||
|
||||
+
|
||||
+
|
||||
G_DEFINE_TYPE (FMPropertiesWindow, fm_properties_window, GTK_TYPE_WINDOW);
|
||||
G_DEFINE_TYPE (FMPropertiesWindow, fm_properties_window, GTK_TYPE_DIALOG);
|
||||
#define parent_class fm_properties_window_parent_class
|
||||
|
||||
+static void
|
||||
@ -78,7 +78,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
static gboolean
|
||||
is_multi_file_window (FMPropertiesWindow *window)
|
||||
{
|
||||
@@ -295,6 +333,111 @@
|
||||
@@ -270,6 +307,111 @@
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -190,7 +190,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
static int
|
||||
get_not_gone_original_file_count (FMPropertiesWindow *window)
|
||||
{
|
||||
@@ -527,7 +670,7 @@
|
||||
@@ -502,7 +644,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
@ -199,7 +199,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
exactly_one = uris[0] != NULL && (uris[1] == NULL || uris[1][0] == '\0');
|
||||
|
||||
|
||||
@@ -671,11 +814,7 @@
|
||||
@@ -651,11 +793,7 @@
|
||||
* currently showing. This causes minimal ripples (e.g.
|
||||
* selection change).
|
||||
*/
|
||||
@ -212,7 +212,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -751,7 +890,6 @@
|
||||
@@ -735,7 +873,6 @@
|
||||
name_field_restore_original_name (NautilusEntry *name_field)
|
||||
{
|
||||
const char *original_name;
|
||||
@ -220,7 +220,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
|
||||
original_name = (const char *) g_object_get_data (G_OBJECT (name_field),
|
||||
"original_name");
|
||||
@@ -760,14 +898,8 @@
|
||||
@@ -744,14 +881,8 @@
|
||||
return;
|
||||
}
|
||||
|
||||
@ -236,7 +236,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1229,6 +1361,14 @@
|
||||
@@ -1213,6 +1344,14 @@
|
||||
for (l = window->details->value_fields; l != NULL; l = l->next) {
|
||||
value_field_update (window, GTK_LABEL (l->data));
|
||||
}
|
||||
@ -251,7 +251,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
}
|
||||
|
||||
mime_list = get_mime_list (window);
|
||||
@@ -1386,6 +1526,164 @@
|
||||
@@ -1383,6 +1522,164 @@
|
||||
window->details->target_files));
|
||||
}
|
||||
|
||||
@ -416,7 +416,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
static GtkLabel *
|
||||
attach_label (GtkTable *table,
|
||||
int row,
|
||||
@@ -1440,6 +1738,47 @@
|
||||
@@ -1437,6 +1734,47 @@
|
||||
return attach_label (table, row, column, initial_text, FALSE, FALSE, FALSE, TRUE, FALSE);
|
||||
}
|
||||
|
||||
@ -464,7 +464,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
static GtkLabel *
|
||||
attach_ellipsizing_value_label (GtkTable *table,
|
||||
int row,
|
||||
@@ -1498,6 +1837,649 @@
|
||||
@@ -1495,6 +1833,649 @@
|
||||
FALSE);
|
||||
}
|
||||
|
||||
@ -1114,7 +1114,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
static GtkWidget*
|
||||
attach_ellipsizing_value_field (FMPropertiesWindow *window,
|
||||
GtkTable *table,
|
||||
@@ -2451,7 +3433,38 @@
|
||||
@@ -2448,7 +3429,38 @@
|
||||
return last_row;
|
||||
}
|
||||
|
||||
@ -1153,7 +1153,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
append_title_and_ellipsizing_value (FMPropertiesWindow *window,
|
||||
GtkTable *table,
|
||||
const char *title,
|
||||
@@ -3415,31 +4428,6 @@
|
||||
@@ -3467,31 +4479,6 @@
|
||||
}
|
||||
|
||||
static void
|
||||
@ -1185,7 +1185,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
permission_change_callback (NautilusFile *file,
|
||||
GFile *res_loc,
|
||||
GError *error,
|
||||
@@ -4215,40 +5203,7 @@
|
||||
@@ -4267,40 +5254,7 @@
|
||||
gtk_table_set_row_spacing (table, table->nrows - 1, 18);
|
||||
}
|
||||
|
||||
@ -1226,7 +1226,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
static GHashTable *
|
||||
get_initial_permissions (GList *file_list)
|
||||
{
|
||||
@@ -4587,7 +5542,9 @@
|
||||
@@ -4639,7 +5593,9 @@
|
||||
guint32 file_permission, file_permission_mask;
|
||||
guint32 dir_permission, dir_permission_mask;
|
||||
guint32 vfs_mask, vfs_new_perm, p;
|
||||
@ -1237,7 +1237,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
gboolean active, is_folder, is_special, use_original;
|
||||
GList *l;
|
||||
GtkTreeModel *model;
|
||||
@@ -4631,9 +5588,9 @@
|
||||
@@ -4683,9 +5639,9 @@
|
||||
}
|
||||
/* Simple mode, minus exec checkbox */
|
||||
for (l = window->details->permission_combos; l != NULL; l = l->next) {
|
||||
@ -1249,7 +1249,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -4641,7 +5598,7 @@
|
||||
@@ -4693,7 +5649,7 @@
|
||||
is_folder = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (combo),
|
||||
"is-folder"));
|
||||
|
||||
@ -1258,7 +1258,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
gtk_tree_model_get (model, &iter, 1, &new_perm, 2, &use_original, -1);
|
||||
if (use_original) {
|
||||
continue;
|
||||
@@ -4664,12 +5621,53 @@
|
||||
@@ -4716,12 +5672,53 @@
|
||||
}
|
||||
}
|
||||
|
||||
@ -1312,7 +1312,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
if (nautilus_file_is_directory (file) &&
|
||||
nautilus_file_can_set_permissions (file)) {
|
||||
uri = nautilus_file_get_uri (file);
|
||||
@@ -4680,11 +5678,13 @@
|
||||
@@ -4732,11 +5729,13 @@
|
||||
file_permission_mask,
|
||||
dir_permission,
|
||||
dir_permission_mask,
|
||||
@ -1326,7 +1326,7 @@ Index: src/file-manager/fm-properties-window.c
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -4733,10 +5733,16 @@
|
||||
@@ -4785,10 +5784,16 @@
|
||||
gtk_table_set_row_spacing (page_table, page_table->nrows - 1, 18);
|
||||
|
||||
#ifdef HAVE_SELINUX
|
||||
@ -1349,9 +1349,9 @@ Index: src/file-manager/fm-properties-window.c
|
||||
(window, page_table, _("Last changed:"),
|
||||
Index: src/file-manager/fm-list-view.c
|
||||
===================================================================
|
||||
--- src/file-manager/fm-list-view.c (revision 14082)
|
||||
--- src/file-manager/fm-list-view.c (revision 14227)
|
||||
+++ src/file-manager/fm-list-view.c (working copy)
|
||||
@@ -1366,13 +1366,15 @@
|
||||
@@ -1368,13 +1368,15 @@
|
||||
char *name;
|
||||
char *label;
|
||||
float xalign;
|
||||
@ -1368,7 +1368,7 @@ Index: src/file-manager/fm-list-view.c
|
||||
|
||||
column_num = fm_list_model_add_column (view->details->model,
|
||||
nautilus_column);
|
||||
@@ -1418,6 +1420,8 @@
|
||||
@@ -1420,6 +1422,8 @@
|
||||
} else {
|
||||
cell = gtk_cell_renderer_text_new ();
|
||||
g_object_set (cell, "xalign", xalign, NULL);
|
||||
@ -1379,7 +1379,7 @@ Index: src/file-manager/fm-list-view.c
|
||||
column = gtk_tree_view_column_new_with_attributes (label,
|
||||
Index: src/file-manager/fm-error-reporting.c
|
||||
===================================================================
|
||||
--- src/file-manager/fm-error-reporting.c (revision 14082)
|
||||
--- src/file-manager/fm-error-reporting.c (revision 14227)
|
||||
+++ src/file-manager/fm-error-reporting.c (working copy)
|
||||
@@ -232,6 +232,31 @@
|
||||
g_free (message);
|
||||
@ -1415,7 +1415,7 @@ Index: src/file-manager/fm-error-reporting.c
|
||||
NautilusFileOperationCallback callback;
|
||||
Index: src/file-manager/fm-error-reporting.h
|
||||
===================================================================
|
||||
--- src/file-manager/fm-error-reporting.h (revision 14082)
|
||||
--- src/file-manager/fm-error-reporting.h (revision 14227)
|
||||
+++ src/file-manager/fm-error-reporting.h (working copy)
|
||||
@@ -41,8 +41,11 @@
|
||||
GError *error,
|
||||
@ -1432,7 +1432,7 @@ Index: src/file-manager/fm-error-reporting.h
|
||||
GtkWindow *parent_window);
|
||||
Index: libnautilus-private/nautilus-column-utilities.c
|
||||
===================================================================
|
||||
--- libnautilus-private/nautilus-column-utilities.c (revision 14082)
|
||||
--- libnautilus-private/nautilus-column-utilities.c (revision 14227)
|
||||
+++ libnautilus-private/nautilus-column-utilities.c (working copy)
|
||||
@@ -119,6 +119,7 @@
|
||||
"attribute", "selinux_context",
|
||||
@ -1444,9 +1444,9 @@ Index: libnautilus-private/nautilus-column-utilities.c
|
||||
return columns;
|
||||
Index: libnautilus-private/nautilus-file-operations.c
|
||||
===================================================================
|
||||
--- libnautilus-private/nautilus-file-operations.c (revision 14082)
|
||||
--- libnautilus-private/nautilus-file-operations.c (revision 14227)
|
||||
+++ libnautilus-private/nautilus-file-operations.c (working copy)
|
||||
@@ -66,6 +66,11 @@
|
||||
@@ -64,6 +64,11 @@
|
||||
#include "nautilus-trash-monitor.h"
|
||||
#include "nautilus-file-utilities.h"
|
||||
|
||||
@ -1458,7 +1458,7 @@ Index: libnautilus-private/nautilus-file-operations.c
|
||||
static gboolean confirm_trash_auto_value;
|
||||
|
||||
/* TODO: TESTING!!! */
|
||||
@@ -138,6 +143,7 @@
|
||||
@@ -137,6 +142,7 @@
|
||||
guint32 file_mask;
|
||||
guint32 dir_permissions;
|
||||
guint32 dir_mask;
|
||||
@ -1466,7 +1466,7 @@ Index: libnautilus-private/nautilus-file-operations.c
|
||||
} SetPermissionsJob;
|
||||
|
||||
typedef enum {
|
||||
@@ -4458,6 +4464,10 @@
|
||||
@@ -4689,6 +4695,10 @@
|
||||
job->done_callback (job->done_callback_data);
|
||||
}
|
||||
|
||||
@ -1477,7 +1477,7 @@ Index: libnautilus-private/nautilus-file-operations.c
|
||||
finalize_common ((CommonJob *)job);
|
||||
return FALSE;
|
||||
}
|
||||
@@ -4513,6 +4523,14 @@
|
||||
@@ -4744,6 +4754,14 @@
|
||||
current, G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
|
||||
common->cancellable, NULL);
|
||||
}
|
||||
@ -1492,7 +1492,7 @@ Index: libnautilus-private/nautilus-file-operations.c
|
||||
|
||||
if (!job_aborted (common) &&
|
||||
g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY) {
|
||||
@@ -4576,6 +4594,7 @@
|
||||
@@ -4807,6 +4825,7 @@
|
||||
guint32 file_mask,
|
||||
guint32 dir_permissions,
|
||||
guint32 dir_mask,
|
||||
@ -1500,7 +1500,7 @@ Index: libnautilus-private/nautilus-file-operations.c
|
||||
NautilusOpCallback callback,
|
||||
gpointer callback_data)
|
||||
{
|
||||
@@ -4589,7 +4608,24 @@
|
||||
@@ -4820,7 +4839,24 @@
|
||||
job->dir_mask = dir_mask;
|
||||
job->done_callback = callback;
|
||||
job->done_callback_data = callback_data;
|
||||
@ -1528,9 +1528,9 @@ Index: libnautilus-private/nautilus-file-operations.c
|
||||
NULL,
|
||||
Index: libnautilus-private/nautilus-file-operations.h
|
||||
===================================================================
|
||||
--- libnautilus-private/nautilus-file-operations.h (revision 14082)
|
||||
--- libnautilus-private/nautilus-file-operations.h (revision 14227)
|
||||
+++ libnautilus-private/nautilus-file-operations.h (working copy)
|
||||
@@ -84,6 +84,7 @@
|
||||
@@ -83,6 +83,7 @@
|
||||
guint32 file_mask,
|
||||
guint32 folder_permissions,
|
||||
guint32 folder_mask,
|
||||
@ -1540,9 +1540,9 @@ Index: libnautilus-private/nautilus-file-operations.h
|
||||
|
||||
Index: libnautilus-private/nautilus-file.c
|
||||
===================================================================
|
||||
--- libnautilus-private/nautilus-file.c (revision 14082)
|
||||
--- libnautilus-private/nautilus-file.c (revision 14227)
|
||||
+++ libnautilus-private/nautilus-file.c (working copy)
|
||||
@@ -1637,7 +1637,7 @@
|
||||
@@ -1638,7 +1638,7 @@
|
||||
file->details->is_mountpoint = is_mountpoint;
|
||||
|
||||
has_permissions = g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_UNIX_MODE);
|
||||
@ -1551,7 +1551,7 @@ Index: libnautilus-private/nautilus-file.c
|
||||
if (file->details->has_permissions != has_permissions ||
|
||||
file->details->permissions != permissions) {
|
||||
changed = TRUE;
|
||||
@@ -1798,6 +1798,7 @@
|
||||
@@ -1799,6 +1799,7 @@
|
||||
}
|
||||
eel_ref_str_unref (file->details->mime_type);
|
||||
file->details->mime_type = eel_ref_str_get_unique (mime_type);
|
||||
@ -1559,7 +1559,7 @@ Index: libnautilus-private/nautilus-file.c
|
||||
|
||||
selinux_context = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_SELINUX_CONTEXT);
|
||||
if (eel_strcmp (file->details->selinux_context, selinux_context) != 0) {
|
||||
@@ -4233,7 +4234,7 @@
|
||||
@@ -4260,7 +4261,7 @@
|
||||
* context
|
||||
* @file: NautilusFile representing the file in question.
|
||||
*
|
||||
@ -1568,7 +1568,7 @@ Index: libnautilus-private/nautilus-file.c
|
||||
*
|
||||
**/
|
||||
char *
|
||||
@@ -4266,6 +4267,114 @@
|
||||
@@ -4293,6 +4294,114 @@
|
||||
return translated;
|
||||
}
|
||||
|
||||
@ -1685,9 +1685,9 @@ Index: libnautilus-private/nautilus-file.c
|
||||
{
|
||||
Index: libnautilus-private/nautilus-file.h
|
||||
===================================================================
|
||||
--- libnautilus-private/nautilus-file.h (revision 14082)
|
||||
--- libnautilus-private/nautilus-file.h (revision 14227)
|
||||
+++ libnautilus-private/nautilus-file.h (working copy)
|
||||
@@ -235,6 +235,7 @@
|
||||
@@ -237,6 +237,7 @@
|
||||
GList * nautilus_file_get_settable_group_names (NautilusFile *file);
|
||||
gboolean nautilus_file_can_get_selinux_context (NautilusFile *file);
|
||||
char * nautilus_file_get_selinux_context (NautilusFile *file);
|
||||
@ -1695,7 +1695,7 @@ Index: libnautilus-private/nautilus-file.h
|
||||
|
||||
/* "Capabilities". */
|
||||
gboolean nautilus_file_can_read (NautilusFile *file);
|
||||
@@ -269,6 +270,10 @@
|
||||
@@ -271,6 +272,10 @@
|
||||
guint32 permissions,
|
||||
NautilusFileOperationCallback callback,
|
||||
gpointer callback_data);
|
||||
@ -1708,7 +1708,7 @@ Index: libnautilus-private/nautilus-file.h
|
||||
NautilusFileOperationCallback callback,
|
||||
Index: libnautilus-extension/nautilus-column.c
|
||||
===================================================================
|
||||
--- libnautilus-extension/nautilus-column.c (revision 14082)
|
||||
--- libnautilus-extension/nautilus-column.c (revision 14227)
|
||||
+++ libnautilus-extension/nautilus-column.c (working copy)
|
||||
@@ -34,6 +34,7 @@
|
||||
PROP_LABEL,
|
||||
@ -1771,7 +1771,7 @@ Index: libnautilus-extension/nautilus-column.c
|
||||
GType
|
||||
Index: libnautilus-extension/nautilus-column.h
|
||||
===================================================================
|
||||
--- libnautilus-extension/nautilus-column.h (revision 14082)
|
||||
--- libnautilus-extension/nautilus-column.h (revision 14227)
|
||||
+++ libnautilus-extension/nautilus-column.h (working copy)
|
||||
@@ -64,6 +64,7 @@
|
||||
* label (string) - the user-visible label for the column
|
@ -1,233 +0,0 @@
|
||||
Index: src/file-manager/fm-directory-view.c
|
||||
===================================================================
|
||||
--- src/file-manager/fm-directory-view.c (revision 14207)
|
||||
+++ src/file-manager/fm-directory-view.c (revision 14208)
|
||||
@@ -8569,6 +8569,40 @@
|
||||
target_uri, item_uris,
|
||||
fm_directory_view_get_containing_window (view));
|
||||
return;
|
||||
+ } else if (copy_action == GDK_ACTION_COPY &&
|
||||
+ nautilus_is_file_roller_installed () &&
|
||||
+ target_file != NULL &&
|
||||
+ nautilus_file_is_archive (target_file)) {
|
||||
+ char *command, *quoted_uri, *tmp;
|
||||
+ const GList *l;
|
||||
+ GdkScreen *screen;
|
||||
+
|
||||
+ /* Handle dropping onto a file-roller archiver file, instead of starting a move/copy */
|
||||
+
|
||||
+ nautilus_file_unref (target_file);
|
||||
+
|
||||
+ quoted_uri = g_shell_quote (target_uri);
|
||||
+ command = g_strconcat ("file-roller -a ", quoted_uri, NULL);
|
||||
+ g_free (quoted_uri);
|
||||
+
|
||||
+ for (l = item_uris; l != NULL; l = l->next) {
|
||||
+ quoted_uri = g_shell_quote ((char *) l->data);
|
||||
+
|
||||
+ tmp = g_strconcat (command, " ", quoted_uri, NULL);
|
||||
+ g_free (command);
|
||||
+ command = tmp;
|
||||
+
|
||||
+ g_free (quoted_uri);
|
||||
+ }
|
||||
+
|
||||
+ screen = gtk_widget_get_screen (GTK_WIDGET (view));
|
||||
+ if (screen == NULL) {
|
||||
+ screen = gdk_screen_get_default ();
|
||||
+ }
|
||||
+ gdk_spawn_command_line_on_screen (screen, command, NULL);
|
||||
+ g_free (command);
|
||||
+
|
||||
+ return;
|
||||
}
|
||||
nautilus_file_unref (target_file);
|
||||
|
||||
===================================================================
|
||||
--- libnautilus-private/nautilus-dnd.c (revision 14207)
|
||||
+++ libnautilus-private/nautilus-dnd.c (revision 14208)
|
||||
@@ -368,7 +368,7 @@
|
||||
const char *dropped_uri;
|
||||
GFile *target, *dropped;
|
||||
GdkDragAction actions;
|
||||
- NautilusFile *target_file;
|
||||
+ NautilusFile *dropped_file, *target_file;
|
||||
|
||||
if (target_uri_string == NULL) {
|
||||
*action = 0;
|
||||
@@ -389,7 +389,8 @@
|
||||
}
|
||||
|
||||
dropped_uri = ((NautilusDragSelectionItem *)items->data)->uri;
|
||||
- target_file = nautilus_file_get_existing_by_uri (dropped_uri);
|
||||
+ dropped_file = nautilus_file_get_existing_by_uri (dropped_uri);
|
||||
+ target_file = nautilus_file_get_existing_by_uri (target_uri_string);
|
||||
|
||||
/*
|
||||
* Check for trash URI. We do a find_directory for any Trash directory.
|
||||
@@ -402,13 +403,15 @@
|
||||
*action = GDK_ACTION_MOVE;
|
||||
}
|
||||
|
||||
+ nautilus_file_unref (dropped_file);
|
||||
nautilus_file_unref (target_file);
|
||||
return;
|
||||
|
||||
- } else if (target_file != NULL && nautilus_file_is_launcher (target_file)) {
|
||||
+ } else if (dropped_file != NULL && nautilus_file_is_launcher (dropped_file)) {
|
||||
if (actions & GDK_ACTION_MOVE) {
|
||||
*action = GDK_ACTION_MOVE;
|
||||
}
|
||||
+ nautilus_file_unref (dropped_file);
|
||||
nautilus_file_unref (target_file);
|
||||
return;
|
||||
} else if (eel_uri_is_desktop (target_uri_string)) {
|
||||
@@ -419,13 +422,22 @@
|
||||
*action = GDK_ACTION_MOVE;
|
||||
}
|
||||
|
||||
+ g_free (target);
|
||||
+ nautilus_file_unref (dropped_file);
|
||||
nautilus_file_unref (target_file);
|
||||
return;
|
||||
}
|
||||
+ } else if (target_file != NULL && nautilus_file_is_archive (target_file)) {
|
||||
+ *action = GDK_ACTION_COPY;
|
||||
+
|
||||
+ nautilus_file_unref (dropped_file);
|
||||
+ nautilus_file_unref (target_file);
|
||||
+ return;
|
||||
} else {
|
||||
target = g_file_new_for_uri (target_uri_string);
|
||||
}
|
||||
|
||||
+ nautilus_file_unref (dropped_file);
|
||||
nautilus_file_unref (target_file);
|
||||
|
||||
/* Compare the first dropped uri with the target uri for same fs match. */
|
||||
Index: libnautilus-private/nautilus-file-dnd.c
|
||||
===================================================================
|
||||
--- libnautilus-private/nautilus-file-dnd.c (revision 14207)
|
||||
+++ libnautilus-private/nautilus-file-dnd.c (revision 14208)
|
||||
@@ -29,6 +29,7 @@
|
||||
|
||||
#include "nautilus-dnd.h"
|
||||
#include "nautilus-directory.h"
|
||||
+#include "nautilus-file-utilities.h"
|
||||
#include <eel/eel-glib-extensions.h>
|
||||
#include <string.h>
|
||||
|
||||
@@ -60,6 +61,11 @@
|
||||
if (nautilus_file_is_nautilus_link (drop_target_item)) {
|
||||
return TRUE;
|
||||
}
|
||||
+
|
||||
+ if (nautilus_is_file_roller_installed () &&
|
||||
+ nautilus_file_is_archive (drop_target_item)) {
|
||||
+ return TRUE;
|
||||
+ }
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
Index: libnautilus-private/nautilus-file.c
|
||||
===================================================================
|
||||
--- libnautilus-private/nautilus-file.c (revision 14207)
|
||||
+++ libnautilus-private/nautilus-file.c (revision 14208)
|
||||
@@ -5936,6 +5936,45 @@
|
||||
return nautilus_file_get_file_type (file) == G_FILE_TYPE_DIRECTORY;
|
||||
}
|
||||
|
||||
+gboolean
|
||||
+nautilus_file_is_archive (NautilusFile *file)
|
||||
+{
|
||||
+ char *mime_type;
|
||||
+ int i;
|
||||
+ static const char * archive_mime_types[] = { "application/x-gtar",
|
||||
+ "application/x-zip",
|
||||
+ "application/x-zip-compressed",
|
||||
+ "application/zip",
|
||||
+ "application/x-zip",
|
||||
+ "application/x-tar",
|
||||
+ "application/x-7z-compressed",
|
||||
+ "application/x-rar",
|
||||
+ "application/x-rar-compressed",
|
||||
+ "application/x-jar",
|
||||
+ "application/x-java-archive",
|
||||
+ "application/x-war",
|
||||
+ "application/x-ear",
|
||||
+ "application/x-arj" };
|
||||
+ /* TODO the following MIME types are ignored until file-roller supports to add
|
||||
+ * files to them via command line:
|
||||
+ * application/x-gzip, application/x-bzip-compressed-tar, application/x-compressed-tar
|
||||
+ */
|
||||
+
|
||||
+ g_return_val_if_fail (file != NULL, FALSE);
|
||||
+
|
||||
+ mime_type = nautilus_file_get_mime_type (file);
|
||||
+ for (i = 0; i < G_N_ELEMENTS (archive_mime_types); i++) {
|
||||
+ if (!strcmp (mime_type, archive_mime_types[i])) {
|
||||
+ g_free (mime_type);
|
||||
+ return TRUE;
|
||||
+ }
|
||||
+ }
|
||||
+ g_free (mime_type);
|
||||
+
|
||||
+ return FALSE;
|
||||
+}
|
||||
+
|
||||
+
|
||||
/**
|
||||
* nautilus_file_is_in_trash
|
||||
*
|
||||
Index: libnautilus-private/nautilus-file.h
|
||||
===================================================================
|
||||
--- libnautilus-private/nautilus-file.h (revision 14207)
|
||||
+++ libnautilus-private/nautilus-file.h (revision 14208)
|
||||
@@ -181,6 +181,7 @@
|
||||
gboolean nautilus_file_is_nautilus_link (NautilusFile *file);
|
||||
gboolean nautilus_file_is_executable (NautilusFile *file);
|
||||
gboolean nautilus_file_is_directory (NautilusFile *file);
|
||||
+gboolean nautilus_file_is_archive (NautilusFile *file);
|
||||
gboolean nautilus_file_is_in_trash (NautilusFile *file);
|
||||
gboolean nautilus_file_is_in_desktop (NautilusFile *file);
|
||||
gboolean nautilus_file_is_home (NautilusFile *file);
|
||||
Index: libnautilus-private/nautilus-file-utilities.c
|
||||
===================================================================
|
||||
--- libnautilus-private/nautilus-file-utilities.c (revision 14207)
|
||||
+++ libnautilus-private/nautilus-file-utilities.c (revision 14208)
|
||||
@@ -959,6 +959,22 @@
|
||||
return NULL;
|
||||
}
|
||||
|
||||
+gboolean
|
||||
+nautilus_is_file_roller_installed (void)
|
||||
+{
|
||||
+ static int installed = - 1;
|
||||
+
|
||||
+ if (installed < 0) {
|
||||
+ if (g_find_program_in_path ("file-roller")) {
|
||||
+ installed = 1;
|
||||
+ } else {
|
||||
+ installed = 0;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return installed > 0 ? TRUE : FALSE;
|
||||
+}
|
||||
+
|
||||
#if !defined (NAUTILUS_OMIT_SELF_CHECK)
|
||||
|
||||
void
|
||||
Index: libnautilus-private/nautilus-file-utilities.h
|
||||
===================================================================
|
||||
--- libnautilus-private/nautilus-file-utilities.h (revision 14207)
|
||||
+++ libnautilus-private/nautilus-file-utilities.h (revision 14208)
|
||||
@@ -79,6 +79,8 @@
|
||||
/* Locate a file in either the uers directory or the datadir. */
|
||||
char * nautilus_get_data_file_path (const char *partial_path);
|
||||
|
||||
+gboolean nautilus_is_file_roller_installed (void);
|
||||
+
|
||||
/* Return an allocated file name that is guranteed to be unique, but
|
||||
* tries to make the name readable to users.
|
||||
* This isn't race-free, so don't use for security-related things
|
@ -1,51 +0,0 @@
|
||||
Index: libnautilus-private/nautilus-file-operations.c
|
||||
===================================================================
|
||||
--- libnautilus-private/nautilus-file-operations.c (revision 14109)
|
||||
+++ libnautilus-private/nautilus-file-operations.c (working copy)
|
||||
@@ -4651,15 +4651,45 @@
|
||||
gpointer done_callback_data)
|
||||
{
|
||||
GList *locations;
|
||||
+ GList *p;
|
||||
GFile *dest, *src_dir;
|
||||
GtkWindow *parent_window;
|
||||
-
|
||||
+ gboolean target_is_mapping;
|
||||
+ gboolean have_nonmapping_source;
|
||||
+ gboolean have_nonlocal_source;
|
||||
+ char *file_scheme;
|
||||
+
|
||||
dest = NULL;
|
||||
+ target_is_mapping = FALSE;
|
||||
+ have_nonlocal_source = FALSE;
|
||||
+ have_nonmapping_source = FALSE;
|
||||
+
|
||||
if (target_dir) {
|
||||
dest = g_file_new_for_uri (target_dir);
|
||||
+ if (strncmp (target_dir, "burn", 4) == 0) {
|
||||
+ target_is_mapping = TRUE;
|
||||
+ }
|
||||
}
|
||||
locations = location_list_from_uri_list (item_uris);
|
||||
+
|
||||
+ for (p = location_list_from_uri_list (item_uris); p != NULL; p = p->next) {
|
||||
+ file_scheme = g_file_get_uri_scheme ((GFile *)p->data);
|
||||
|
||||
+ if (strcmp (file_scheme, "file") != 0) {
|
||||
+ have_nonlocal_source = TRUE;
|
||||
+ }
|
||||
+
|
||||
+ if (strcmp (file_scheme, "burn") != 0) {
|
||||
+ have_nonmapping_source = TRUE;
|
||||
+ }
|
||||
+
|
||||
+ g_free (file_scheme);
|
||||
+ }
|
||||
+
|
||||
+ if (target_is_mapping && have_nonmapping_source && !have_nonlocal_source && (copy_action == GDK_ACTION_COPY || copy_action == GDK_ACTION_MOVE)) {
|
||||
+ copy_action = GDK_ACTION_COPY;
|
||||
+ }
|
||||
+
|
||||
parent_window = NULL;
|
||||
if (parent_view) {
|
||||
parent_window = (GtkWindow *)gtk_widget_get_ancestor (parent_view, GTK_TYPE_WINDOW);
|
@ -2,7 +2,8 @@
|
||||
%define pango_version 1.1.3
|
||||
%define gtk2_version 2.11.6
|
||||
%define libgnomeui_version 2.6.0
|
||||
%define eel2_version 2.23.1
|
||||
%define libgnome_version 2.23.0
|
||||
%define eel2_version 2.23.2
|
||||
%define gnome_icon_theme_version 1.1.5
|
||||
%define libxml2_version 2.4.20
|
||||
%define gail_version 0.17-2
|
||||
@ -18,8 +19,8 @@
|
||||
|
||||
Name: nautilus
|
||||
Summary: Nautilus is a file manager for GNOME
|
||||
Version: 2.23.2
|
||||
Release: 3%{?dist}
|
||||
Version: 2.23.3
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2+
|
||||
Group: User Interface/Desktops
|
||||
Source: http://download.gnome.org/sources/%{name}/2.23/%{name}-%{version}.tar.bz2
|
||||
@ -42,6 +43,7 @@ PreReq: scrollkeeper >= 0.1.4
|
||||
BuildRequires: glib2-devel >= %{glib2_version}
|
||||
BuildRequires: pango-devel >= %{pango_version}
|
||||
BuildRequires: gtk2-devel >= %{gtk2_version}
|
||||
BuildRequires: libgnome-devel >= %{libgnome_version}
|
||||
BuildRequires: libgnomeui-devel >= %{libgnomeui_version}
|
||||
BuildRequires: libxml2-devel >= %{libxml2_version}
|
||||
BuildRequires: eel2-devel >= %{eel2_version}
|
||||
@ -78,7 +80,7 @@ Obsoletes: nautilus-media
|
||||
Patch1: nautilus-2.5.7-rhconfig.patch
|
||||
Patch3: background-no-delay.patch
|
||||
|
||||
Patch5: nautilus-2.22.2-selinux.diff
|
||||
Patch5: nautilus-2.23.3-selinux.diff
|
||||
|
||||
# Why is this not upstream ?
|
||||
Patch6: nautilus-2.22.1-dynamic-search.patch
|
||||
@ -91,18 +93,12 @@ Patch10: nautilus-gvfs-desktop-key.patch
|
||||
# http://bugzilla.gnome.org/show_bug.cgi?id=528675
|
||||
Patch11: nautilus-fix-open-folder.patch
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=443944
|
||||
Patch12: nautilus-cd-burner-move-workaround.patch
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=444639
|
||||
Patch14: nautilus-2.22-default-to-asking.patch
|
||||
|
||||
# http://bugzilla.gnome.org/show_bug.cgi?id=171655
|
||||
Patch15: nautilus-2.22.0-treeview-xds-dnd.patch
|
||||
|
||||
# http://bugzilla.gnome.org/show_bug.cgi?id=377157
|
||||
Patch16: nautilus-DnD-to-fileroller.patch
|
||||
|
||||
# http://bugzilla.gnome.org/show_bug.cgi?id=519743
|
||||
Patch17: nautilus-filetype-symlink-fix.patch
|
||||
|
||||
@ -140,13 +136,11 @@ for writing nautilus extensions.
|
||||
%patch5 -p0 -b .selinux
|
||||
%patch6 -p1 -b .dynamic-search
|
||||
%patch7 -p1 -b .rtl-fix
|
||||
%patch8 -p1 -b .hide-white-screen
|
||||
# %patch8 -p1 -b .hide-white-screen
|
||||
%patch10 -p0 -b .gvfs-desktop-key
|
||||
%patch11 -p1 -b .fix-open-folder
|
||||
%patch12 -p0 -b .cd-burner
|
||||
%patch14 -p1 -b .default-to-asking
|
||||
%patch15 -p1 -b .xds
|
||||
%patch16 -p0 -b .dnd
|
||||
%patch17 -p0 -b .symlink
|
||||
|
||||
%build
|
||||
@ -262,6 +256,9 @@ fi
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Jun 4 2008 Tomas Bzatek <tbzatek@redhat.com> - 2.23.3-1
|
||||
- Update to 2.23.3
|
||||
|
||||
* Fri May 30 2008 Tomas Bzatek <tbzatek@redhat.com> - 2.23.2-3
|
||||
- Add DnD support to drop files onto archive files with help
|
||||
of file-roller (gnomebz #377157)
|
||||
|
Loading…
Reference in New Issue
Block a user