[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1033830: unblock: nemo/5.6.4-1



Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: nemo@packages.debian.org, fantonifabio@tiscali.it
Control: affects -1 + src:nemo

Please unblock package nemo

5.6.4-1 include a new bugfix release with some fixes:
- nemo-view-dnd.c: Fix the check for a web link's title, and use the url if it's missing. - nemo-mime-actions.c: Prioritize an http link to open in a browser, regardless of the mimetype of the link's target.
- Fix for List View thumbnail scaling at HiDPI
- list-view: Scale the thumbnail correctly when applying emblems, and fix the emblem sanity checks everywhere. - file info: Use generic methods for attributes that aren't guaranteed to be supported by the filesystem.

No regression found or reported, I think is good to have in bookworm.

[ Risks ]
I consider the risk of regression small

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]

unblock nemo/5.6.4-1
diff --git a/debian/changelog b/debian/changelog
index e59ea892..29baa503 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+nemo (5.6.4-1) unstable; urgency=medium
+
+  * New upstream bugfix version 5.6.4
+
+ -- Fabio Fantoni <fantonifabio@tiscali.it>  Sun, 19 Mar 2023 22:36:15 +0100
+
 nemo (5.6.3-1) unstable; urgency=medium
 
   * New upstream version 5.6.3
diff --git a/libnemo-private/nemo-directory-async.c b/libnemo-private/nemo-directory-async.c
index 3a892739..b4eb02f3 100644
--- a/libnemo-private/nemo-directory-async.c
+++ b/libnemo-private/nemo-directory-async.c
@@ -824,6 +824,7 @@ static gboolean
 should_skip_file (NemoDirectory *directory, GFileInfo *info)
 {
 	static gboolean show_hidden_files_changed_callback_installed = FALSE;
+    gboolean is_hidden;
 
 	/* Add the callback once for the life of our process */
 	if (!show_hidden_files_changed_callback_installed) {
@@ -838,13 +839,14 @@ should_skip_file (NemoDirectory *directory, GFileInfo *info)
 		show_hidden_files_changed_callback (NULL);
 	}
 
-	if (!show_hidden_files &&
-	    (g_file_info_get_is_hidden (info) ||
-	     g_file_info_get_is_backup (info))) {
-		return TRUE;
-	}
+    is_hidden = g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN) ||
+                g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP);
 
-	return FALSE;
+    if (!show_hidden_files && is_hidden) {
+        return TRUE;
+    }
+
+    return FALSE;
 }
 
 static void
@@ -915,7 +917,8 @@ dequeue_pending_idle_callback (gpointer callback_data)
 			dir_load_state->load_file_count += 1;
 
 			/* Add the MIME type to the set. */
-			mimetype = g_file_info_get_content_type (file_info);
+            mimetype = g_file_info_get_attribute_string (file_info, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE);
+
 			if (mimetype != NULL) {
 				istr_set_insert (dir_load_state->load_mime_list_hash,
 						 mimetype);
@@ -2961,7 +2964,8 @@ mime_list_one (MimeListState *state,
 		return;
 	}
 
-	mime_type = g_file_info_get_content_type (info);
+    mime_type = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE);
+
 	if (mime_type != NULL) {
 		istr_set_insert (state->mime_list_hash, mime_type);
 	}
diff --git a/libnemo-private/nemo-file.c b/libnemo-private/nemo-file.c
index 629feedb..ba8a8555 100644
--- a/libnemo-private/nemo-file.c
+++ b/libnemo-private/nemo-file.c
@@ -2274,6 +2274,7 @@ update_info_internal (NemoFile *file,
 	const char *trash_orig_path;
 	const char *group, *owner, *owner_real;
 	gboolean free_owner, free_group;
+    const char *edit_name;
 
 	if (file->details->is_gone) {
 		return FALSE;
@@ -2304,9 +2305,11 @@ update_info_internal (NemoFile *file,
 	}
 	file->details->got_file_info = TRUE;
 
+    edit_name = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_STANDARD_EDIT_NAME);
+
 	changed |= nemo_file_set_display_name (file,
 						  g_file_info_get_display_name (info),
-						  g_file_info_get_edit_name (info),
+						  edit_name,
 						  FALSE);
 
 	file_type = g_file_info_get_file_type (info);
@@ -2339,13 +2342,15 @@ update_info_internal (NemoFile *file,
 		}
 	}
 
-	is_symlink = g_file_info_get_is_symlink (info);
+    is_symlink = g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK);
 	if (file->details->is_symlink != is_symlink) {
 		changed = TRUE;
 	}
 	file->details->is_symlink = is_symlink;
 
