Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package jgmenu for openSUSE:Factory checked 
in at 2022-10-31 10:45:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/jgmenu (Old)
 and      /work/SRC/openSUSE:Factory/.jgmenu.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "jgmenu"

Mon Oct 31 10:45:09 2022 rev:19 rq:1032379 version:4.4.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/jgmenu/jgmenu.changes    2021-09-17 
23:26:30.721266168 +0200
+++ /work/SRC/openSUSE:Factory/.jgmenu.new.2275/jgmenu.changes  2022-10-31 
10:45:11.157000719 +0100
@@ -1,0 +2,23 @@
+Mon Oct 31 07:45:23 UTC 2022 - Michael Vetter <[email protected]>
+
+- Update to 4.4.1:
+  * Chase librsvg2 API changes
+    + Use rsvg_handle_render_document() to render icons instead of
+      deprecated rsvg_handle_get_dimensions() and
+      rsvg_handle_render_cairo(). This requres librsvg2 >= 2.46
+    + jgmenu.svg: specify width and height to enable some applications
+      using imlib2 >= v1.8 (such as feh and tint2) to render the
+      jgmenu.svg icon correctly. This is an indirect result of the
+      librsvg2 API deprecation of rsvg_handle_get_dimensions() and
+      rsvg_handle_render_cairo()
+  * jgmenu-apps: correctly sort desktop entries in languages other than
+    English. Issue #166
+  * Handle symlinked icon directories in order to support Papirus-Dark.
+    Issue #122.
+  * Use cache directory ${XDG_CACHE_HOME:-$HOME/.cache} rather than just
+    defaulting to ~/.cache. Issue #175.
+  * Fix widgets cursor-motion bug caused by background rect and text
+    widgets blocking action widgets which should handle mouse-over.
+    Issue #167
+
+-------------------------------------------------------------------

Old:
----
  v4.4.0.tar.gz

New:
----
  v4.4.1.tar.gz

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

Other differences:
------------------
++++++ jgmenu.spec ++++++
--- /var/tmp/diff_new_pack.NNPkxR/_old  2022-10-31 10:45:12.129005616 +0100
+++ /var/tmp/diff_new_pack.NNPkxR/_new  2022-10-31 10:45:12.137005657 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package jgmenu
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           jgmenu
-Version:        4.4.0
+Version:        4.4.1
 Release:        0
 Summary:        Small X11 menu intended to be used with openbox and tint2
 License:        GPL-2.0-only
@@ -32,7 +32,7 @@
 BuildRequires:  pkgconfig(cairo)
 BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  pkgconfig(libmenu-cache)
-BuildRequires:  pkgconfig(librsvg-2.0)
+BuildRequires:  pkgconfig(librsvg-2.0) >= 2.46
 BuildRequires:  pkgconfig(libxml-2.0)
 BuildRequires:  pkgconfig(pango)
 BuildRequires:  pkgconfig(pangocairo)

++++++ v4.4.0.tar.gz -> v4.4.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/.travis.yml new/jgmenu-4.4.1/.travis.yml
--- old/jgmenu-4.4.0/.travis.yml        2021-09-16 19:36:13.000000000 +0200
+++ new/jgmenu-4.4.1/.travis.yml        2022-10-30 14:42:32.000000000 +0100
@@ -1,6 +1,6 @@
 language: c
 
-dist: xenial
+dist: jammy
 
 os: linux
 
@@ -25,19 +25,3 @@
   - make test
   - sudo checkinstall --install=no -y
 
