Hello community,

here is the log from the commit of package libdazzle for openSUSE:Factory 
checked in at 2018-01-25 12:38:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libdazzle (Old)
 and      /work/SRC/openSUSE:Factory/.libdazzle.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libdazzle"

Thu Jan 25 12:38:06 2018 rev:4 rq:568067 version:3.26.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/libdazzle/libdazzle.changes      2017-10-06 
11:02:48.551161499 +0200
+++ /work/SRC/openSUSE:Factory/.libdazzle.new/libdazzle.changes 2018-01-25 
12:38:07.901411161 +0100
@@ -1,0 +2,17 @@
+Fri Jan 19 23:30:40 UTC 2018 - bjorn....@gmail.com
+
+- Update to version 3.26.2:
+  + Progress menu button will now avoid spinning in some
+    conditions.
+  + Leak fixed in DzlTree text rendering.
+  + Shortcut mneumonics are now properly activated.
+  + Fixes to avoid various deprecated API.
+  + A number of leaks detected by ASAN were fixed.
+  + The directory reaper handles various mtime comparisons more
+    correctly now.
+  + Some G-I annotations were improved.
+  + DzlMenuMerger is more flexible with input.
+  + Some performance improvements when dealing with CSS and other
+    resources paths.
+
+-------------------------------------------------------------------

Old:
----
  libdazzle-3.26.1.tar.xz

New:
----
  libdazzle-3.26.2.tar.xz

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

Other differences:
------------------
++++++ libdazzle.spec ++++++
--- /var/tmp/diff_new_pack.eZm59L/_old  2018-01-25 12:38:08.561380350 +0100
+++ /var/tmp/diff_new_pack.eZm59L/_new  2018-01-25 12:38:08.565380163 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package libdazzle
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 %define base 3.25
 Name:           libdazzle
-Version:        3.26.1
+Version:        3.26.2
 Release:        0
 Summary:        Collection of fancy features for GLib and Gtk+
 License:        GPL-3.0+ AND LGPL-2.1+

++++++ libdazzle-3.26.1.tar.xz -> libdazzle-3.26.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdazzle-3.26.1/NEWS new/libdazzle-3.26.2/NEWS
--- old/libdazzle-3.26.1/NEWS   2017-10-03 23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/NEWS   2018-01-11 02:10:36.000000000 +0100
@@ -1,4 +1,24 @@
 ==============
+Version 3.26.2
+==============
+
+Changes in this release:
+
+ • Progress menu button will now avoid spinning in some conditions.
+ • Leak fixed in DzlTree text rendering.
+ • Shortcut mneumonics are now properly activated.
+ • Fixes to avoid various deprecated API.
+ • A number of leaks detected by ASAN were fixed.
+ • The directory reaper handles various mtime comparisons more
+   correctly now.
+ • Some G-I annotations were improved.
+ • DzlMenuMerger is more flexible with input.
+ • Some performance improvements when dealing with CSS and other
+   resources paths.
+
+It's recommended that all distributions update to this release.
+
+==============
 Version 3.26.1
 ==============
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdazzle-3.26.1/meson.build 
new/libdazzle-3.26.2/meson.build
--- old/libdazzle-3.26.1/meson.build    2017-10-03 23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/meson.build    2018-01-11 02:10:36.000000000 +0100
@@ -1,5 +1,5 @@
 project('libdazzle', 'c',
-          version: '3.26.1',
+          version: '3.26.2',
           license: 'GPLv3+',
     meson_version: '>= 0.40.1',
   default_options: [ 'warning_level=1', 'buildtype=debugoptimized', 
'c_std=gnu11' ],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdazzle-3.26.1/src/files/dzl-directory-reaper.c 
new/libdazzle-3.26.2/src/files/dzl-directory-reaper.c
--- old/libdazzle-3.26.1/src/files/dzl-directory-reaper.c       2017-10-03 
23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/src/files/dzl-directory-reaper.c       2018-01-11 
02:10:36.000000000 +0100
@@ -152,18 +152,6 @@
 }
 
 static gboolean
-has_expired (guint64 mtime,
-             guint64 min_age)
-{
-  guint64 now = g_get_real_time () / G_USEC_PER_SEC;
-
-  if (now >= min_age)
-    return (now - min_age) >= mtime;
-
-  return FALSE;
-}
-
-static gboolean
 remove_directory_with_children (GFile         *file,
                                 GCancellable  *cancellable,
                                 GError       **error)