-	is_hidden = g_file_info_get_is_hidden (info) || g_file_info_get_is_backup (info);
+    is_hidden = g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN) ||
+                g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_BACKUP);
+
 	if (file->details->is_hidden != is_hidden) {
 		changed = TRUE;
 	}
@@ -2541,7 +2546,8 @@ update_info_internal (NemoFile *file,
 	}
 	file->details->size = size;
 
-	sort_order = g_file_info_get_sort_order (info);
+    sort_order = g_file_info_get_attribute_int32 (info, G_FILE_ATTRIBUTE_STANDARD_SORT_ORDER);
+
 	if (file->details->sort_order != sort_order) {
 		changed = TRUE;
 	}
@@ -2603,9 +2609,8 @@ update_info_internal (NemoFile *file,
 		file->details->thumbnailing_failed = thumbnailing_failed;
 	}
 
-	symlink_name = is_symlink ?
-		g_file_info_get_symlink_target (info) :
-		NULL;
+    symlink_name = g_file_info_get_attribute_byte_string (info, G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET);
+
 	if (g_strcmp0 (file->details->symlink_name, symlink_name) != 0) {
 		changed = TRUE;
 		g_free (file->details->symlink_name);
diff --git a/libnemo-private/nemo-search-engine-advanced.c b/libnemo-private/nemo-search-engine-advanced.c
index 5b91c187..16a3ce50 100644
--- a/libnemo-private/nemo-search-engine-advanced.c
+++ b/libnemo-private/nemo-search-engine-advanced.c
@@ -910,7 +910,7 @@ visit_directory (GFile *dir, SearchThreadData *data)
 	}
 
 	while ((info = g_file_enumerator_next_file (enumerator, data->cancellable, NULL)) != NULL) {
-		if (g_file_info_get_is_hidden (info) && !data->show_hidden) {
+		if (g_file_info_get_attribute_boolean (info, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN) && !data->show_hidden) {
 			goto next;
 		}
 
@@ -946,7 +946,7 @@ visit_directory (GFile *dir, SearchThreadData *data)
 
 		child = g_file_get_child (dir, g_file_info_get_name (info));
         if (hit) {
-            mime_type = g_file_info_get_content_type (info);
+            mime_type = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE);
 
             // Our helpers don't currently support uris, so we shouldn't at all -
             // probably best, as search would transfer the contents of every file
diff --git a/meson.build b/meson.build
index b62a43ae..95c07ec8 100644
--- a/meson.build
+++ b/meson.build
@@ -1,7 +1,7 @@
 # Meson build file
 
 # https://github.com/linuxmint/nemo
-project('nemo', 'c', version: '5.6.3',
+project('nemo', 'c', version: '5.6.4',
   meson_version: '>=0.41.0'
 )
 
diff --git a/src/nemo-icon-view-container.c b/src/nemo-icon-view-container.c
index 8cf54b03..2ef91f35 100644
--- a/src/nemo-icon-view-container.c
+++ b/src/nemo-icon-view-container.c
@@ -139,8 +139,8 @@ nemo_icon_view_container_get_icon_images (NemoIconContainer *container,
         if (s < size)
             size = s;
 
-        bad_ratio = (int)nemo_icon_get_emblem_size_for_icon_size (size) * scale > w ||
-                    (int)nemo_icon_get_emblem_size_for_icon_size (size) * scale > h;
+        bad_ratio = (int)nemo_icon_get_emblem_size_for_icon_size (size) * scale > (int)(w * 0.75) ||
+                    (int)nemo_icon_get_emblem_size_for_icon_size (size) * scale > (int)(h * 0.75);
 
         if (bad_ratio)
             goto skip_emblem; /* Would prefer to not use goto, but
diff --git a/src/nemo-icon-view-grid-container.c b/src/nemo-icon-view-grid-container.c
index 1a6c3f92..ff9af5e7 100644
--- a/src/nemo-icon-view-grid-container.c
+++ b/src/nemo-icon-view-grid-container.c
@@ -116,8 +116,8 @@ nemo_icon_view_grid_container_get_icon_images (NemoIconContainer *container,
         if (s < size)
             size = s;
 
-        bad_ratio = (int)nemo_icon_get_emblem_size_for_icon_size (size) * scale > w ||
-                    (int)nemo_icon_get_emblem_size_for_icon_size (size) * scale > h;
+        bad_ratio = (int)nemo_icon_get_emblem_size_for_icon_size (size) * scale > (int)(w * 0.75) ||
+                    (int)nemo_icon_get_emblem_size_for_icon_size (size) * scale > (int)(h * 0.75);
 
         if (bad_ratio)
             goto skip_emblem; /* Would prefer to not use goto, but
diff --git a/src/nemo-list-model.c b/src/nemo-list-model.c
index 6d87413c..55354f0f 100644
--- a/src/nemo-list-model.c
+++ b/src/nemo-list-model.c
@@ -354,7 +354,7 @@ nemo_list_model_get_value (GtkTreeModel *tree_model, GtkTreeIter *iter, int colu
                 gint w, h, s;
                 gboolean bad_ratio;
 
-                initial_pixbuf = nemo_icon_info_get_pixbuf_at_size (icon_info, icon_size);
+                initial_pixbuf = nemo_icon_info_get_pixbuf_at_size (icon_info, icon_size * icon_scale);
 
                 w = gdk_pixbuf_get_width (initial_pixbuf);
                 h = gdk_pixbuf_get_height (initial_pixbuf);
@@ -363,8 +363,8 @@ nemo_list_model_get_value (GtkTreeModel *tree_model, GtkTreeIter *iter, int colu
                 if (s < icon_size)
                     icon_size = s;
 
-                bad_ratio = (int)(nemo_icon_get_emblem_size_for_icon_size (icon_size) * icon_scale) > w ||
-                            (int)(nemo_icon_get_emblem_size_for_icon_size (icon_size) * icon_scale) > h;
+                bad_ratio = (int)(nemo_icon_get_emblem_size_for_icon_size (icon_size) * icon_scale) > (int)(w * 0.75) ||
+                            (int)(nemo_icon_get_emblem_size_for_icon_size (icon_size) * icon_scale) > (int)(h * 0.75);
 
                 gicon = G_ICON (initial_pixbuf);
 
@@ -388,7 +388,7 @@ nemo_list_model_get_value (GtkTreeModel *tree_model, GtkTreeIter *iter, int colu
                 g_object_unref (gicon);
             }
 
-			icon = nemo_icon_info_get_pixbuf_at_size (icon_info, icon_size);
+			icon = nemo_icon_info_get_pixbuf_at_size (icon_info, icon_size * icon_scale);
 
 			nemo_icon_info_unref (icon_info);
 
diff --git a/src/nemo-mime-actions.c b/src/nemo-mime-actions.c
index 288f4e1c..0064d23f 100644
--- a/src/nemo-mime-actions.c
+++ b/src/nemo-mime-actions.c
@@ -335,7 +335,7 @@ file_has_local_path (NemoFile *file)
 GAppInfo *
 nemo_mime_get_default_application_for_file (NemoFile *file)
 {
-	GAppInfo *app;
+	GAppInfo *app = NULL;
 	char *mime_type;
 	char *uri_scheme;
 
@@ -345,18 +345,22 @@ nemo_mime_get_default_application_for_file (NemoFile *file)
         }
 	}
 
-	mime_type = nemo_file_get_mime_type (file);
-	app = g_app_info_get_default_for_type (mime_type, !file_has_local_path (file));
-	g_free (mime_type);
+    uri_scheme = nemo_file_get_uri_scheme (file);
+
+    if (!g_str_has_prefix (uri_scheme, "http")) {
+        mime_type = nemo_file_get_mime_type (file);
+        app = g_app_info_get_default_for_type (mime_type, !file_has_local_path (file));
+        g_free (mime_type);
+    }
 
 	if (app == NULL) {
-		uri_scheme = nemo_file_get_uri_scheme (file);
 		if (uri_scheme != NULL) {
 			app = g_app_info_get_default_for_uri_scheme (uri_scheme);
-			g_free (uri_scheme);
 		}
 	}
 
+    g_free (uri_scheme);
+
 	return app;
 }
 
diff --git a/src/nemo-view-dnd.c b/src/nemo-view-dnd.c
index dd6e297d..3d45c77f 100644
--- a/src/nemo-view-dnd.c
+++ b/src/nemo-view-dnd.c
@@ -211,8 +211,8 @@ nemo_view_handle_netscape_url_drop (NemoView  *view,
 	}
 
 	if (action == GDK_ACTION_LINK) {
-		if (g_strcmp0 (title, NULL) == 0) {
-			link_name = g_file_get_basename (f);
+		if (g_strcmp0 (title, NULL) == 0 || strlen (title) == 0) {
+			link_name = g_strdup (url);
 		} else {
 			link_name = g_strdup (title);
 		}

Reply to: