diff --git a/nautilus-2.24.0.tar.bz2 b/nautilus-2.24.0.tar.bz2 deleted file mode 100644 index 588b3c7..0000000 --- a/nautilus-2.24.0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:918fa61a4064306660c63a399124fa74af16c7407a5c64af5193a08c9a714fb0 -size 5263812 diff --git a/nautilus-2.24.1.tar.bz2 b/nautilus-2.24.1.tar.bz2 new file mode 100644 index 0000000..a554c8e --- /dev/null +++ b/nautilus-2.24.1.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48f1d25af102d216fdc2ebcd6396ffce963558c119b88730dc02fb1c158fcc4c +size 5330025 diff --git a/nautilus-bnc366100-bgo338933-ignore-foreign-desktop-files.diff b/nautilus-bnc366100-bgo338933-ignore-foreign-desktop-files.diff index 4e78574..9d7199b 100644 --- a/nautilus-bnc366100-bgo338933-ignore-foreign-desktop-files.diff +++ b/nautilus-bnc366100-bgo338933-ignore-foreign-desktop-files.diff @@ -24,10 +24,10 @@ (nautilus_file_should_show): Don't show foreign links in the desktop directory. -Index: nautilus-2.23.4/libnautilus-private/nautilus-directory-async.c +Index: nautilus-2.24.1/libnautilus-private/nautilus-directory-async.c =================================================================== ---- nautilus-2.23.4.orig/libnautilus-private/nautilus-directory-async.c -+++ nautilus-2.23.4/libnautilus-private/nautilus-directory-async.c +--- nautilus-2.24.1.orig/libnautilus-private/nautilus-directory-async.c ++++ nautilus-2.24.1/libnautilus-private/nautilus-directory-async.c @@ -199,7 +199,8 @@ static void link_info_done const char *uri, const char *name, @@ -67,13 +67,13 @@ Index: nautilus-2.23.4/libnautilus-private/nautilus-directory-async.c } @@ -3622,6 +3625,7 @@ link_info_got_data (NautilusDirectory *d { - char *uri, *name, *icon; + char *link_uri, *uri, *name, *icon; gboolean is_launcher; + gboolean is_foreign; nautilus_directory_ref (directory); -@@ -3629,17 +3633,18 @@ link_info_got_data (NautilusDirectory *d +@@ -3629,19 +3633,20 @@ link_info_got_data (NautilusDirectory *d name = NULL; icon = NULL; is_launcher = FALSE; @@ -81,9 +81,11 @@ Index: nautilus-2.23.4/libnautilus-private/nautilus-directory-async.c /* Handle the case where we read the Nautilus link. */ if (result) { - nautilus_link_get_link_info_given_file_contents (file_contents, bytes_read, + link_uri = nautilus_file_get_uri (file); + nautilus_link_get_link_info_given_file_contents (file_contents, bytes_read, link_uri, - &uri, &name, &icon, &is_launcher); + &uri, &name, &icon, &is_launcher, &is_foreign); + g_free (link_uri); } else { /* FIXME bugzilla.gnome.org 42433: We should report this error to the user. */ } @@ -94,7 +96,7 @@ Index: nautilus-2.23.4/libnautilus-private/nautilus-directory-async.c nautilus_file_changed (file); nautilus_file_unref (file); -@@ -3727,7 +3732,7 @@ link_info_start (NautilusDirectory *dire +@@ -3729,7 +3734,7 @@ link_info_start (NautilusDirectory *dire /* If it's not a link we are done. If it is, we need to read it. */ if (!nautilus_style_link) { @@ -103,11 +105,11 @@ Index: nautilus-2.23.4/libnautilus-private/nautilus-directory-async.c } else if (should_read_link_info_sync (file)) { result = g_file_load_contents (location, NULL, &file_contents, &file_size, NULL, NULL); link_info_got_data (directory, file, result, file_size, file_contents); -Index: nautilus-2.23.4/libnautilus-private/nautilus-file-private.h +Index: nautilus-2.24.1/libnautilus-private/nautilus-file-private.h =================================================================== ---- nautilus-2.23.4.orig/libnautilus-private/nautilus-file-private.h -+++ nautilus-2.23.4/libnautilus-private/nautilus-file-private.h -@@ -191,6 +191,7 @@ struct NautilusFileDetails +--- nautilus-2.24.1.orig/libnautilus-private/nautilus-file-private.h ++++ nautilus-2.24.1/libnautilus-private/nautilus-file-private.h +@@ -198,6 +198,7 @@ struct NautilusFileDetails eel_boolean_bit has_open_window : 1; eel_boolean_bit is_launcher : 1; @@ -115,11 +117,11 @@ Index: nautilus-2.23.4/libnautilus-private/nautilus-file-private.h eel_boolean_bit is_symlink : 1; eel_boolean_bit is_mountpoint : 1; eel_boolean_bit is_hidden : 1; -Index: nautilus-2.23.4/libnautilus-private/nautilus-file.c +Index: nautilus-2.24.1/libnautilus-private/nautilus-file.c =================================================================== ---- nautilus-2.23.4.orig/libnautilus-private/nautilus-file.c -+++ nautilus-2.23.4/libnautilus-private/nautilus-file.c -@@ -323,6 +323,7 @@ nautilus_file_clear_info (NautilusFile * +--- nautilus-2.24.1.orig/libnautilus-private/nautilus-file.c ++++ nautilus-2.24.1/libnautilus-private/nautilus-file.c +@@ -332,6 +332,7 @@ nautilus_file_clear_info (NautilusFile * file->details->thumbnailing_failed = FALSE; file->details->is_launcher = FALSE; @@ -127,7 +129,7 @@ Index: nautilus-2.23.4/libnautilus-private/nautilus-file.c file->details->is_symlink = FALSE; file->details->is_hidden = FALSE; file->details->is_backup = FALSE; -@@ -2731,7 +2732,10 @@ nautilus_file_should_show (NautilusFile +@@ -2791,7 +2792,10 @@ nautilus_file_should_show (NautilusFile if (nautilus_file_is_in_trash (file)) { return TRUE; } else { @@ -139,7 +141,7 @@ Index: nautilus-2.23.4/libnautilus-private/nautilus-file.c (show_backup || !nautilus_file_is_backup_file (file)); } } -@@ -3080,6 +3084,12 @@ nautilus_file_is_launcher (NautilusFile +@@ -3196,6 +3200,12 @@ nautilus_file_is_launcher (NautilusFile } gboolean @@ -152,11 +154,11 @@ Index: nautilus-2.23.4/libnautilus-private/nautilus-file.c nautilus_file_has_activation_uri (NautilusFile *file) { return file->details->activation_location != NULL; -Index: nautilus-2.23.4/libnautilus-private/nautilus-file.h +Index: nautilus-2.24.1/libnautilus-private/nautilus-file.h =================================================================== ---- nautilus-2.23.4.orig/libnautilus-private/nautilus-file.h -+++ nautilus-2.23.4/libnautilus-private/nautilus-file.h -@@ -380,6 +380,7 @@ GList *nautilus_file_li +--- nautilus-2.24.1.orig/libnautilus-private/nautilus-file.h ++++ nautilus-2.24.1/libnautilus-private/nautilus-file.h +@@ -397,6 +397,7 @@ GList *nautilus_file_li * Getting this can require reading the contents of the file. */ gboolean nautilus_file_is_launcher (NautilusFile *file); @@ -164,34 +166,35 @@ Index: nautilus-2.23.4/libnautilus-private/nautilus-file.h gboolean nautilus_file_has_activation_uri (NautilusFile *file); char * nautilus_file_get_activation_uri (NautilusFile *file); GFile * nautilus_file_get_activation_location (NautilusFile *file); -Index: nautilus-2.23.4/libnautilus-private/nautilus-link.c +Index: nautilus-2.24.1/libnautilus-private/nautilus-link.c =================================================================== ---- nautilus-2.23.4.orig/libnautilus-private/nautilus-link.c -+++ nautilus-2.23.4/libnautilus-private/nautilus-link.c -@@ -406,16 +406,36 @@ nautilus_link_local_get_link_uri (const +--- nautilus-2.24.1.orig/libnautilus-private/nautilus-link.c ++++ nautilus-2.24.1/libnautilus-private/nautilus-link.c +@@ -430,6 +430,23 @@ nautilus_link_local_get_link_uri (const return retval; } +static gboolean +string_array_contains (char **array, -+ const char *str) ++ const char *str) +{ -+ char **p; -+ -+ if (!array) -+ return FALSE; -+ -+ for (p = array; *p; p++) -+ if (g_ascii_strcasecmp (*p, str) == 0) { -+ return TRUE; -+ } -+ -+ return FALSE; ++ char **p; ++ ++ if (!array) ++ return FALSE; ++ ++ for (p = array; *p; p++) ++ if (g_ascii_strcasecmp (*p, str) == 0) { ++ return TRUE; ++ } ++ ++ return FALSE; +} + void nautilus_link_get_link_info_given_file_contents (const char *file_contents, int link_file_size, +@@ -437,10 +454,13 @@ nautilus_link_get_link_info_given_file_c char **uri, char **name, char **icon, @@ -206,7 +209,7 @@ Index: nautilus-2.23.4/libnautilus-private/nautilus-link.c if (!is_link_data (file_contents, link_file_size)) { return; -@@ -437,7 +457,20 @@ nautilus_link_get_link_info_given_file_c +@@ -464,7 +484,20 @@ nautilus_link_get_link_info_given_file_c gnome_desktop_item_get_string (desktop_file, "Exec") != NULL) { *is_launcher = TRUE; } @@ -228,11 +231,11 @@ Index: nautilus-2.23.4/libnautilus-private/nautilus-link.c gnome_desktop_item_unref (desktop_file); } -Index: nautilus-2.23.4/libnautilus-private/nautilus-link.h +Index: nautilus-2.24.1/libnautilus-private/nautilus-link.h =================================================================== ---- nautilus-2.23.4.orig/libnautilus-private/nautilus-link.h -+++ nautilus-2.23.4/libnautilus-private/nautilus-link.h -@@ -46,7 +46,8 @@ void nautilus_link_get_link_ +--- nautilus-2.24.1.orig/libnautilus-private/nautilus-link.h ++++ nautilus-2.24.1/libnautilus-private/nautilus-link.h +@@ -47,7 +47,8 @@ void nautilus_link_get_link_ char **uri, char **name, char **icon, diff --git a/nautilus-sysadmin-desktop-items.diff b/nautilus-sysadmin-desktop-items.diff index d6a83a6..1f6ee7d 100644 --- a/nautilus-sysadmin-desktop-items.diff +++ b/nautilus-sysadmin-desktop-items.diff @@ -1,98 +1,6 @@ -diff --git a/ChangeLog b/ChangeLog -index df1ed2f..cfacd37 100644 ---- a/ChangeLog -+++ b/ChangeLog -@@ -1,3 +1,90 @@ -+2008-09-18 Federico Mena Quintero -+ -+ * libnautilus-private/nautilus-directory-async.c -+ (directory_load_done): Log when we are done a directory, in the -+ "async" domain. -+ -+2008-09-18 Federico Mena Quintero -+ -+ * libnautilus-private/nautilus-debug-log.c -+ (nautilus_debug_log_with_uri_list): Print "[no files]" when no -+ URIs are specified, so the debug log makes it clear that we had an -+ empty list. -+ (nautilus_debug_log_with_file_list): Likewise. -+ -+2008-09-16 Federico Mena Quintero -+ -+ * libnautilus-private/nautilus-desktop-directory.c -+ (desktop_call_when_ready): Add predefined_items_dir to the -+ merged callback. -+ (MergedCallback): Removed the merged_file_list field. We'll build -+ the final list of combined files once all the directories are done -+ loading. -+ (merged_callback_check_done): Call the user's callback with the -+ final list of combined files. -+ -+2008-09-12 Federico Mena Quintero -+ -+ * libnautilus-private/nautilus-desktop-directory.c (struct -+ NautilusDesktopDirectoryDetails): New fields, files_hash and -+ name_to_file_hash. We store the combined files from the -+ real_directory and the predefined_items_dir in these hashes. -+ (done_loading_callback): Say that the desktop directory is done -+ loading only iff both the real_directory and the -+ predefined_items_dir are done loading. Combine both directories -+ when we get to that situation, so we'll obtain the final list of -+ files that will be shown to the user. -+ (desktop_get_file_list): Return the combined file list (real and -+ predefined items) and the files from desktop links. -+ (desktop_contains_file): Return if the file exists in the list of -+ combined files. -+ (desktop_is_not_empty): Check the files_hash for combined files -+ instead of just the real_directory. -+ -+2008-09-11 Federico Mena Quintero -+ -+ * libnautilus-private/nautilus-desktop-directory.c -+ (load_error_callback): Proxy the load_error signal from the child -+ directories onto the desktop directory. -+ (update_desktop_directory): Connect to load_error on the real directory. -+ (update_predefined_items_dir): Likewise, on the predefined items directory. -+ -+2008-09-11 Federico Mena Quintero -+ -+ * libnautilus-private/nautilus-desktop-directory.c -+ (update_predefined_items_dir): New function; analogous to -+ update_desktop_directory(). Updates the predefined items -+ directory from a real NautilusDirectory. -+ (nautilus_desktop_directory_instance_init): Call -+ update_predefined_items_dir(). -+ (desktop_force_reload): Reload the predefined_items_dir as well. -+ (desktop_are_all_files_seen): Check the predefined_items_dir. -+ (desktop_finalize): Unref the predefined_items_dir. -+ (merged_monitor_destroy): Remove the monitor from the predefined_items_dir. -+ -+2008-09-11 Federico Mena Quintero -+ -+ * libnautilus-private/nautilus-desktop-directory.c -+ (discard_directory): New function; factor out some code from -+ update_desktop_directory(). -+ (update_desktop_directory): Use discard_directory(). -+ -+2008-09-11 Federico Mena Quintero -+ -+ * libnautilus-private/nautilus-debug-log.h -+ (NAUTILUS_DEBUG_LOG_DOMAIN_DESKTOP_ITEMS): New log domain "desktop-items". -+ -+2008-09-11 Federico Mena Quintero -+ -+ * libnautilus-private/apps_nautilus_preferences.schemas.in -+ (/schemas/apps/nautilus/desktop/predefined_items_dir): New schema -+ for the directory for predefined desktop items. Desktop item -+ files in this directory will be shown in the user's desktop. -+ -+ * libnautilus-private/nautilus-global-preferences.h -+ (NAUTILUS_PREFERENCES_DESKTOP_PREDEFINED_ITEMS_DIR): New macro for -+ the GConf key above. -+ - 2008-08-04 Christian Neumair - - * NEWS: +Sysadmin-defined desktop items for Nautilus +http://www.gnome.org/~federico/news-2008-08.html#nautilus-predefined-desktop-items + diff --git a/libnautilus-private/apps_nautilus_preferences.schemas.in b/libnautilus-private/apps_nautilus_preferences.schemas.in index ca45081..c180132 100644 --- a/libnautilus-private/apps_nautilus_preferences.schemas.in @@ -190,7 +98,7 @@ index ad0152e..7ed1af1 100644 void nautilus_debug_log (gboolean is_milestone, const char *domain, const char *format, ...); diff --git a/libnautilus-private/nautilus-desktop-directory.c b/libnautilus-private/nautilus-desktop-directory.c -index 0c5333e..111d09d 100644 +index 0c5333e..b08abef 100644 --- a/libnautilus-private/nautilus-desktop-directory.c +++ b/libnautilus-private/nautilus-desktop-directory.c @@ -24,34 +24,83 @@ @@ -333,7 +241,7 @@ index 0c5333e..111d09d 100644 } static guint -@@ -114,15 +187,19 @@ merged_callback_destroy (MergedCallback *merged_callback) +@@ -114,15 +187,72 @@ merged_callback_destroy (MergedCallback *merged_callback) g_assert (NAUTILUS_IS_DESKTOP_DIRECTORY (merged_callback->desktop_dir)); g_list_free (merged_callback->non_ready_directories); @@ -342,6 +250,59 @@ index 0c5333e..111d09d 100644 } static void ++add_file_from_pair_to_list_cb (gpointer key, gpointer value, gpointer data) ++{ ++ FilePair *pair; ++ GList **list_ptr; ++ NautilusFile *file; ++ ++ pair = value; ++ list_ptr = data; ++ ++ file = pair->predefined_overrides_user ? pair->predefined_file : pair->user_file; ++ nautilus_file_ref (file); ++ ++ *list_ptr = g_list_prepend (*list_ptr, file); ++} ++ ++static GList * ++get_combined_files (NautilusDesktopDirectory *desktop) ++{ ++ GList *combined; ++ ++ combined = NULL; ++ g_hash_table_foreach (desktop->details->name_to_pairs_hash, add_file_from_pair_to_list_cb, &combined); ++ return combined; ++} ++ ++static GList * ++get_desktop_links (NautilusDesktopDirectory *desktop, gboolean include_tentative_files) ++{ ++ if (include_tentative_files) { ++ return nautilus_file_list_copy (NAUTILUS_DIRECTORY (desktop)->details->file_list); ++ } else { ++ /* This is because nautilus-directory.c:real_get_file_list() stripts out the tentative files */ ++ return GNOME_CALL_PARENT_WITH_DEFAULT (NAUTILUS_DIRECTORY_CLASS, get_file_list, (NAUTILUS_DIRECTORY (desktop)), NULL); ++ } ++} ++ ++static GList * ++get_file_list (NautilusDesktopDirectory *desktop, gboolean include_tentative_files) ++{ ++ GList *combined_file_list; ++ GList *file_list_from_desktop_links; ++ ++ combined_file_list = get_combined_files (desktop); ++ ++ file_list_from_desktop_links = get_desktop_links (desktop, include_tentative_files); ++ ++ combined_file_list = g_list_concat (combined_file_list, file_list_from_desktop_links); ++ ++ return combined_file_list; ++ ++} ++ ++static void merged_callback_check_done (MergedCallback *merged_callback) { + NautilusDesktopDirectory *desktop; @@ -355,14 +316,14 @@ index 0c5333e..111d09d 100644 return; } -@@ -130,10 +207,18 @@ merged_callback_check_done (MergedCallback *merged_callback) +@@ -130,10 +260,18 @@ merged_callback_check_done (MergedCallback *merged_callback) g_hash_table_steal (merged_callback->desktop_dir->details->callbacks, merged_callback); /* We are ready, so do the real callback. */ - (* merged_callback->callback) (NAUTILUS_DIRECTORY (merged_callback->desktop_dir), - merged_callback->merged_file_list, + -+ files = desktop_get_file_list (NAUTILUS_DIRECTORY (desktop)); ++ files = get_file_list (NAUTILUS_DIRECTORY (desktop), TRUE); + + nautilus_debug_log_with_file_list (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_DEBUG_DESKTOP_ITEMS, files, + "merged_callback_check_done: we are done; calling callback with files"); @@ -376,7 +337,7 @@ index 0c5333e..111d09d 100644 /* And we are done. */ merged_callback_destroy (merged_callback); } -@@ -144,7 +229,330 @@ merged_callback_remove_directory (MergedCallback *merged_callback, +@@ -144,7 +282,330 @@ merged_callback_remove_directory (MergedCallback *merged_callback, { merged_callback->non_ready_directories = g_list_remove (merged_callback->non_ready_directories, directory); @@ -708,7 +669,7 @@ index 0c5333e..111d09d 100644 } static void -@@ -153,6 +561,8 @@ directory_ready_callback (NautilusDirectory *directory, +@@ -153,6 +614,8 @@ directory_ready_callback (NautilusDirectory *directory, gpointer callback_data) { MergedCallback *merged_callback; @@ -717,7 +678,7 @@ index 0c5333e..111d09d 100644 g_assert (NAUTILUS_IS_DIRECTORY (directory)); g_assert (callback_data != NULL); -@@ -160,13 +570,13 @@ directory_ready_callback (NautilusDirectory *directory, +@@ -160,13 +623,13 @@ directory_ready_callback (NautilusDirectory *directory, merged_callback = callback_data; g_assert (g_list_find (merged_callback->non_ready_directories, directory) != NULL); @@ -735,7 +696,7 @@ index 0c5333e..111d09d 100644 } static void -@@ -179,6 +589,12 @@ desktop_call_when_ready (NautilusDirectory *directory, +@@ -179,6 +642,12 @@ desktop_call_when_ready (NautilusDirectory *directory, NautilusDesktopDirectory *desktop; MergedCallback search_key, *merged_callback; @@ -748,15 +709,17 @@ index 0c5333e..111d09d 100644 desktop = NAUTILUS_DESKTOP_DIRECTORY (directory); /* Check to be sure we aren't overwriting. */ -@@ -194,36 +610,36 @@ desktop_call_when_ready (NautilusDirectory *directory, +@@ -194,36 +663,49 @@ desktop_call_when_ready (NautilusDirectory *directory, merged_callback->desktop_dir = desktop; merged_callback->callback = callback; merged_callback->callback_data = callback_data; - merged_callback->wait_for_attributes = file_attributes; - merged_callback->wait_for_file_list = wait_for_file_list; -- merged_callback->non_ready_directories = g_list_prepend -- (merged_callback->non_ready_directories, directory); + ++ /* The three non-ready directories are ourselves, the real_directory and the predefined_items_dir */ ++ + merged_callback->non_ready_directories = g_list_prepend + (merged_callback->non_ready_directories, directory); merged_callback->non_ready_directories = g_list_prepend (merged_callback->non_ready_directories, desktop->details->real_directory); @@ -784,15 +747,6 @@ index 0c5333e..111d09d 100644 + file_attributes, + TRUE, directory_ready_callback, merged_callback); -- nautilus_directory_call_when_ready_internal -- (directory, -- NULL, -- merged_callback->wait_for_attributes, -- merged_callback->wait_for_file_list, -- directory_ready_callback, -- NULL, -- merged_callback); -- + + if (desktop->details->predefined_items_dir != NULL) { + nautilus_directory_call_when_ready @@ -801,10 +755,22 @@ index 0c5333e..111d09d 100644 + TRUE, + directory_ready_callback, merged_callback); + } ++ + nautilus_directory_call_when_ready_internal + (directory, + NULL, +- merged_callback->wait_for_attributes, +- merged_callback->wait_for_file_list, ++ file_attributes, ++ FALSE, /* ... but the desktop directory doesn't support wait_for_file_list = TRUE */ + directory_ready_callback, + NULL, + merged_callback); +- } static void -@@ -235,6 +651,10 @@ desktop_cancel_callback (NautilusDirectory *directory, +@@ -235,6 +717,10 @@ desktop_cancel_callback (NautilusDirectory *directory, MergedCallback search_key, *merged_callback; GList *node; @@ -815,7 +781,7 @@ index 0c5333e..111d09d 100644 desktop = NAUTILUS_DESKTOP_DIRECTORY (directory); /* Find the entry in the table. */ -@@ -267,15 +687,19 @@ merged_monitor_destroy (MergedMonitor *monitor) +@@ -267,15 +753,19 @@ merged_monitor_destroy (MergedMonitor *monitor) /* Call through to the real directory remove calls. */ nautilus_directory_file_monitor_remove (desktop->details->real_directory, monitor); @@ -838,7 +804,7 @@ index 0c5333e..111d09d 100644 { GList **merged_list; -@@ -285,6 +709,72 @@ build_merged_callback_list (NautilusDirectory *directory, +@@ -285,6 +775,66 @@ build_merged_callback_list (NautilusDirectory *directory, } static void @@ -901,17 +867,11 @@ index 0c5333e..111d09d 100644 + +} + -+static GList * -+get_desktop_links (NautilusDesktopDirectory *desktop) -+{ -+ return GNOME_CALL_PARENT_WITH_DEFAULT (NAUTILUS_DIRECTORY_CLASS, get_file_list, (NAUTILUS_DIRECTORY (desktop)), NULL); -+} -+ +static void desktop_monitor_add (NautilusDirectory *directory, gconstpointer client, gboolean monitor_hidden_files, -@@ -295,7 +785,14 @@ desktop_monitor_add (NautilusDirectory *directory, +@@ -295,7 +845,14 @@ desktop_monitor_add (NautilusDirectory *directory, { NautilusDesktopDirectory *desktop; MergedMonitor *monitor; @@ -927,12 +887,23 @@ index 0c5333e..111d09d 100644 desktop = NAUTILUS_DESKTOP_DIRECTORY (directory); -@@ -315,25 +812,40 @@ desktop_monitor_add (NautilusDirectory *directory, +@@ -315,25 +872,40 @@ desktop_monitor_add (NautilusDirectory *directory, monitor->monitor_backup_files = monitor_backup_files; monitor->monitor_attributes = file_attributes; - /* Call through to the real directory add calls. */ - merged_callback_list = NULL; +- +- /* Call up to real dir */ +- nautilus_directory_file_monitor_add +- (desktop->details->real_directory, monitor, +- monitor_hidden_files, monitor_backup_files, +- file_attributes, +- build_merged_callback_list, &merged_callback_list); +- +- /* Handle the desktop part */ +- merged_callback_list = g_list_concat (merged_callback_list, +- nautilus_file_list_copy (directory->details->file_list)); + /* Call through to the real directories' add calls. */ + + add_file_monitor_and_emit_paired_files (desktop, @@ -955,23 +926,12 @@ index 0c5333e..111d09d 100644 + + /* Call the callback on our desktop links */ -- /* Call up to real dir */ -- nautilus_directory_file_monitor_add -- (desktop->details->real_directory, monitor, -- monitor_hidden_files, monitor_backup_files, -- file_attributes, -- build_merged_callback_list, &merged_callback_list); -- -- /* Handle the desktop part */ -- merged_callback_list = g_list_concat (merged_callback_list, -- nautilus_file_list_copy (directory->details->file_list)); -- - if (callback != NULL) { - (* callback) (directory, merged_callback_list, callback_data); + GList *desktop_link_files; + -+ desktop_link_files = get_desktop_links (desktop); ++ desktop_link_files = get_desktop_links (desktop, TRUE); + + nautilus_debug_log_with_file_list (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_DEBUG_DESKTOP_ITEMS, desktop_link_files, + "desktop_monitor_add: calling callback %p on desktop link files", @@ -984,7 +944,7 @@ index 0c5333e..111d09d 100644 } static void -@@ -342,6 +854,10 @@ desktop_monitor_remove (NautilusDirectory *directory, +@@ -342,6 +914,10 @@ desktop_monitor_remove (NautilusDirectory *directory, { NautilusDesktopDirectory *desktop; MergedMonitor *monitor; @@ -995,7 +955,7 @@ index 0c5333e..111d09d 100644 desktop = NAUTILUS_DESKTOP_DIRECTORY (directory); -@@ -354,55 +870,178 @@ desktop_monitor_remove (NautilusDirectory *directory, +@@ -354,55 +930,143 @@ desktop_monitor_remove (NautilusDirectory *directory, } static void @@ -1133,32 +1093,6 @@ index 0c5333e..111d09d 100644 + result); + + return result; -+} -+ -+static void -+add_file_from_pair_to_list_cb (gpointer key, gpointer value, gpointer data) -+{ -+ FilePair *pair; -+ GList **list_ptr; -+ NautilusFile *file; -+ -+ pair = value; -+ list_ptr = data; -+ -+ file = pair->predefined_overrides_user ? pair->predefined_file : pair->user_file; -+ nautilus_file_ref (file); -+ -+ *list_ptr = g_list_prepend (*list_ptr, file); -+} -+ -+static GList * -+get_combined_files (NautilusDesktopDirectory *desktop) -+{ -+ GList *combined; -+ -+ combined = NULL; -+ g_hash_table_foreach (desktop->details->name_to_pairs_hash, add_file_from_pair_to_list_cb, &combined); -+ return combined; } static GList * @@ -1170,26 +1104,17 @@ index 0c5333e..111d09d 100644 - desktop_dir_file_list = GNOME_CALL_PARENT_WITH_DEFAULT - (NAUTILUS_DIRECTORY_CLASS, get_file_list, (directory), NULL); - return g_list_concat (real_dir_file_list, desktop_dir_file_list); -+ NautilusDesktopDirectory *desktop; -+ GList *combined_file_list; -+ GList *file_list_from_desktop_links; ++ GList *result; + -+ desktop = NAUTILUS_DESKTOP_DIRECTORY (directory); -+ -+ combined_file_list = get_combined_files (desktop); -+ -+ file_list_from_desktop_links = get_desktop_links (desktop); -+ -+ combined_file_list = g_list_concat (combined_file_list, file_list_from_desktop_links); -+ -+ nautilus_debug_log_with_file_list (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_DEBUG_DESKTOP_ITEMS, combined_file_list, ++ result = get_file_list (NAUTILUS_DESKTOP_DIRECTORY (directory), FALSE); ++ nautilus_debug_log_with_file_list (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_DEBUG_DESKTOP_ITEMS, result, + "desktop_get_file_list(): returning list of files"); + -+ return combined_file_list; ++ return result; } NautilusDirectory * -@@ -412,7 +1051,6 @@ nautilus_desktop_directory_get_real_directory (NautilusDesktopDirectory *desktop +@@ -412,7 +1076,6 @@ nautilus_desktop_directory_get_real_directory (NautilusDesktopDirectory *desktop return desktop->details->real_directory; } @@ -1197,7 +1122,7 @@ index 0c5333e..111d09d 100644 static void desktop_finalize (GObject *object) { -@@ -422,39 +1060,431 @@ desktop_finalize (GObject *object) +@@ -422,39 +1085,431 @@ desktop_finalize (GObject *object) nautilus_directory_unref (desktop->details->real_directory); @@ -1237,7 +1162,8 @@ index 0c5333e..111d09d 100644 + +static gboolean +directories_are_done_loading (NautilusDesktopDirectory *desktop) -+{ + { +- nautilus_directory_emit_done_loading (NAUTILUS_DIRECTORY (desktop)); + gboolean real_is_done; + gboolean predefined_is_done; + @@ -1246,8 +1172,8 @@ index 0c5333e..111d09d 100644 + predefined_is_done = (desktop->details->predefined_items_dir == NULL || !desktop->details->predefined_items_dir_pending); + + return real_is_done && predefined_is_done; -+} -+ + } + +static void +emit_pending_callback_cb (gpointer key, gpointer value, gpointer data) +{ @@ -1256,14 +1182,14 @@ index 0c5333e..111d09d 100644 + merged_callback = key; + merged_callback_check_done (merged_callback); +} -+ -+static void -+emit_pending_callbacks (NautilusDesktopDirectory *desktop) - { -- nautilus_directory_emit_done_loading (NAUTILUS_DIRECTORY (desktop)); -+ g_hash_table_foreach (desktop->details->callbacks, emit_pending_callback_cb, desktop); - } + static void +-forward_files_added_cover (NautilusDirectory *real_directory, ++emit_pending_callbacks (NautilusDesktopDirectory *desktop) ++{ ++ g_hash_table_foreach (desktop->details->callbacks, emit_pending_callback_cb, desktop); ++} ++ +static void +done_loading_callback (NautilusDirectory *directory, + NautilusDesktopDirectory *desktop) @@ -1290,9 +1216,8 @@ index 0c5333e..111d09d 100644 + get_debug_dirname (desktop, directory)); + } +} - - static void --forward_files_added_cover (NautilusDirectory *real_directory, ++ ++static void +forward_files_added_cover (NautilusDirectory *directory, GList *files, gpointer callback_data) @@ -1636,7 +1561,7 @@ index 0c5333e..111d09d 100644 } static void -@@ -464,17 +1494,10 @@ update_desktop_directory (NautilusDesktopDirectory *desktop) +@@ -464,17 +1519,10 @@ update_desktop_directory (NautilusDesktopDirectory *desktop) char *desktop_uri; NautilusDirectory *real_directory; @@ -1657,7 +1582,7 @@ index 0c5333e..111d09d 100644 desktop_path = nautilus_get_desktop_directory (); desktop_uri = g_filename_to_uri (desktop_path, NULL, NULL); -@@ -482,6 +1505,8 @@ update_desktop_directory (NautilusDesktopDirectory *desktop) +@@ -482,6 +1530,8 @@ update_desktop_directory (NautilusDesktopDirectory *desktop) g_free (desktop_uri); g_free (desktop_path); @@ -1666,7 +1591,7 @@ index 0c5333e..111d09d 100644 g_signal_connect_object (real_directory, "done_loading", G_CALLBACK (done_loading_callback), desktop, 0); g_signal_connect_object (real_directory, "files_added", -@@ -490,6 +1515,7 @@ update_desktop_directory (NautilusDesktopDirectory *desktop) +@@ -490,6 +1540,7 @@ update_desktop_directory (NautilusDesktopDirectory *desktop) G_CALLBACK (forward_files_changed_cover), desktop, 0); desktop->details->real_directory = real_directory; @@ -1674,7 +1599,7 @@ index 0c5333e..111d09d 100644 } static void -@@ -500,6 +1526,59 @@ desktop_directory_changed_callback (gpointer data) +@@ -500,8 +1551,64 @@ desktop_directory_changed_callback (gpointer data) } static void @@ -1733,8 +1658,13 @@ index 0c5333e..111d09d 100644 +static void nautilus_desktop_directory_instance_init (NautilusDesktopDirectory *desktop) { ++ nautilus_debug_log (TRUE, NAUTILUS_DEBUG_LOG_DOMAIN_DESKTOP_ITEMS, ++ "Creating the NautilusDesktopDirectory"); ++ desktop->details = g_new0 (NautilusDesktopDirectoryDetails, 1); -@@ -510,11 +1589,19 @@ nautilus_desktop_directory_instance_init (NautilusDesktopDirectory *desktop) + + desktop->details->callbacks = g_hash_table_new_full +@@ -510,11 +1617,19 @@ nautilus_desktop_directory_instance_init (NautilusDesktopDirectory *desktop) desktop->details->monitors = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify)merged_monitor_destroy); @@ -1754,6 +1684,50 @@ index 0c5333e..111d09d 100644 } static void +diff --git a/libnautilus-private/nautilus-desktop-icon-file.c b/libnautilus-private/nautilus-desktop-icon-file.c +index 3802dd9..120df10 100644 +--- a/libnautilus-private/nautilus-desktop-icon-file.c ++++ b/libnautilus-private/nautilus-desktop-icon-file.c +@@ -26,6 +26,7 @@ + #include + #include "nautilus-desktop-icon-file.h" + ++#include "nautilus-debug-log.h" + #include "nautilus-directory-notify.h" + #include "nautilus-directory-private.h" + #include "nautilus-file-attributes.h" +@@ -291,6 +292,9 @@ nautilus_desktop_icon_file_new (NautilusDesktopLink *link) + list.prev = NULL; + nautilus_directory_emit_files_added (directory, &list); + ++ nautilus_debug_log_with_file_list (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_DEBUG_DESKTOP_ITEMS, &list, ++ "Created desktop icon file and notified directory:"); ++ + return icon_file; + } + +diff --git a/libnautilus-private/nautilus-desktop-link-monitor.c b/libnautilus-private/nautilus-desktop-link-monitor.c +index 9abdd64..976ccd8 100644 +--- a/libnautilus-private/nautilus-desktop-link-monitor.c ++++ b/libnautilus-private/nautilus-desktop-link-monitor.c +@@ -23,6 +23,7 @@ + */ + + #include ++#include "nautilus-debug-log.h" + #include "nautilus-desktop-link-monitor.h" + #include "nautilus-desktop-link.h" + #include "nautilus-desktop-icon-file.h" +@@ -356,6 +357,9 @@ nautilus_desktop_link_monitor_init (gpointer object, gpointer klass) + GList *l, *mounts; + GMount *mount; + ++ nautilus_debug_log (FALSE, NAUTILUS_DEBUG_LOG_DOMAIN_DESKTOP_ITEMS, ++ "Initializing desktop link monitor with all its links"); ++ + monitor = NAUTILUS_DESKTOP_LINK_MONITOR (object); + + the_link_monitor = monitor; diff --git a/libnautilus-private/nautilus-directory-async.c b/libnautilus-private/nautilus-directory-async.c index cbe0419..ba67a75 100644 --- a/libnautilus-private/nautilus-directory-async.c @@ -1794,3 +1768,25 @@ index e3de760..d414bed 100644 void nautilus_global_preferences_init (void); char *nautilus_global_preferences_get_default_folder_viewer_preference_as_iid (void); +diff --git a/src/nautilus-desktop-window.c b/src/nautilus-desktop-window.c +index 6871bde..ea0fc61 100644 +--- a/src/nautilus-desktop-window.c ++++ b/src/nautilus-desktop-window.c +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -118,6 +119,9 @@ nautilus_desktop_window_new (NautilusApplication *application, + width_request = gdk_screen_get_width (screen); + height_request = gdk_screen_get_height (screen); + ++ nautilus_debug_log (TRUE, NAUTILUS_DEBUG_LOG_DOMAIN_DESKTOP_ITEMS, ++ "Initializing desktop window with size %dx%d", width_request, height_request); ++ + window = NAUTILUS_DESKTOP_WINDOW + (gtk_widget_new (nautilus_desktop_window_get_type(), + "app", application, diff --git a/nautilus.changes b/nautilus.changes index 32a9214..87a5015 100644 --- a/nautilus.changes +++ b/nautilus.changes @@ -1,3 +1,27 @@ +------------------------------------------------------------------- +Tue Oct 21 14:15:25 CDT 2008 - maw@suse.de + +- Update to version 2.24.1: + + Fix saving of spatial window geometry on close + + Remove trailing spaces on filenames when copying to FAT file + systems + + Allow emblems that don't start with "emblem-" + + On unmount close tabs that show the unmounted location + + Fixed redraw issues with labels on zoom + + Don't toggle sidebar splitter when dragging it + + Fix bookmark issue that sometimes led to locations not loading + + Don't show the "cancel" dialog after a timeout when displaying a dialog + + Fix crashes and leaks +- Respin nautilus-bnc366100-bgo338933-ignore-foreign-desktop-files.diff. + +------------------------------------------------------------------- +Tue Oct 21 11:26:00 CDT 2008 - federico@novell.com + +- Updated nautilus-sysadmin-desktop-items.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=436750 - the built-in + desktop links like Home, Trash, and volumes were not being shown at + all. + ------------------------------------------------------------------- Thu Sep 25 16:51:00 CDT 2008 - federico@novell.com diff --git a/nautilus.spec b/nautilus.spec index 5f97c2c..4ff2aa1 100644 --- a/nautilus.spec +++ b/nautilus.spec @@ -1,5 +1,5 @@ # -# spec file for package nautilus (Version 2.24.0) +# spec file for package nautilus (Version 2.24.1) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -40,7 +40,7 @@ BuildRequires: perl-XML-Parser BuildRequires: update-desktop-files License: GPL v2 or later Group: Productivity/File utilities -Version: 2.24.0 +Version: 2.24.1 Release: 1 Summary: The GNOME 2.x Desktop File Manager Source: ftp://ftp.gnome.org/pub/gnome/sources/nautilus/2.20/%{name}-%{version}.tar.bz2 @@ -211,6 +211,24 @@ fi %{_datadir}/gtk-doc/html/libnautilus-extension %changelog +* Tue Oct 21 2008 maw@suse.de +- Update to version 2.24.1: + + Fix saving of spatial window geometry on close + + Remove trailing spaces on filenames when copying to FAT file + systems + + Allow emblems that don't start with "emblem-" + + On unmount close tabs that show the unmounted location + + Fixed redraw issues with labels on zoom + + Don't toggle sidebar splitter when dragging it + + Fix bookmark issue that sometimes led to locations not loading + + Don't show the "cancel" dialog after a timeout when displaying a dialog + + Fix crashes and leaks +- Respin nautilus-bnc366100-bgo338933-ignore-foreign-desktop-files.diff. +* Tue Oct 21 2008 federico@novell.com +- Updated nautilus-sysadmin-desktop-items.diff to fix + https://bugzilla.novell.com/show_bug.cgi?id=436750 - the built-in + desktop links like Home, Trash, and volumes were not being shown at + all. * Thu Sep 25 2008 federico@novell.com - Removed nautilus-bnc368446-network-in-places.patch to fix https://bugzilla.novell.com/show_bug.cgi?id=428968 - the Places