Hello community,

here is the log from the commit of package nemo for openSUSE:Factory checked in 
at 2018-07-14 20:25:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nemo (Old)
 and      /work/SRC/openSUSE:Factory/.nemo.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nemo"

Sat Jul 14 20:25:11 2018 rev:26 rq:622474 version:3.8.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/nemo/nemo.changes        2018-06-19 
12:04:03.517151784 +0200
+++ /work/SRC/openSUSE:Factory/.nemo.new/nemo.changes   2018-07-14 
20:25:19.556202334 +0200
@@ -1,0 +2,15 @@
+Thu Jul  5 13:05:25 UTC 2018 - [email protected]
+
+- Update to version 3.8.4:
+  * nemo-progress-info.c: Emit signals in proper order to prevent
+    an unmatched g_application_hold/release in
+    nemo-progress-ui-handler.c.
+  * eel-gtk-extensions.c: Use gtk_menu_popup_at_pointer instead of
+    plain gtk_menu_popup, which is deprecated (and causes a lot of
+    warnings under wayland. Functionality under x11 is unchanged.
+  * nemo-file.c: Fix a couple pixbuf leaks, invalidate thumbnails
+    internally when a force refresh is commanded.
+  * various: Fix some memory leaks.
+- Add nemo-gtk-3.20.patch: Restore GTK+ 3.20 support.
+
+-------------------------------------------------------------------

Old:
----
  nemo-3.8.3.tar.gz

New:
----
  nemo-3.8.4.tar.gz
  nemo-gtk-3.20.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ nemo.spec ++++++
--- /var/tmp/diff_new_pack.dXZDMk/_old  2018-07-14 20:25:20.060203628 +0200
+++ /var/tmp/diff_new_pack.dXZDMk/_new  2018-07-14 20:25:20.064203639 +0200
@@ -20,13 +20,15 @@
 %define sover   1
 %define typelib typelib-1_0-Nemo-3_0
 Name:           nemo
-Version:        3.8.3
+Version:        3.8.4
 Release:        0
 Summary:        File browser for Cinnamon
 License:        GPL-2.0-or-later
 Group:          System/GUI/Other
 URL:            https://github.com/linuxmint/nemo
 Source:         
https://github.com/linuxmint/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
+# PATCH-FIX-OPENSUSE nemo-gtk-3.20.patch -- Restore GTK+ 3.20 support.
+Patch0:         nemo-gtk-3.20.patch
 BuildRequires:  fdupes
 BuildRequires:  gtk-doc
 BuildRequires:  hicolor-icon-theme
@@ -103,6 +105,7 @@
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
 %if 0%{?suse_version} < 1500

++++++ nemo-3.8.3.tar.gz -> nemo-3.8.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.8.3/debian/changelog 
new/nemo-3.8.4/debian/changelog
--- old/nemo-3.8.3/debian/changelog     2018-06-08 12:55:07.000000000 +0200
+++ new/nemo-3.8.4/debian/changelog     2018-07-05 11:40:01.000000000 +0200
@@ -1,3 +1,13 @@
+nemo (3.8.4) tara; urgency=medium
+
+  [ Michael Webster ]
+  * nemo-progress-info.c: Emit signals in proper order to prevent an unmatched 
g_application_hold/release in nemo-progress-ui-handler.c.
+  * eel-gtk-extensions.c: use gtk_menu_popup_at_pointer instead of plain 
gtk_menu_popup, which is deprecated (and causes a lot of warnings under 
wayland.  Functionality under x11 is unchanged.
+  * nemo-file.c: fix a couple pixbuf leaks, invalidate thumbnails internally 
when a force refresh is commanded.
+  * various: fix some memory leaks discovered by valgrind.
+
+ -- Clement Lefebvre <[email protected]>  Thu, 05 Jul 2018 11:39:39 +0200
+
 nemo (3.8.3) tara; urgency=medium
 
   [ Michael Webster ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.8.3/eel/eel-gtk-extensions.c 
new/nemo-3.8.4/eel/eel-gtk-extensions.c
--- old/nemo-3.8.3/eel/eel-gtk-extensions.c     2018-06-08 12:55:07.000000000 
+0200
+++ new/nemo-3.8.4/eel/eel-gtk-extensions.c     2018-07-05 11:40:01.000000000 
+0200
@@ -287,13 +287,7 @@
                button = 0;
        }
 
-       gtk_menu_popup (menu,                                   /* menu */
-                       NULL,                                   /* 
parent_menu_shell */
-                       NULL,                                   /* 
parent_menu_item */
-                       NULL,                                   /* 
popup_position_func */
-                       NULL,                                   /* 
popup_position_data */
-                       button,                                 /* button */
-                       event ? event->time : gtk_get_current_event_time ()); 
/* activate_time */
+       gtk_menu_popup_at_pointer (menu, (GdkEvent *) event);
 
        g_object_ref_sink (menu);
        g_object_unref (menu);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.8.3/libnemo-private/nemo-action-manager.c 
new/nemo-3.8.4/libnemo-private/nemo-action-manager.c
--- old/nemo-3.8.3/libnemo-private/nemo-action-manager.c        2018-06-08 
12:55:07.000000000 +0200
+++ new/nemo-3.8.4/libnemo-private/nemo-action-manager.c        2018-07-05 
11:40:01.000000000 +0200
@@ -222,10 +222,10 @@
     action = nemo_action_new (action_name, path);
 
     g_free (path);
+    g_free (uri);
+    g_free (action_name);
 
     if (action == NULL) {
-        g_free (uri);
-        g_free (action_name);
         return;
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.8.3/libnemo-private/nemo-action.c 
new/nemo-3.8.4/libnemo-private/nemo-action.c
--- old/nemo-3.8.3/libnemo-private/nemo-action.c        2018-06-08 
12:55:07.000000000 +0200
+++ new/nemo-3.8.4/libnemo-private/nemo-action.c        2018-07-05 
11:40:01.000000000 +0200
@@ -84,6 +84,8 @@
     DBusCondition *cond = (DBusCondition *) data;
     g_free (cond->name);
     g_bus_unwatch_name (cond->watch_id);
+
+    g_free (cond);
 }
 
 static void
@@ -518,10 +520,11 @@
     g_free (icon_name);
     g_free (stock_id);
     g_free (exec);
-    g_strfreev (ext);
     g_free (parent_dir);
     g_free (quote_type_string);
     g_free (separator);
+    g_strfreev (ext);
+    g_strfreev (mimes);
     g_strfreev (conditions);
     g_key_file_free (key_file);
 }
@@ -1530,9 +1533,10 @@
                     }
                 }
             }