-env:
-  global:
-    - CODECOV_TOKEN="786edde0-bf90-4e6b-9299-cc3f18033616"
-    - CFLAGS=-coverage
-
-after_success:
-  - bash <(curl -s https://codecov.io/bash)
-  - #https://github.com/probonopd/uploadtool/
-  - # ls -lh out/* Assuming you have some files in out/ that you would like to 
upload
-  - wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh
-  - bash upload.sh jgmenu_*_amd64.deb
-
-branches:
-  except:
-    - # Do not build tags that we create when we upload to GitHub Releases
-    - /^(?i:continuous)$/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/Makefile new/jgmenu-4.4.1/Makefile
--- old/jgmenu-4.4.0/Makefile   2021-09-16 19:36:13.000000000 +0200
+++ new/jgmenu-4.4.1/Makefile   2022-10-30 14:42:32.000000000 +0100
@@ -16,12 +16,14 @@
 jgmenu-ob:      CFLAGS += `xml2-config --cflags`
 jgmenu-obtheme: CFLAGS += `xml2-config --cflags`
 jgmenu-config:  CFLAGS += `pkg-config --cflags glib-2.0`
+jgmenu-apps:    CFLAGS += `pkg-config --cflags glib-2.0`
 
 jgmenu:         LIBS   += `pkg-config x11 xrandr cairo pango pangocairo 
librsvg-2.0 --libs`
 jgmenu:         LIBS   += -pthread -lpng
 jgmenu-ob:      LIBS   += `xml2-config --libs`
 jgmenu-obtheme: LIBS   += `xml2-config --libs`
 jgmenu-config:  LIBS   += `pkg-config --libs glib-2.0`
+jgmenu-apps:    LIBS   += `pkg-config --libs glib-2.0`
 
 LDFLAGS += $(LIBS)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/NEWS.md new/jgmenu-4.4.1/NEWS.md
--- old/jgmenu-4.4.0/NEWS.md    2021-09-16 19:36:13.000000000 +0200
+++ new/jgmenu-4.4.1/NEWS.md    2022-10-30 14:42:32.000000000 +0100
@@ -8,6 +8,7 @@
 
 | Date       | Release Notes                     |
 |------------|-----------------------------------|
+| 2022-10-30 | [v4.4.1](docs/relnotes/4.4.1.txt) |
 | 2021-09-16 | [v4.4.0](docs/relnotes/4.4.0.txt) |
 | 2021-01-02 | [v4.3.0](docs/relnotes/4.3.0.txt) |
 | 2020-05-19 | [v4.2.1](docs/relnotes/4.2.1.txt) |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/README.md new/jgmenu-4.4.1/README.md
--- old/jgmenu-4.4.0/README.md  2021-09-16 19:36:13.000000000 +0200
+++ new/jgmenu-4.4.1/README.md  2022-10-30 14:42:32.000000000 +0100
@@ -3,7 +3,6 @@
 
 <p align="center"> <img
 src="https://img.shields.io/github/license/johanmalm/jgmenu.svg"; /> <a
-href="https://www.codacy.com/app/johanmalm/jgmenu?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=johanmalm/jgmenu&amp;utm_campaign=Badge_Grade";><img
 
src="https://api.codacy.com/project/badge/Grade/a154619f17924fcd8ec2be8f338da063";
 /></a> <br /> <a
 href="https://repology.org/metapackage/jgmenu/versions";><img 
src="https://repology.org/badge/tiny-repos/jgmenu.svg"; /></a> <a
 href="https://repology.org/metapackage/jgmenu/versions";><img 
src="https://repology.org/badge/latest-versions/jgmenu.svg";></a> </p>
 
@@ -13,9 +12,7 @@
 href="https://jgmenu.github.io/";>Website</a>] [<a
 href="https://jgmenu.github.io/screenshots.html";>Screenshots</a>]</h3>
 
-<img src="https://i.imgur.com/O3E84L3.png"; alt="jgmenu" align="right" 
height="610px" width="512px">
-
-A simple, independent and contemporary-looking X11 menu, designed for 
scripting, ricing and tweaking.
+`jgmenu` is simple, independent and contemporary-looking X11 menu, designed 
for scripting, ricing and tweaking.
 
 It is hackable and has a simple code base. It does not depend on any toolkits 