@@ -233,6 +221,7 @@
                                      GCancellable *cancellable)
 {
   GArray *patterns = task_data;
+  gint64 now = g_get_real_time ();
 
   g_assert (G_IS_TASK (task));
   g_assert (DZL_IS_DIRECTORY_REAPER (source_object));
@@ -267,7 +256,10 @@
 
           v64 = g_file_info_get_attribute_uint64 (info, 
G_FILE_ATTRIBUTE_TIME_MODIFIED);
 
-          if (has_expired (v64, p->min_age))
+          /* mtime is in seconds */
+          v64 *= G_USEC_PER_SEC;
+
+          if (v64 < now - p->min_age)
             {
               if (!g_file_delete (p->file.file, cancellable, &error))
                 g_warning ("%s", error->message);
@@ -306,7 +298,10 @@
               name = g_file_info_get_name (info);
               v64 = g_file_info_get_attribute_uint64 (info, 
G_FILE_ATTRIBUTE_TIME_MODIFIED);
 
-              if (has_expired (v64, p->min_age))
+              /* mtime is in seconds */
+              v64 *= G_USEC_PER_SEC;
+
+              if (v64 < now - p->min_age)
                 {
                   g_autoptr(GFile) file = g_file_get_child (p->glob.directory, 
name);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdazzle-3.26.1/src/menus/dzl-menu-button.c 
new/libdazzle-3.26.2/src/menus/dzl-menu-button.c
--- old/libdazzle-3.26.1/src/menus/dzl-menu-button.c    2017-10-03 
23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/src/menus/dzl-menu-button.c    2018-01-11 
02:10:36.000000000 +0100
@@ -189,6 +189,12 @@
 
   g_return_if_fail (DZL_IS_MENU_BUTTON (self));
 
+  if (menu_id == NULL)
+    {
+      dzl_menu_button_set_model (self, NULL);
+      return;
+    }
+
   app = g_application_get_default ();
 
   if (DZL_IS_APPLICATION (app))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdazzle-3.26.1/src/menus/dzl-menu-manager.c 
new/libdazzle-3.26.2/src/menus/dzl-menu-manager.c
--- old/libdazzle-3.26.1/src/menus/dzl-menu-manager.c   2017-10-03 
23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/src/menus/dzl-menu-manager.c   2018-01-11 
02:10:36.000000000 +0100
@@ -38,8 +38,7 @@
 #define DZL_MENU_ATTRIBUTE_MERGE_ID "dazzle-merge-id"
 
 /**
- * SECTION:dzlmenumanager
- * @short_description: UI merging for menus
+ * DzlMenuManager:
  *
  * The goal of #DzlMenuManager is to simplify the process of merging multiple
  * GtkBuilder .ui files containing menus into a single representation of the
@@ -59,6 +58,8 @@
  * dzl_menu_manager_get_menu_by_id() will always return a #GMenu, however
  * that menu may contain no children until something has extended it later
  * on during the application process.
+ *
+ * Since: 3.26
  */
 
 static const gchar *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdazzle-3.26.1/src/panel/dzl-dock-widget.c 
new/libdazzle-3.26.2/src/panel/dzl-dock-widget.c
--- old/libdazzle-3.26.1/src/panel/dzl-dock-widget.c    2017-10-03 
23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/src/panel/dzl-dock-widget.c    2018-01-11 
02:10:36.000000000 +0100
@@ -139,7 +139,7 @@
       break;
 
     case PROP_ICON_NAME:
-      g_value_set_string (value, dzl_dock_widget_item_get_icon_name 
(DZL_DOCK_ITEM (self)));
+      g_value_take_string (value, dzl_dock_widget_item_get_icon_name 
(DZL_DOCK_ITEM (self)));
       break;
 
     case PROP_MANAGER:
@@ -147,7 +147,7 @@
       break;
 
     case PROP_TITLE:
-      g_value_set_string (value, dzl_dock_widget_item_get_title (DZL_DOCK_ITEM 
(self)));
+      g_value_take_string (value, dzl_dock_widget_item_get_title 
(DZL_DOCK_ITEM (self)));
       break;
 
     default:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libdazzle-3.26.1/src/search/dzl-fuzzy-index-builder.c 
new/libdazzle-3.26.2/src/search/dzl-fuzzy-index-builder.c
--- old/libdazzle-3.26.1/src/search/dzl-fuzzy-index-builder.c   2017-10-03 
23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/src/search/dzl-fuzzy-index-builder.c   2018-01-11 
02:10:36.000000000 +0100
@@ -452,9 +452,9 @@
   DzlFuzzyIndexBuilder *self = source_object;
   g_autoptr(GVariant) variant = NULL;
   g_autoptr(GVariant) documents = NULL;
+  g_autoptr(GError) error = NULL;
   GVariantDict dict;
   GFile *file = task_data;
-  GError *error = NULL;
 
   g_assert (G_IS_TASK (task));
   g_assert (DZL_IS_FUZZY_INDEX_BUILDER (self));
@@ -518,7 +518,7 @@
                                 NULL,
                                 cancellable,
                                 &error))
-    g_task_return_error (task, error);
+    g_task_return_error (task, g_steal_pointer (&error));
   else
     g_task_return_boolean (task, TRUE);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdazzle-3.26.1/src/search/dzl-fuzzy-index.c 
new/libdazzle-3.26.2/src/search/dzl-fuzzy-index.c
--- old/libdazzle-3.26.1/src/search/dzl-fuzzy-index.c   2017-10-03 
23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/src/search/dzl-fuzzy-index.c   2018-01-11 
02:10:36.000000000 +0100
@@ -145,10 +145,10 @@
   g_autoptr(GVariant) keys = NULL;
   g_autoptr(GVariant) tables = NULL;
   g_autoptr(GVariant) metadata = NULL;
+  g_autoptr(GError) error = NULL;
   DzlFuzzyIndex *self = source_object;
   GFile *file = task_data;
   GVariantDict dict;
-  GError *error = NULL;
   gint version = 0;
   gboolean case_sensitive = FALSE;
 
@@ -178,7 +178,7 @@
 
   if (NULL == (mapped_file = g_mapped_file_new (path, FALSE, &error)))
     {
-      g_task_return_error (task, error);
+      g_task_return_error (task, g_steal_pointer (&error));
       return;
     }
 
@@ -305,14 +305,14 @@
 {
   DzlFuzzyIndexCursor *cursor = (DzlFuzzyIndexCursor *)object;
   g_autoptr(GTask) task = user_data;
-  GError *error = NULL;
+  g_autoptr(GError) error = NULL;
 
   g_assert (DZL_IS_FUZZY_INDEX_CURSOR (cursor));
   g_assert (G_IS_ASYNC_RESULT (result));
   g_assert (G_IS_TASK (task));
 
   if (!g_async_initable_init_finish (G_ASYNC_INITABLE (cursor), result, 
&error))
-    g_task_return_error (task, error);
+    g_task_return_error (task, g_steal_pointer (&error));
   else
     g_task_return_pointer (task, g_object_ref (cursor), g_object_unref);
 }
@@ -333,6 +333,7 @@
   g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable));
 
   task = g_task_new (self, cancellable, callback, user_data);