-            g_free (filename);
         }
 
+        g_free (filename);
+
         if (mime_count > 0) {
             for (i = 0; i < mime_count; i++) {
                 if (nemo_file_is_mime_type (NEMO_FILE (iter->data), 
mimetypes[i])) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.8.3/libnemo-private/nemo-bookmark.c 
new/nemo-3.8.4/libnemo-private/nemo-bookmark.c
--- old/nemo-3.8.3/libnemo-private/nemo-bookmark.c      2018-06-08 
12:55:07.000000000 +0200
+++ new/nemo-3.8.4/libnemo-private/nemo-bookmark.c      2018-07-05 
11:40:01.000000000 +0200
@@ -230,6 +230,8 @@
         ret = nemo_bookmark_metadata_compare (data, md);
     }
 
+    nemo_bookmark_metadata_free (data);
+
     return ret;
 }
 
@@ -864,6 +866,10 @@
 void
 nemo_bookmark_metadata_free (NemoBookmarkMetadata *metadata)
 {
+    if (metadata == NULL) {
+        return;
+    }
+
     g_free (metadata->bookmark_name);
     g_strfreev (metadata->emblems);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.8.3/libnemo-private/nemo-file.c 
new/nemo-3.8.4/libnemo-private/nemo-file.c
--- old/nemo-3.8.3/libnemo-private/nemo-file.c  2018-06-08 12:55:07.000000000 
+0200
+++ new/nemo-3.8.4/libnemo-private/nemo-file.c  2018-07-05 11:40:01.000000000 
+0200
@@ -169,6 +169,7 @@
 static const char * nemo_file_peek_display_name_collation_key (NemoFile *file);
 static void file_mount_unmounted (GMount *mount,  gpointer data);
 static void metadata_hash_free (GHashTable *hash);
+static void invalidate_thumbnail (NemoFile *file);
 
 G_DEFINE_TYPE_WITH_CODE (NemoFile, nemo_file, G_TYPE_OBJECT,
                         G_IMPLEMENT_INTERFACE (NEMO_TYPE_FILE_INFO,
@@ -455,6 +456,9 @@
                file->details->icon = NULL;
        }
 
+    g_clear_object (&file->details->thumbnail);
+    g_clear_object (&file->details->scaled_thumbnail);
+
        g_free (file->details->thumbnail_path);
        file->details->thumbnail_path = NULL;
        file->details->thumbnailing_failed = FALSE;
@@ -829,12 +833,8 @@
        g_free (file->details->activation_uri);
        g_clear_object (&file->details->custom_icon);
 
-       if (file->details->thumbnail) {
-               g_object_unref (file->details->thumbnail);
-       }
-       if (file->details->scaled_thumbnail) {
-               g_object_unref (file->details->scaled_thumbnail);
-       }
+    g_clear_object (&file->details->thumbnail);
+    g_clear_object (&file->details->scaled_thumbnail);
 
        if (file->details->mount) {
                g_signal_handlers_disconnect_by_func (file->details->mount, 
file_mount_unmounted, file);
@@ -4207,6 +4207,7 @@
 
     gint success;
 
+    invalidate_thumbnail (file);
     success = g_unlink (file->details->thumbnail_path);
 
     if (success != 0) {
@@ -4533,7 +4534,8 @@
                 }
             }
 
-            if (file->details->thumbnail_scale == thumb_scale &&
+            if (file->details->thumbnail_is_up_to_date &&
+                file->details->thumbnail_scale == thumb_scale &&
                 file->details->scaled_thumbnail != NULL) {
                 scaled_pixbuf = file->details->scaled_thumbnail;
             } else {
@@ -4599,12 +4601,20 @@
                icon = nemo_icon_info_lookup (gicon, size, scale);
                if (nemo_icon_info_is_fallback (icon)) {
                        g_object_unref (icon);
-                       icon = nemo_icon_info_lookup (g_themed_icon_new 
("text-x-generic"), size, scale);
+            GIcon *generic = g_themed_icon_new ("text-x-generic");
+
+                       icon = nemo_icon_info_lookup (generic, size, scale);
+            g_object_unref (generic);
                }
                g_object_unref (gicon);
                return icon;
        } else {
-               return nemo_icon_info_lookup (g_themed_icon_new 
("text-x-generic"), size, scale);
+        GIcon *generic = g_themed_icon_new ("text-x-generic");
+
+        icon = nemo_icon_info_lookup (generic, size, scale);
+        g_object_unref (generic);
+
+               return icon;
        }
 }
 
@@ -7681,6 +7691,7 @@
     ret = string->str;
 
     g_string_free (string, FALSE);
+    g_free (scheme);
 
     return ret;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.8.3/libnemo-private/nemo-progress-info.c 
new/nemo-3.8.4/libnemo-private/nemo-progress-info.c
--- old/nemo-3.8.3/libnemo-private/nemo-progress-info.c 2018-06-08 
12:55:07.000000000 +0200
+++ new/nemo-3.8.4/libnemo-private/nemo-progress-info.c 2018-07-05 
11:40:01.000000000 +0200
@@ -380,7 +380,13 @@
     info->queue_at_idle = FALSE;
        
        G_UNLOCK (progress_info);
-       
+
+    if (queue_at_idle) {
+        g_signal_emit (info,
+                   signals[QUEUED],
+                   0);
+    }
+
        if (start_at_idle) {
                g_signal_emit (info,
                               signals[STARTED],
@@ -404,12 +410,6 @@
                               signals[FINISHED],
                               0);
        }
-       
-    if (queue_at_idle) {
-        g_signal_emit (info,
-                   signals[QUEUED],
-                   0);
-    }
 
        g_object_unref (info);
        
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.8.3/meson.build new/nemo-3.8.4/meson.build
--- old/nemo-3.8.3/meson.build  2018-06-08 12:55:07.000000000 +0200
+++ new/nemo-3.8.4/meson.build  2018-07-05 11:40:01.000000000 +0200
@@ -1,7 +1,7 @@
 # Meson build file
 
 # https://github.com/linuxmint/nemo
-project('nemo', 'c', version: '3.8.3',
+project('nemo', 'c', version: '3.8.4',
   meson_version: '>=0.37.0'
 )
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.8.3/src/nemo-list-view.c 
new/nemo-3.8.4/src/nemo-list-view.c
--- old/nemo-3.8.3/src/nemo-list-view.c 2018-06-08 12:55:07.000000000 +0200
+++ new/nemo-3.8.4/src/nemo-list-view.c 2018-07-05 11:40:01.000000000 +0200
@@ -936,7 +936,8 @@
 
     GList *selected = gtk_tree_selection_get_selected_rows (selection, NULL);
     gint selected_count = g_list_length (selected);
-    g_list_free (selected);
+
+    g_list_free_full (selected, (GDestroyNotify) gtk_tree_path_free);
 
     if (selected_count != 1)
         return FALSE;
@@ -2140,6 +2141,8 @@
                      "text", text,
                      "underline", underline,
                      NULL);
+
+    g_free (text);
 }
 
 static gboolean
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.8.3/src/nemo-places-sidebar.c 
new/nemo-3.8.4/src/nemo-places-sidebar.c
--- old/nemo-3.8.3/src/nemo-places-sidebar.c    2018-06-08 12:55:07.000000000 
+0200
+++ new/nemo-3.8.4/src/nemo-places-sidebar.c    2018-07-05 11:40:01.000000000 
+0200
@@ -714,6 +714,9 @@
        model = NULL;
        last_uri = NULL;
 
+    g_clear_pointer (&sidebar->top_bookend_uri, g_free);
+    g_clear_pointer (&sidebar->bottom_bookend_uri, g_free);
+
        selection = gtk_tree_view_get_selection (sidebar->tree_view);
        if (gtk_tree_selection_get_selected (selection, &model, &last_iter)) {
                gtk_tree_model_get (model,
@@ -965,20 +968,23 @@
 
                 mount = g_volume_get_mount (volume);
                 if (mount != NULL) {
+                    gchar *full_display_name, *volume_id;
                     /* Show mounted volume in the sidebar */
                     icon = nemo_get_mount_icon_name (mount);
                     root = g_mount_get_default_location (mount);
                     mount_uri = g_file_get_uri (root);
                     name = g_mount_get_name (mount);
 
+                    volume_id = g_volume_get_identifier (volume, 
G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE);
+                    full_display_name = g_file_get_parse_name (root);
+
                     df_file = g_file_new_for_uri (mount_uri);
                     full = get_disk_full (df_file, &tooltip_info);
                     g_clear_object (&df_file);
 
                     tooltip = g_strdup_printf (_("%s (%s)\n%s"),
-                                               g_file_get_parse_name (root),
-                                               g_volume_get_identifier (volume,
-                                                                        
G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE),
+                                               full_display_name,
+                                               volume_id,
                                                tooltip_info);
                     g_free (tooltip_info);
                     cat_iter = add_place (sidebar, PLACES_MOUNTED_VOLUME,
@@ -993,6 +999,8 @@
                     g_free (tooltip);
                     g_free (name);
                     g_free (mount_uri);
+                    g_free (volume_id);
+                    g_free (full_display_name);
                 } else {
                     /* Do show the unmounted volumes in the sidebar;
                      * this is so the user can mount it (in case automounting
@@ -1002,11 +1010,13 @@
                      * cue that the user should remember to yank out the media 
if
                      * he just unmounted it.
                      */
+                    gchar *volume_id;
                     icon = nemo_get_volume_icon_name (volume);
                     name = g_volume_get_name (volume);
-                    tooltip = g_strdup_printf (_("Mount and open %s (%s)"), 
name,
-                                               g_volume_get_identifier (volume,
-                                                                        
G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE));
+
+                    volume_id = g_volume_get_identifier (volume,
+                                                         
G_VOLUME_IDENTIFIER_KIND_UNIX_DEVICE);
+                    tooltip = g_strdup_printf (_("Mount and open %s (%s)"), 
name, volume_id);
 
                     cat_iter = add_place (sidebar, PLACES_MOUNTED_VOLUME,
                                            SECTION_DEVICES,
@@ -1016,6 +1026,7 @@
                     g_free (icon);
                     g_free (name);
                     g_free (tooltip);
+                    g_free (volume_id);
                 }
                 g_object_unref (volume);
             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.8.3/src/nemo-statusbar.c 
new/nemo-3.8.4/src/nemo-statusbar.c
--- old/nemo-3.8.3/src/nemo-statusbar.c 2018-06-08 12:55:07.000000000 +0200
+++ new/nemo-3.8.4/src/nemo-statusbar.c 2018-07-05 11:40:01.000000000 +0200
@@ -275,6 +275,8 @@
                                GTK_WIDGET (children->data),
                                TRUE, FALSE, 10, GTK_PACK_START);
 
+    g_list_free (children);
+
     nemo_status_bar_sync_button_states (bar);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nemo-3.8.3/src/nemo-view.c 
new/nemo-3.8.4/src/nemo-view.c
--- old/nemo-3.8.3/src/nemo-view.c      2018-06-08 12:55:07.000000000 +0200
+++ new/nemo-3.8.4/src/nemo-view.c      2018-07-05 11:40:01.000000000 +0200
@@ -6334,12 +6334,17 @@
     NemoFile *parent = nemo_view_get_directory_as_file (view);
 
     if (nemo_action_get_visibility (action, selected_files, parent)) {
-        gtk_action_set_label (GTK_ACTION (action), nemo_action_get_label 
(action,
-                                                                          
selected_files,
-                                                                          
parent));
-        gtk_action_set_tooltip (GTK_ACTION (action), nemo_action_get_tt 
(action,
-                                                                         
selected_files,
-                                                                         
parent));
+        gchar *label, *tt;
+
+        label = nemo_action_get_label (action, selected_files, parent);
+        tt = nemo_action_get_tt (action, selected_files, parent);
+
+        gtk_action_set_label (GTK_ACTION (action), label);
+        gtk_action_set_tooltip (GTK_ACTION (action), tt);
+
+        g_free (label);
+        g_free (tt);
+
         gtk_action_set_visible (GTK_ACTION (action), TRUE);
     } else {
         gtk_action_set_visible (GTK_ACTION (action), FALSE);

++++++ nemo-gtk-3.20.patch ++++++
--- a/eel/eel-gtk-extensions.c
+++ b/eel/eel-gtk-extensions.c
@@ -287,7 +287,12 @@ eel_pop_up_context_menu (GtkMenu *menu,
                button = 0;
        }
 
+#if GTK_CHECK_VERSION (3, 22, 0)
        gtk_menu_popup_at_pointer (menu, (GdkEvent *) event);
+#else
+       gtk_menu_popup (menu, NULL, NULL, NULL, NULL,
+                       button, event ? event->time : GDK_CURRENT_TIME);
+#endif
 
        g_object_ref_sink (menu);
        g_object_unref (menu);

Reply via email to