such as GTK and Qt, but uses cairo and pango to render the menu.
 
@@ -30,6 +27,10 @@
 
 It has UTF-8 search support.
 
+<a href="https://www.youtube.com/watch?v=E-3CFgkfWXE";>Video (13:43) showing 
advanced jgmenu usage on Mabox</a>
+
+<img src="https://i.imgur.com/O3E84L3.png"; alt="jgmenu" height="610px" 
width="512px">
+
 # Versioning
 
 We use [semver 2.0.0](http://www.semver.org)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/contrib/gtktheme/jgmenu-gtktheme.py 
new/jgmenu-4.4.1/contrib/gtktheme/jgmenu-gtktheme.py
--- old/jgmenu-4.4.0/contrib/gtktheme/jgmenu-gtktheme.py        2021-09-16 
19:36:13.000000000 +0200
+++ new/jgmenu-4.4.1/contrib/gtktheme/jgmenu-gtktheme.py        2022-10-30 
14:42:32.000000000 +0100
@@ -56,9 +56,11 @@
         setconfig("color_title_border", rgb2hex(line))
 
 def cache(themename):
-    """ save the theme-name to ~/.cache/jgmenu/.last-gtktheme """
+    """ save the theme-name to XDG_CACHE_HOME/jgmenu/.last-gtktheme or 
+        ~/.cache/jgmenu/.last-gtktheme if it doesn't exist """
     print("themename={}".format(themename))
-    directory = os.environ["HOME"] + "/.cache/jgmenu"
+    home = os.environ["HOME"]
+    directory = os.getenv("XDG_CACHE_HOME", home + "/.cache") + "/jgmenu"
     if not os.path.exists(directory):
         os.mkdir(directory)
     f = open(directory + "/.last-gtktheme", "w")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/data/jgmenu.svg 
new/jgmenu-4.4.1/data/jgmenu.svg
--- old/jgmenu-4.4.0/data/jgmenu.svg    2021-09-16 19:36:13.000000000 +0200
+++ new/jgmenu-4.4.1/data/jgmenu.svg    2022-10-30 14:42:32.000000000 +0100
@@ -8,6 +8,8 @@
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd";
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape";
    viewBox="0 0 512 512"
+   width="512"
+   height="512"
    version="1.1"
    id="svg4"
    sodipodi:docname="jgmenu.svg"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/debian/changelog 
new/jgmenu-4.4.1/debian/changelog
--- old/jgmenu-4.4.0/debian/changelog   2021-09-16 19:36:13.000000000 +0200
+++ new/jgmenu-4.4.1/debian/changelog   2022-10-30 14:42:32.000000000 +0100
@@ -1,3 +1,9 @@
+jgmenu (4.4.1-1) unstable; urgency=medium
+
+  * New upstream release
+
+ -- Johan Malm <[email protected]>  Sun, 30 Oct 2022 13:36:33 +0000
+
 jgmenu (4.4.0-1) unstable; urgency=medium
 
   * New upstream release
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/debian/control 
new/jgmenu-4.4.1/debian/control
--- old/jgmenu-4.4.0/debian/control     2021-09-16 19:36:13.000000000 +0200
+++ new/jgmenu-4.4.1/debian/control     2022-10-30 14:42:32.000000000 +0100
@@ -5,8 +5,8 @@
 Standards-Version: 4.3.0
 Homepage: https://jgmenu.github.io/
 Build-Depends: debhelper (>= 10), libx11-dev, libxrandr-dev, libcairo2-dev,
- libpango1.0-dev, librsvg2-dev, libxml2-dev, libglib2.0-dev, libmenu-cache-dev,
- pkg-config, libxfce4panel-2.0-dev
+ libpango1.0-dev, librsvg2-dev (>=2.46), libxml2-dev, libglib2.0-dev,
+ libmenu-cache-dev, pkg-config, libxfce4panel-2.0-dev
 
 Package: jgmenu
 Architecture: any
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/docs/notes_on_icons 
new/jgmenu-4.4.1/docs/notes_on_icons
--- old/jgmenu-4.4.0/docs/notes_on_icons        2021-09-16 19:36:13.000000000 
+0200
+++ new/jgmenu-4.4.1/docs/notes_on_icons        2022-10-30 14:42:32.000000000 
+0100
@@ -7,7 +7,9 @@
 This allows the root-menu to be displayed quickly whilst the rest is loaded in
 the background.
 
-When jgmenu if first run, icon 'cache' is created at '~/.cache/jgmenu/icons/'.
+When jgmenu if first run, icon 'cache' is created in the path specified in the 
+XDG_CACHE_HOME environment variable. If this variable is unset, it default 
back 
+on '~/.cache/jgmenu/icons/'.
 The cache consists of symlinks pointing to icons which match the name, size and
 theme. For example: folder -> /usr/share/icons/Adwaita/22x22/places/folder.png
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/docs/relnotes/4.4.1.txt 
new/jgmenu-4.4.1/docs/relnotes/4.4.1.txt
--- old/jgmenu-4.4.0/docs/relnotes/4.4.1.txt    1970-01-01 01:00:00.000000000 
+0100
+++ new/jgmenu-4.4.1/docs/relnotes/4.4.1.txt    2022-10-30 14:42:32.000000000 
+0100
@@ -0,0 +1,31 @@
+jgmenu v4.4.1 release notes
+===========================
+
+Updates since v4.4.0
+--------------------
+
+  * Chase librsvg2 API changes
+
+      - Use rsvg_handle_render_document() to render icons instead of
+        deprecated rsvg_handle_get_dimensions() and
+        rsvg_handle_render_cairo()
+        This requres librsvg2 >= 2.46
+
+      - jgmenu.svg: specify width and height to enable some applications
+        using imlib2 >= v1.8 (such as feh and tint2) to render the
+        jgmenu.svg icon correctly. This is an indirect result of the
+        librsvg2 API deprecation of rsvg_handle_get_dimensions() and
+        rsvg_handle_render_cairo()
+
+  * jgmenu-apps: correctly sort desktop entries in languages other than
+    English. Issue #166
+
+  * Handle symlinked icon directories in order to support Papirus-Dark.
+    Issue #122. With thanks to @rafern @VectorKappa @M4he
+
+  * Use cache directory ${XDG_CACHE_HOME:-$HOME/.cache} rather than just
+    defaulting to ~/.cache. Issue #175. Written-by: @tupo2
+
+  * Fix widgets cursor-motion bug caused by background @rect and @text
+    widgets blocking action widgets which should handle mouse-over.
+    Issue #167
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/scripts/version-gen.sh 
new/jgmenu-4.4.1/scripts/version-gen.sh
--- old/jgmenu-4.4.0/scripts/version-gen.sh     2021-09-16 19:36:13.000000000 
+0200
+++ new/jgmenu-4.4.1/scripts/version-gen.sh     2022-10-30 14:42:32.000000000 
+0100
@@ -8,7 +8,7 @@
 # Change "default_version" before doing a `git tag -a ...`
 #
 
-default_version="4.4.0"
+default_version="4.4.1"
 
 v=$(git describe --dirty --abbrev=1 2>/dev/null)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/src/cache.c new/jgmenu-4.4.1/src/cache.c
--- old/jgmenu-4.4.0/src/cache.c        2021-09-16 19:36:13.000000000 +0200
+++ new/jgmenu-4.4.1/src/cache.c        2022-10-30 14:42:32.000000000 +0100
@@ -10,7 +10,7 @@
 #include "util.h"
 #include "banned.h"
 
-#define CACHE_LOCATION "~/.cache/jgmenu/icons"
+#define DEFAULT_CACHE_LOCATION "~/.cache"
 static struct sbuf *cache_location;
 
 static struct sbuf icon_theme;
@@ -110,6 +110,23 @@
        return ret;
 }
 