+  g_task_set_priority (task, G_PRIORITY_LOW);
   g_task_set_source_tag (task, dzl_fuzzy_index_query_async);
 
   cursor = g_object_new (DZL_TYPE_FUZZY_INDEX_CURSOR,
@@ -347,7 +348,7 @@
                                G_PRIORITY_LOW,
                                cancellable,
                                dzl_fuzzy_index_query_cb,
-                               g_object_ref (task));
+                               g_steal_pointer (&task));
 }
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libdazzle-3.26.1/src/shortcuts/dzl-shortcut-manager.c 
new/libdazzle-3.26.2/src/shortcuts/dzl-shortcut-manager.c
--- old/libdazzle-3.26.1/src/shortcuts/dzl-shortcut-manager.c   2017-10-03 
23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/src/shortcuts/dzl-shortcut-manager.c   2018-01-11 
02:10:36.000000000 +0100
@@ -517,7 +517,7 @@
     {
       for (guint i = 0; children[i] != NULL; i++)
         {
-          g_autofree gchar *path = g_build_filename (resource_dir, 
children[i], NULL);
+          g_autofree gchar *path = g_build_path ("/", resource_dir, 
children[i], NULL);
           g_autoptr(DzlShortcutTheme) theme = NULL;
           g_autoptr(GError) local_error = NULL;
           g_autoptr(GBytes) bytes = NULL;
@@ -804,6 +804,8 @@
                                     GtkWidget              *toplevel,
                                     const DzlShortcutChord *chord)
 {
+  DzlShortcutManagerPrivate *priv = dzl_shortcut_manager_get_instance_private 
(self);
+
   g_assert (DZL_IS_SHORTCUT_MANAGER (self));
   g_assert (GTK_IS_WIDGET (widget));
   g_assert (GTK_IS_WIDGET (toplevel));
@@ -812,6 +814,7 @@
   if (dzl_shortcut_chord_get_length (chord) == 1)
     {
       GApplication *app = g_application_get_default ();
+      const gchar *action;
       GdkModifierType state;
       guint keyval;
 
@@ -821,6 +824,33 @@
       if (gtk_bindings_activate (G_OBJECT (toplevel), keyval, state))
         return TRUE;
 
+      /* See if there is a mnemonic active that should be activated */
+      if (GTK_IS_WINDOW (toplevel) &&
+          gtk_window_mnemonic_activate (GTK_WINDOW (toplevel), keyval, state))
+        return TRUE;
+
+      /*
+       * See if we have something defined for this theme that
+       * can be activated directly.
+       */
+      action = _dzl_shortcut_theme_lookup_action (priv->internal_theme, chord);
+
+      if (action != NULL)
+        {
+          g_autofree gchar *prefix = NULL;
+          g_autofree gchar *name = NULL;
+          g_autoptr(GVariant) target = NULL;
+
+          dzl_g_action_name_parse_full (action, &prefix, &name, &target);
+
+          if (dzl_gtk_widget_action (toplevel, prefix, name, target))
+            return TRUE;
+        }
+
+      /*
+       * Now fallback to trying to activate the action within GtkApplication
+       * as the legacy Gtk bindings would do.
+       */
       if (GTK_IS_APPLICATION (app))
         {
           g_autofree gchar *accel = dzl_shortcut_chord_to_string (chord);
@@ -832,11 +862,12 @@
             {
               for (guint i = 0; actions[i] != NULL; i++)
                 {
-                  const gchar *action = actions[i];
                   g_autofree gchar *prefix = NULL;
                   g_autofree gchar *name = NULL;
                   g_autoptr(GVariant) param = NULL;
 
+                  action = actions[i];
+
                   if (!dzl_g_action_name_parse_full (action, &prefix, &name, 
&param))
                     {
                       g_warning ("Failed to parse: %s", action);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libdazzle-3.26.1/src/shortcuts/dzl-shortcut-private.h 
new/libdazzle-3.26.2/src/shortcuts/dzl-shortcut-private.h
--- old/libdazzle-3.26.1/src/shortcuts/dzl-shortcut-private.h   2017-10-03 
23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/src/shortcuts/dzl-shortcut-private.h   2018-01-11 
02:10:36.000000000 +0100
@@ -126,6 +126,8 @@
                                                                      
DzlShortcutManager         *manager);
 void                   _dzl_shortcut_theme_set_name                 
(DzlShortcutTheme           *self,
                                                                      const 
gchar                *name);
+const gchar           *_dzl_shortcut_theme_lookup_action            
(DzlShortcutTheme           *self,
+                                                                     const 
DzlShortcutChord     *chord);
 void                   _dzl_shortcut_theme_merge                    
(DzlShortcutTheme           *self,
                                                                      
DzlShortcutTheme           *layer);
 DzlShortcutMatch       _dzl_shortcut_theme_match                    
(DzlShortcutTheme           *self,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libdazzle-3.26.1/src/shortcuts/dzl-shortcut-theme-load.c 
new/libdazzle-3.26.2/src/shortcuts/dzl-shortcut-theme-load.c
--- old/libdazzle-3.26.1/src/shortcuts/dzl-shortcut-theme-load.c        
2017-10-03 23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/src/shortcuts/dzl-shortcut-theme-load.c        
2018-01-11 02:10:36.000000000 +0100
@@ -239,7 +239,7 @@
                            state->stack->pspec->name,
                            &value);
 
-  g_string_free (state->text, FALSE);
+  g_string_free (state->text, TRUE);
   state->text = NULL;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdazzle-3.26.1/src/shortcuts/dzl-shortcut-theme.c 
new/libdazzle-3.26.2/src/shortcuts/dzl-shortcut-theme.c
--- old/libdazzle-3.26.1/src/shortcuts/dzl-shortcut-theme.c     2017-10-03 
23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/src/shortcuts/dzl-shortcut-theme.c     2018-01-11 
02:10:36.000000000 +0100
@@ -352,7 +352,7 @@
 
   g_return_if_fail (name != NULL);
 
-  g_hash_table_insert (priv->contexts, g_strdup (name), g_object_ref 
(context));
+  g_hash_table_insert (priv->contexts, (gchar *)g_intern_string (name), 
g_object_ref (context));
 }
 
 DzlShortcutTheme *
@@ -447,6 +447,29 @@
     }
 }
 
+const gchar *
+_dzl_shortcut_theme_lookup_action (DzlShortcutTheme       *self,
+                                   const DzlShortcutChord *chord)
+{
+  DzlShortcutThemePrivate *priv = dzl_shortcut_theme_get_instance_private 
(self);
+
+  g_return_val_if_fail (DZL_IS_SHORTCUT_THEME (self), NULL);
+  g_return_val_if_fail (chord != NULL, NULL);
+
+  if (priv->actions_table != NULL)
+    {
+      const gchar *action = NULL;
+      DzlShortcutMatch match;
+
+      match = dzl_shortcut_chord_table_lookup (priv->actions_table, chord, 
(gpointer *)&action);
+
+      if (match == DZL_SHORTCUT_MATCH_EQUAL)
+        return action;
+    }
+
+  return NULL;
+}
+
 void
 dzl_shortcut_theme_set_chord_for_action (DzlShortcutTheme       *self,
                                          const gchar            
*detailed_action_name,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libdazzle-3.26.1/src/statemachine/dzl-state-machine-buildable.c 
new/libdazzle-3.26.2/src/statemachine/dzl-state-machine-buildable.c
--- old/libdazzle-3.26.1/src/statemachine/dzl-state-machine-buildable.c 
2017-10-03 23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/src/statemachine/dzl-state-machine-buildable.c 
2018-01-11 02:10:36.000000000 +0100
@@ -634,7 +634,7 @@
       StatesParserData *parser_data;
 
       parser_data = g_slice_new0 (StatesParserData);
-      parser_data->self = g_object_ref (buildable);
+      parser_data->self = g_object_ref (DZL_STATE_MACHINE (buildable));
       parser_data->builder = g_object_ref (builder);
       parser_data->stack = g_queue_new ();
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libdazzle-3.26.1/src/suggestions/dzl-suggestion-popover.c 
new/libdazzle-3.26.2/src/suggestions/dzl-suggestion-popover.c
--- old/libdazzle-3.26.1/src/suggestions/dzl-suggestion-popover.c       
2017-10-03 23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/src/suggestions/dzl-suggestion-popover.c       
2018-01-11 02:10:36.000000000 +0100
@@ -221,8 +221,12 @@
   g_return_if_fail (DZL_IS_SUGGESTION_POPOVER (self));
 
   if (self->transient_for != NULL)
-    gtk_window_group_remove_window (gtk_window_get_group (self->transient_for),
-                                    GTK_WINDOW (self));
+    {
+      GtkWindowGroup *group = gtk_window_get_group (self->transient_for);
+
+      if (group != NULL)
+        gtk_window_group_remove_window (group, GTK_WINDOW (self));
+    }
 
   g_signal_handler_disconnect (self->transient_for, 
self->delete_event_handler);
   g_signal_handler_disconnect (self->transient_for, 
self->size_allocate_handler);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdazzle-3.26.1/src/theming/dzl-css-provider.c 
new/libdazzle-3.26.2/src/theming/dzl-css-provider.c
--- old/libdazzle-3.26.1/src/theming/dzl-css-provider.c 2017-10-03 
23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/src/theming/dzl-css-provider.c 2018-01-11 
02:10:36.000000000 +0100
@@ -282,8 +282,18 @@
   switch (prop_id)
     {
     case PROP_BASE_PATH:
-      self->base_path = g_value_dup_string (value);
-      break;
+      {
+        const gchar *str = g_value_get_string (value);
+        gsize len = str ? strlen (str) : 0;
+
+        /* Ignore trailing slash to simplify building paths */
+        if (str && len && str[len-1] == '/')
+          self->base_path = g_strndup (str, len - 1);
+        else
+          self->base_path = g_strdup (str);
+
+        break;
+      }
 
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdazzle-3.26.1/src/theming/dzl-theme-manager.c 
new/libdazzle-3.26.2/src/theming/dzl-theme-manager.c
--- old/libdazzle-3.26.1/src/theming/dzl-theme-manager.c        2017-10-03 
23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/src/theming/dzl-theme-manager.c        2018-01-11 
02:10:36.000000000 +0100
@@ -108,7 +108,7 @@
    * current application theme, using @resource_path/css as the base directory
    * to locate theming files.
    */
-  css_dir = g_build_filename (resource_path, "themes", NULL);
+  css_dir = g_build_path ("/", resource_path, "themes/", NULL);
   g_debug ("Including CSS overrides from %s", css_dir);
   provider = dzl_css_provider_new (css_dir);
   g_hash_table_insert (self->providers_by_path, g_strdup (resource_path), 
g_object_ref (provider));
@@ -120,7 +120,7 @@
    * Add the icons sub-directory so that Gtk can locate the themed
    * icons (svg, png, etc).
    */
-  icons_dir = g_build_filename (real_path, "icons", NULL);
+  icons_dir = g_build_path ("/", real_path, "icons/", NULL);
   g_debug ("Loading icon resources from %s", icons_dir);
   if (!g_str_equal (real_path, resource_path))
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdazzle-3.26.1/src/tree/dzl-tree.c 
new/libdazzle-3.26.2/src/tree/dzl-tree.c
--- old/libdazzle-3.26.1/src/tree/dzl-tree.c    2017-10-03 23:03:19.000000000 
+0200
+++ new/libdazzle-3.26.2/src/tree/dzl-tree.c    2018-01-11 02:10:36.000000000 
+0100
@@ -437,6 +437,8 @@
                     use_markup ? "markup" : "text", text,
                     "foreground-rgba", rgba,
                     NULL);
+
+      g_object_unref (node);
     }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdazzle-3.26.1/src/util/dzl-gdk.c 
new/libdazzle-3.26.2/src/util/dzl-gdk.c
--- old/libdazzle-3.26.1/src/util/dzl-gdk.c     2017-10-03 23:03:19.000000000 
+0200
+++ new/libdazzle-3.26.2/src/util/dzl-gdk.c     2018-01-11 02:10:36.000000000 
+0100
@@ -32,6 +32,7 @@
                               gunichar   ch)
 {
   GdkDisplay *display;
+  GdkKeymap *keymap;
   GdkDevice *device;
   GdkSeat *seat;
   GdkEvent *ev;
@@ -74,7 +75,9 @@
       break;
     }
 
-  gdk_keymap_get_entries_for_keyval (gdk_keymap_get_default (),
+  display = gdk_window_get_display (window);
+  keymap = gdk_keymap_get_for_display (display);
+  gdk_keymap_get_entries_for_keyval (keymap,
                                      ev->key.keyval,
                                      &keys,
                                      &n_keys);
@@ -88,7 +91,6 @@
       g_free (keys);
     }
 
-  display = gdk_window_get_display (ev->any.window);
   seat = gdk_display_get_default_seat (display);
   device = gdk_seat_get_keyboard (seat);
   gdk_event_set_device (ev, device);
@@ -107,6 +109,7 @@
 {
   GdkDisplay *display;
   GdkDevice *device;
+  GdkKeymap *keymap;
   GdkEvent *ev;
   GdkSeat *seat;
   GdkKeymapKey *keys = NULL;
@@ -132,7 +135,9 @@
   ev->key.string = g_strdup (str);
   ev->key.length = strlen (str);
 
-  gdk_keymap_get_entries_for_keyval (gdk_keymap_get_default (),
+  display = gdk_window_get_display (window);
+  keymap = gdk_keymap_get_for_display (display);
+  gdk_keymap_get_entries_for_keyval (keymap,
                                      ev->key.keyval,
                                      &keys,
                                      &n_keys);
@@ -146,7 +151,6 @@
       g_free (keys);
     }
 
-  display = gdk_window_get_display (ev->any.window);
   seat = gdk_display_get_default_seat (display);
   device = gdk_seat_get_keyboard (seat);
   gdk_event_set_device (ev, device);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdazzle-3.26.1/src/util/dzl-gtk.c 
new/libdazzle-3.26.2/src/util/dzl-gtk.c
--- old/libdazzle-3.26.1/src/util/dzl-gtk.c     2017-10-03 23:03:19.000000000 
+0200
+++ new/libdazzle-3.26.2/src/util/dzl-gtk.c     2018-01-11 02:10:36.000000000 
+0100
@@ -217,6 +217,16 @@
     }
 }
 
+/**
+ * dzl_gtk_widget_find_child_typed:
+ *
+ * Tries to locate a widget in a hierarchy given it's #GType.
+ *
+ * There is not an efficient implementation of this method, so use it
+ * only when the hierarchy of widgets is small.
+ *
+ * Returns: (transfer none) (type Gtk.Widget) (nullable): A widget or %NULL
+ */
 gpointer
 dzl_gtk_widget_find_child_typed (GtkWidget *widget,
                                  GType      child_type)
@@ -398,7 +408,7 @@
                                   const gchar *mux_key)
 {
   const gchar * const *old_prefixes = NULL;
-  const gchar **prefixes = NULL;
+  g_autofree const gchar **prefixes = NULL;
 
   g_return_if_fail (GTK_IS_WIDGET (widget));
   g_return_if_fail (!from_widget || GTK_IS_WIDGET (from_widget));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdazzle-3.26.1/src/widgets/dzl-list-box.c 
new/libdazzle-3.26.2/src/widgets/dzl-list-box.c
--- old/libdazzle-3.26.1/src/widgets/dzl-list-box.c     2017-10-03 
23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/src/widgets/dzl-list-box.c     2018-01-11 
02:10:36.000000000 +0100
@@ -77,7 +77,7 @@
 
   if (priv->trashed_rows.length < priv->recycle_max)
     {
-      g_autoptr(GtkWidget) held = g_object_ref (row);
+      g_autoptr(GtkWidget) held = g_object_ref (GTK_WIDGET (row));
 
       gtk_list_box_unselect_row (GTK_LIST_BOX (self), GTK_LIST_BOX_ROW (row));
       gtk_container_remove (GTK_CONTAINER (self), GTK_WIDGET (row));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libdazzle-3.26.1/src/widgets/dzl-progress-menu-button.c 
new/libdazzle-3.26.2/src/widgets/dzl-progress-menu-button.c
--- old/libdazzle-3.26.1/src/widgets/dzl-progress-menu-button.c 2017-10-03 
23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/src/widgets/dzl-progress-menu-button.c 2018-01-11 
02:10:36.000000000 +0100
@@ -116,10 +116,14 @@
 begin_theatrics_from_main (gpointer user_data)
 {
   DzlProgressMenuButton *self = user_data;
+  GtkAllocation rect;
 
   g_assert (DZL_IS_PROGRESS_MENU_BUTTON (self));
 
-  dzl_progress_menu_button_begin_theatrics (self);
+  /* Ignore if still ont allocated */
+  gtk_widget_get_allocation (GTK_WIDGET (self), &rect);
+  if (rect.x != -1 && rect.y != -1)
+    dzl_progress_menu_button_begin_theatrics (self);
 
   return G_SOURCE_REMOVE;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libdazzle-3.26.1/tests/test-fuzzy-index.c 
new/libdazzle-3.26.2/tests/test-fuzzy-index.c
--- old/libdazzle-3.26.1/tests/test-fuzzy-index.c       2017-10-03 
23:03:19.000000000 +0200
+++ new/libdazzle-3.26.2/tests/test-fuzzy-index.c       2018-01-11 
02:10:36.000000000 +0100
@@ -117,6 +117,7 @@
   g_assert (r);
 
   g_object_unref (file);
+  g_main_loop_unref (main_loop);
 }
 
 static void


Reply via email to