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&utm_medium=referral&utm_content=johanmalm/jgmenu&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 &&