+static void cache_get_dir(void)
+{
+       const char *xdg_cache_home = getenv("XDG_CACHE_HOME");
+
+       if (xdg_cache_home && *xdg_cache_home)
+               sbuf_addstr(cache_location, xdg_cache_home);
+       else
+               sbuf_addstr(cache_location, DEFAULT_CACHE_LOCATION);
+       sbuf_addstr(cache_location, "/jgmenu/icons");
+       sbuf_expand_tilde(cache_location);
+}
+
+char *cache_icon_get_dir(void)
+{
+       return cache_location->buf;
+}
+
 static void cache_delete(void)
 {
        char cmd[512];
@@ -136,11 +153,10 @@
                die("cache.c: icon_{theme,size} needs to be set");
        cache_location = xmalloc(sizeof(struct sbuf));
        sbuf_init(cache_location);
-       sbuf_cpy(cache_location, CACHE_LOCATION);
-       sbuf_expand_tilde(cache_location);
+       cache_get_dir();
        if (cache_check_index_theme(icon_theme.buf, icon_size) < 0) {
                cache_delete();
-               mkdir_p(CACHE_LOCATION);
+               mkdir_p(cache_location->buf);
                cache_create_index_theme(icon_theme.buf, icon_size);
        }
        first_run = 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/src/cache.h new/jgmenu-4.4.1/src/cache.h
--- old/jgmenu-4.4.0/src/cache.h        2021-09-16 19:36:13.000000000 +0200
+++ new/jgmenu-4.4.1/src/cache.h        2022-10-30 14:42:32.000000000 +0100
@@ -5,6 +5,7 @@
 
 void cache_set_icon_theme(const char *theme);
 void cache_set_icon_size(int size);
+char *cache_icon_get_dir(void);
 int cache_touch(const char *name);
 int cache_strdup_path(const char *name, struct sbuf *path);
 int cache_create_symlink(char *path, char *name);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/src/desktop.c 
new/jgmenu-4.4.1/src/desktop.c
--- old/jgmenu-4.4.0/src/desktop.c      2021-09-16 19:36:13.000000000 +0200
+++ new/jgmenu-4.4.1/src/desktop.c      2022-10-30 14:42:32.000000000 +0100
@@ -9,6 +9,7 @@
 #include <string.h>
 #include <dirent.h>
 #include <stdbool.h>
+#include <glib.h>
 
 #include "desktop.h"
 #include "xdgdirs.h"
@@ -87,8 +88,6 @@
        if (!filename)
                return false;
        for (i = 0; i < nr_apps; i++) {
-               if (!apps[i].filename)
-                       continue;
                if (!strcmp(apps[i].filename, filename))
                        return true;
        }
@@ -99,7 +98,7 @@
 {
        size_t len = strlen(p);
 
-       memmove(p, p + 1, len + 1);
+       memmove(p, p + 1, len);
        *(p + len) = '\0';
 }
 
@@ -228,9 +227,18 @@
 {
        const struct app *aa = (struct app *)a;
        const struct app *bb = (struct app *)b;
+       const char *aa_name, *bb_name;
+       int ret;
 
        BUG_ON(!aa->name || !bb->name);
-       return strcasecmp(aa->name, bb->name);
+       aa_name = aa->name_localized[0] != '\0' ? aa->name_localized : aa->name;
+       bb_name = bb->name_localized[0] != '\0' ? bb->name_localized : bb->name;
+       aa_name = g_utf8_casefold(aa_name, -1);
+       bb_name = g_utf8_casefold(bb_name, -1);
+       ret = strcmp(aa_name, bb_name);
+       xfree(aa_name);
+       xfree(bb_name);
+       return ret;
 }
 
 struct app *desktop_read_files(void)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/src/icon-find.c 
new/jgmenu-4.4.1/src/icon-find.c
--- old/jgmenu-4.4.0/src/icon-find.c    2021-09-16 19:36:13.000000000 +0200
+++ new/jgmenu-4.4.1/src/icon-find.c    2022-10-30 14:42:32.000000000 +0100
@@ -6,6 +6,7 @@
 
 #include <ftw.h>
 #include <dirent.h>
+#include <stdbool.h>
 
 #include "icon-find.h"
 #include "xdgdirs.h"
@@ -243,6 +244,22 @@
        return strncmp(prefix, str, strlen(prefix)) == 0;
 }
 
