--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock
X-Debbugs-Cc: n...@packages.debian.org, fantonifa...@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 <fantonifa...@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);
}
--- End Message ---