Hello community, here is the log from the commit of package brisk-menu for openSUSE:Factory checked in at 2019-05-16 22:02:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/brisk-menu (Old) and /work/SRC/openSUSE:Factory/.brisk-menu.new.5148 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "brisk-menu" Thu May 16 22:02:56 2019 rev:5 rq:682544 version:0.5.0 Changes: -------- --- /work/SRC/openSUSE:Factory/brisk-menu/brisk-menu.changes 2017-11-09 14:04:40.488081153 +0100 +++ /work/SRC/openSUSE:Factory/.brisk-menu.new.5148/brisk-menu.changes 2019-05-16 22:02:59.510671601 +0200 @@ -1,0 +2,6 @@ +Fri Dec 14 12:54:01 UTC 2018 - sor.ale...@meowr.ru + +- Add brisk-menu-mate-menus-1.22.patch: + https://github.com/solus-project/brisk-menu/pull/103 + +------------------------------------------------------------------- New: ---- brisk-menu-mate-menus-1.22.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ brisk-menu.spec ++++++ --- /var/tmp/diff_new_pack.zMoDCm/_old 2019-05-16 22:03:00.082671242 +0200 +++ /var/tmp/diff_new_pack.zMoDCm/_new 2019-05-16 22:03:00.086671239 +0200 @@ -1,7 +1,7 @@ # # spec file for package brisk-menu # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 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 @@ -12,7 +12,7 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # @@ -20,21 +20,22 @@ Version: 0.5.0 Release: 0 Summary: Modern, efficient menu for MATE -License: GPL-2.0+ AND CC-BY-SA-4.0 +License: GPL-2.0-or-later AND CC-BY-SA-4.0 Group: System/GUI/Other Url: https://github.com/solus-project/brisk-menu Source: https://github.com/solus-project/brisk-menu/releases/download/v%{version}/%{name}-v%{version}.tar.xz Source1: https://github.com/solus-project/brisk-menu/releases/download/v%{version}/%{name}-v%{version}.tar.xz.asc Source2: %{name}.keyring +# PATCH-FIX-UPSTREAM brisk-menu-mate-menus-1.22.patch -- https://github.com/solus-project/brisk-menu/pull/103 +Patch0: brisk-menu-mate-menus-1.22.patch BuildRequires: hicolor-icon-theme BuildRequires: meson BuildRequires: pkgconfig -BuildRequires: pkgconfig(gdk-x11-3.0) >= 3.18.0 -BuildRequires: pkgconfig(gio-unix-2.0) >= 2.44.0 -BuildRequires: pkgconfig(glib-2.0) >= 2.44.0 -BuildRequires: pkgconfig(gtk+-3.0) >= 3.18.0 -BuildRequires: pkgconfig(libmate-menu) >= 1.18.0 -BuildRequires: pkgconfig(libmatepanelapplet-4.0) >= 1.18.0 +BuildRequires: pkgconfig(gio-2.0) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(libmate-menu) >= 1.21 +BuildRequires: pkgconfig(libmatepanelapplet-4.0) >= 1.21 BuildRequires: pkgconfig(libnotify) BuildRequires: pkgconfig(x11) Recommends: %{name}-lang @@ -45,6 +46,7 @@ %prep %setup -q -n %{name}-v%{version} +%patch0 -p1 %lang_package @@ -56,7 +58,7 @@ %meson_install %find_lang %{name} -%if 0%{?suse_version} <= 1320 +%if 0%{?suse_version} < 1500 %post %icon_theme_cache_post %glib2_gsettings_schema_post @@ -67,7 +69,7 @@ %endif %files -%doc LICENSE* +%license LICENSE* %{_libexecdir}/brisk-menu %dir %{_datadir}/mate-panel/ %dir %{_datadir}/mate-panel/applets/ ++++++ brisk-menu-mate-menus-1.22.patch ++++++ --- a/meson.build +++ b/meson.build @@ -52,7 +52,7 @@ gnome = import('gnome') # Required minimum versions gtk_min_version = '>= 3.18.0' -mate_min_version = '>= 1.16.0' +mate_min_version = '>= 1.21.0' glib_min_version = '>= 2.44.0' # GTK/UI deps --- a/src/backend/apps/apps-backend.c +++ b/src/backend/apps/apps-backend.c @@ -19,6 +19,8 @@ BRISK_BEGIN_PEDANTIC #include "apps-section.h" #include <gio/gio.h> #include <glib/gi18n.h> + +#define MATEMENU_I_KNOW_THIS_IS_UNSTABLE #include <matemenu-tree.h> BRISK_END_PEDANTIC @@ -72,9 +74,11 @@ static void brisk_apps_backend_launch_action(GSimpleAction *action, GVariant *pa DEF_AUTOFREE(gchar, g_free) DEF_AUTOFREE(GSList, g_slist_free) DEF_AUTOFREE(MateMenuTreeDirectory, matemenu_tree_item_unref) -DEF_AUTOFREE(MateMenuTreeItem, matemenu_tree_item_unref) -DEF_AUTOFREE(MateMenuTree, matemenu_tree_unref) +DEF_AUTOFREE(MateMenuTreeEntry, matemenu_tree_item_unref) +DEF_AUTOFREE(MateMenuTreeIter, matemenu_tree_iter_unref) +DEF_AUTOFREE(MateMenuTree, g_object_unref) DEF_AUTOFREE(GDesktopAppInfo, g_object_unref) +DEF_AUTOFREE(GError, g_error_free) /** * Due to a glib weirdness we must fully invalidate the monitor's cache @@ -352,12 +356,18 @@ static gboolean brisk_apps_backend_build_from_tree(BriskAppsBackend *self, const { autofree(MateMenuTree) *tree = NULL; autofree(MateMenuTreeDirectory) *dir = NULL; + autofree(GError) *error = NULL; - tree = matemenu_tree_lookup(menu_id, MATEMENU_TREE_FLAGS_NONE); + tree = matemenu_tree_new(menu_id, MATEMENU_TREE_FLAGS_NONE); if (!tree) { return FALSE; } + if (!matemenu_tree_load_sync(tree, &error)) { + g_message("Failed to load tree: %s", error->message); + return FALSE; + } + dir = matemenu_tree_get_root_directory(tree); if (!dir) { return FALSE; @@ -392,37 +402,31 @@ static void brisk_apps_backend_recurse_root(BriskAppsBackend *self, MateMenuTreeDirectory *directory, MateMenuTreeDirectory *root) { - autofree(GSList) *kids = NULL; - GSList *elem = NULL; + autofree(MateMenuTreeIter) *iter = NULL; + MateMenuTreeItemType type; - kids = matemenu_tree_directory_get_contents(directory); + iter = matemenu_tree_directory_iter(directory); /* Iterate the root tree */ - for (elem = kids; elem; elem = elem->next) { - autofree(MateMenuTreeItem) *item = elem->data; - - switch (matemenu_tree_item_get_type(item)) { + while ((type = matemenu_tree_iter_next(iter)) != MATEMENU_TREE_ITEM_INVALID) { + switch (type) { case MATEMENU_TREE_ITEM_DIRECTORY: { - MateMenuTreeDirectory *dir = MATEMENU_TREE_DIRECTORY(item); + autofree(MateMenuTreeDirectory) *dir = + matemenu_tree_iter_get_directory(iter); autofree(MateMenuTreeDirectory) *parent = NULL; + autofree(MateMenuTreeIter) *children = NULL; BriskSection *section = NULL; - GSList *children = NULL; - guint n_children = 0; - parent = matemenu_tree_item_get_parent(item); + parent = matemenu_tree_directory_get_parent(dir); /* Nested menus basically only happen in mate-settings.menu */ if (parent != root) { goto recurse_root; } - children = matemenu_tree_directory_get_contents(dir); - if (children) { - n_children = g_slist_length(children); - g_slist_free_full(children, matemenu_tree_item_unref); - } + children = matemenu_tree_directory_iter(dir); /* Skip empty sections entirely */ - if (n_children < 1) { + if (matemenu_tree_iter_next(children) == MATEMENU_TREE_ITEM_INVALID) { continue; } @@ -437,7 +441,7 @@ static void brisk_apps_backend_recurse_root(BriskAppsBackend *self, brisk_apps_backend_recurse_root(self, dir, root); } break; case MATEMENU_TREE_ITEM_ENTRY: { - MateMenuTreeEntry *entry = MATEMENU_TREE_ENTRY(item); + autofree(MateMenuTreeEntry) *entry = matemenu_tree_iter_get_entry(iter); autofree(GDesktopAppInfo) *info = NULL; const gchar *desktop_file = NULL; BriskItem *app_item = NULL; --- a/src/backend/apps/apps-section.c +++ b/src/backend/apps/apps-section.c @@ -54,48 +54,22 @@ static const GIcon *brisk_apps_section_get_icon(BriskSection *item); static const gchar *brisk_apps_section_get_backend_id(BriskSection *item); static gboolean brisk_apps_section_can_show_item(BriskSection *section, BriskItem *item); -/** - * Create a GIcon for the given path - */ -static GIcon *brisk_apps_section_create_path_icon(const gchar *path) -{ - autofree(GFile) *file = NULL; - - file = g_file_new_for_path(path); - if (!file) { - return NULL; - } - return g_file_icon_new(file); -} - static void brisk_apps_section_update_directory(BriskAppsSection *self, MateMenuTreeDirectory *directory) { g_clear_object(&self->icon); g_clear_pointer(&self->id, g_free); g_clear_pointer(&self->name, g_free); - const gchar *icon = NULL; if (!directory) { return; } - /* Set our ID and name */ + /* Set our ID, name, and icon */ self->id = g_strdup_printf("%s.mate-directory", matemenu_tree_directory_get_menu_id(directory)); self->name = g_strdup(matemenu_tree_directory_get_name(directory)); - - icon = matemenu_tree_directory_get_icon(directory); - if (!icon) { - return; - } - - /* Set an appropriate icon based on the string */ - if (icon[0] == '/') { - self->icon = brisk_apps_section_create_path_icon(icon); - } else { - self->icon = g_themed_icon_new_with_default_fallbacks(icon); - } + self->icon = matemenu_tree_directory_get_icon(directory); } static void brisk_apps_section_set_property(GObject *object, guint id, const GValue *value, --- a/src/backend/apps/apps-section.h +++ b/src/backend/apps/apps-section.h @@ -13,6 +13,8 @@ #include <gio/gio.h> #include <glib-object.h> + +#define MATEMENU_I_KNOW_THIS_IS_UNSTABLE #include <matemenu-tree.h> #include "../section.h" --- a/src/frontend/desktop-button.h +++ b/src/frontend/desktop-button.h @@ -13,7 +13,6 @@ #include <glib-object.h> #include <gtk/gtk.h> -#include <matemenu-tree.h> #include "launcher.h"