+static bool isdir(struct dirent *entry, const char *pathname)
+{
+       struct stat sb;
+
+       if (entry->d_type == DT_DIR)
+               return true;
+       else if (entry->d_type != DT_LNK)
+               return false;
+
+       /* It's a symlink, so let's deal with it */
+       if (stat(pathname, &sb) != 0) {
+               return false;
+       }
+       return S_ISDIR(sb.st_mode);
+}
+
 static void search_dir_for_files(const char *path, struct list_head *files, 
int depth_limit)
 {
        struct dirent *entry;
@@ -266,7 +283,7 @@
                sbuf_cpy(&s, path);
                sbuf_addch(&s, '/');
                sbuf_addstr(&s, entry->d_name);
-               if (entry->d_type == DT_DIR) {
+               if (isdir(entry, s.buf)) {
                        if (entry->d_name[0] != '.')
                                search_dir_for_files(s.buf, files, depth_limit 
> 0 ? depth_limit - 1 : depth_limit);
                } else if (entry->d_type == DT_REG || entry->d_type == DT_LNK) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/src/icon.c new/jgmenu-4.4.1/src/icon.c
--- old/jgmenu-4.4.0/src/icon.c 2021-09-16 19:36:13.000000000 +0200
+++ new/jgmenu-4.4.1/src/icon.c 2022-10-30 14:42:32.000000000 +0100
@@ -23,7 +23,6 @@
 #include "xpm-loader.h"
 #include "cache.h"
 #include "config.h"
-#include "icon.h"
 #include "banned.h"
 
 #define DEBUG_THEMES 0
@@ -101,38 +100,32 @@
        cairo_surface_t *surface;
        cairo_t *cr;
        RsvgHandle *svg;
-       RsvgDimensionData  dimensions;
        GError *err = NULL;
-       double scale, ratio;
+       RsvgRectangle viewport = {
+               .x = 0,
+               .y = 0,
+               .width = size,
+               .height = size,
+       };
 
        svg = rsvg_handle_new_from_file(filename, &err);
        if (err) {
-               fprintf(stderr, "warning: problem loading svg %s-%s\n", 
filename, err->message);
+               fprintf(stderr, "warning: problem loading svg %s-%s\n",
+                       filename, err->message);
                g_error_free(err);
                return NULL;
        }
-       rsvg_handle_get_dimensions(svg, &dimensions);
 
-       if (dimensions.width == dimensions.height) {
-               surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
-                                                    size, size);
-               cr = cairo_create(surface);
-               cairo_scale(cr, (double)size / dimensions.width,
-                           (double)size / dimensions.height);
-       } else if (dimensions.width > dimensions.height) {
-               ratio = (double)dimensions.width / dimensions.height;
-               scale = (double)size / dimensions.width;
-               surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, size, 
size / ratio);
-               cr = cairo_create(surface);
-               cairo_scale(cr, scale, scale);
-       } else {
-               ratio = (double)dimensions.width / dimensions.height;
-               scale = (double)size / dimensions.height;
-               surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, size 
* ratio, size);
-               cr = cairo_create(surface);
-               cairo_scale(cr, scale, scale);
+       surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, size, size);
+       cr = cairo_create(surface);
+
+       rsvg_handle_render_document(svg, cr, &viewport, &err);
+       if (err) {
+               fprintf(stderr, "warning: problem rendering svg %s-%s\n",
+                       filename, err->message);
+               g_error_free(err);
+               return NULL;
        }
-       rsvg_handle_render_cairo(svg, cr);
        cairo_destroy(cr);
        g_object_unref(svg);
 
@@ -225,7 +218,7 @@
                }
        }
        if (nr_symlinks)
-               fprintf(stderr, "info: created %d symlinks in 
~/.cache/jgmenu/icons/\n", nr_symlinks);
+               fprintf(stderr, "info: created %d symlinks in %s\n", 
nr_symlinks, cache_icon_get_dir());
        list_for_each_entry_safe(path, tmp_path, &icon_paths, list) {
                free(path->name.buf);
                free(path->path.buf);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/src/jgmenu-init.sh 
new/jgmenu-4.4.1/src/jgmenu-init.sh
--- old/jgmenu-4.4.0/src/jgmenu-init.sh 2021-09-16 19:36:13.000000000 +0200
+++ new/jgmenu-4.4.1/src/jgmenu-init.sh 2022-10-30 14:42:32.000000000 +0100
@@ -285,8 +285,14 @@
 }
 
 icon_theme_last_used_by_jgmenu () {
-       icon_theme=$(grep -i 'Inherits' ~/.cache/jgmenu/icons/index.theme)
-       icon_size=$(grep -i 'Size' ~/.cache/jgmenu/icons/index.theme)
+       if [ -d "$XDG_CACHE_HOME" ]
+       then
+               icon_theme=$(grep -i 'Inherits' 
$XDG_CACHE_HOME/jgmenu/icons/index.theme)
+               icon_size=$(grep -i 'Size' 
$XDG_CACHE_HOME/jgmenu/icons/index.theme)
+       else
+               icon_theme=$(grep -i 'Inherits' 
~/.cache/jgmenu/icons/index.theme)
+               icon_size=$(grep -i 'Size' ~/.cache/jgmenu/icons/index.theme)
+       fi
        printf 'last time, icon-theme %s-%s was used\n' 
"${icon_theme#Inherits=}" \
                "${icon_size#Size=}"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/src/widgets.c 
new/jgmenu-4.4.1/src/widgets.c
--- old/jgmenu-4.4.0/src/widgets.c      2021-09-16 19:36:13.000000000 +0200
+++ new/jgmenu-4.4.1/src/widgets.c      2022-10-30 14:42:32.000000000 +0100
@@ -191,7 +191,9 @@
        mouseover = 0;
        pointer.x = x;
        pointer.y = y;
-       list_for_each_entry(w, &widgets, list) {
+       list_for_each_entry_reverse(w, &widgets, list) {
+               if (!w->action || w->action[0] == '\0')
+                       continue;
                widget_area.x = w->x;
                widget_area.y = w->y;
                widget_area.w = w->w;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jgmenu-4.4.0/tests/t1201-lx.t 
new/jgmenu-4.4.1/tests/t1201-lx.t
--- old/jgmenu-4.4.0/tests/t1201-lx.t   2021-09-16 19:36:13.000000000 +0200
+++ new/jgmenu-4.4.1/tests/t1201-lx.t   2022-10-30 14:42:32.000000000 +0100
@@ -62,7 +62,12 @@
        printf "%b\n" "XDG_DATA_DIRS=$XDG_DATA_DIRS"
        export XDG_MENU_PREFIX="${1}-"
 
-       rm -rf ~/.cache/menus &&
+       if [ -d "$XDG_CACHE_HOME" ]
+       then
+               rm -rf $XDG_CACHE_HOME/menus
+       else
+               rm -rf ~/.cache/menus
+       fi
        cp "../t1201/${1}.expect" expect &&
        LANG=C LC_ALL=C ../../contrib/lx/jgmenu-lx >actual &&
        cp "../t1201/${1}.expect" expect &&

Reply via email to