Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ristretto for openSUSE:Factory 
checked in at 2022-07-11 19:09:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ristretto (Old)
 and      /work/SRC/openSUSE:Factory/.ristretto.new.1523 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ristretto"

Mon Jul 11 19:09:51 2022 rev:51 rq:988333 version:0.12.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/ristretto/ristretto.changes      2022-01-20 
00:13:26.950633160 +0100
+++ /work/SRC/openSUSE:Factory/.ristretto.new.1523/ristretto.changes    
2022-07-11 19:11:13.839768338 +0200
@@ -1,0 +2,25 @@
+Sun Jul 10 17:19:40 UTC 2022 - Marcel Kuehlhorn <[email protected]>
+
+- Update to version 0.12.3
+  * thumbnailer: Fall back on lower qualities in case of
+    unsupported flavor (gxo#apps/ristretto#81)
+  * Secure error handling when opening multiple files
+  * Use `G_FILE_MONITOR_WATCH_MOVES` for file monitoring
+  * Do not keep sticky state when current file is removed
+  * Fix management of transaction source id
+  * Correctly handle deletion when there is only one image
+    (gxo#apps/ristretto#89)
+  * Update iter list on insertion and deletion
+    (gxo#apps/ristretto#88)
+  * build: Fix intltool lock file problem during make distcheck
+  * Display error message on stderr
+  * i18n: Use `xfce_textdomain()` to initialize translations
+  * Ensure that an error is set if no pixbuf is available
+  * Fix some memory leaks
+  * flatpak: Some updates from Flathub
+  * Remove old icon files
+  * Remove TODO file
+  * Flatpak: Add libopenraw dependency
+  * Translation Updates
+
+-------------------------------------------------------------------

Old:
----
  ristretto-0.12.2.tar.bz2

New:
----
  ristretto-0.12.3.tar.bz2

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

Other differences:
------------------
++++++ ristretto.spec ++++++
--- /var/tmp/diff_new_pack.MiFEws/_old  2022-07-11 19:11:14.267768959 +0200
+++ /var/tmp/diff_new_pack.MiFEws/_new  2022-07-11 19:11:14.271768965 +0200
@@ -18,7 +18,7 @@
 
 %bcond_with git
 Name:           ristretto
-Version:        0.12.2
+Version:        0.12.3
 Release:        0lib
 Summary:        Image viewer for the Xfce Desktop Environment
 License:        GPL-2.0-or-later

++++++ ristretto-0.12.2.tar.bz2 -> ristretto-0.12.3.tar.bz2 ++++++
++++ 2160 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/ChangeLog new/ristretto-0.12.3/ChangeLog
--- old/ristretto-0.12.2/ChangeLog      2022-01-14 12:26:53.000000000 +0100
+++ new/ristretto-0.12.3/ChangeLog      2022-07-09 22:49:33.000000000 +0200
@@ -1,3 +1,271 @@
+commit 5aade5c6e1b4b0a815aa4c336fabb3b2a7a92b5a
+Author: Anonymous <[email protected]>
+Date:   Tue Jul 5 00:49:58 2022 +0200
+
+    I18n: Update translation ko (100%).
+    
+    206 translated messages.
+    
+    Transifex (https://www.transifex.com/xfce/public/).
+
+commit 4b67569ed5061d36279c32ac72b8dd649760d958
+Author: Ga??l Bonithon <[email protected]>
+Date:   Sun Jul 3 16:11:17 2022 +0200
+
+    thumbnailer: Fall back on lower qualities in case of unsupported flavor
+    
+    Replaces: de65c2f23ce2b5b84d5f6de9e7568e707073bf3f
+    Related: #81
+
+commit f40f8cd591b773aeed6afac0e22715cd5bb8d4a9
+Author: Ga??l Bonithon <[email protected]>
+Date:   Sun Jul 3 11:28:57 2022 +0200
+
+    Secure error handling when opening multiple files
+    
+    Although this opening mode is made for a small number of files, there is
+    no guarantee that this is respected and there is therefore a risk of
+    integer overflow.
+    
+    Related: !33
+
+commit e77550803f83d64dfcc02f49452476f602887748
+Author: Anonymous <[email protected]>
+Date:   Fri Jul 1 12:51:07 2022 +0200
+
+    I18n: Update translation tr (100%).
+    
+    206 translated messages.
+    
+    Transifex (https://www.transifex.com/xfce/public/).
+
+commit 34dd6350c288c7e76fc168e7476515113b36c99b
+Author: Ga??l Bonithon <[email protected]>
+Date:   Tue Jun 14 09:10:01 2022 +0200
+
+    Use `G_FILE_MONITOR_WATCH_MOVES` for file monitoring
+    
+    For file monitoring only, not for directory monitoring, where this is
+    unnecessary. The rationale is that it allows for proper handling of file
+    renaming, which otherwise requires directory monitoring to receive the
+    `G_FILE_MONITOR_EVENT_CREATED` event.
+    
+    Requires: GLib 2.46
+
+commit f02794eb51a1c48ac64efcbdb46f0dba39051c4f
+Author: Ga??l Bonithon <[email protected]>
+Date:   Mon Jun 13 22:52:17 2022 +0200
+
+    Do not keep sticky state when current file is removed
+    
+    Unlike what was done in d135e3ad185c90cf3527b786b856e1bfffe30cfc. This
+    allows in particular to stay on the current image when renaming it,
+    which is done via a deleted-created pair, at least when the monitoring
+    is done at the directory level. The case of file monitoring, which only
+    works halfway, is treated in the next commit.
+
+commit 89dfeeb7f5e38826d98b78c896e6d93a4935eb92
+Author: Ga??l Bonithon <[email protected]>
+Date:   Mon Jun 13 18:25:57 2022 +0200
+
+    Fix management of transaction source id
+
+commit fe18deb2b60c98b314ecda0605d117ff778dacb4
+Author: Ga??l Bonithon <[email protected]>
+Date:   Sun Jun 12 12:13:12 2022 +0200
+
+    flatpak: Some updates from Flathub
+
+commit 37cb321608508cd0d556f409d8da9897edc3232a
+Author: Ga??l Bonithon <[email protected]>
+Date:   Tue Jun 7 19:14:04 2022 +0200
+
+    Correctly handle deletion when there is only one image
+    
+    A double regression, introduced in:
+    d135e3ad185c90cf3527b786b856e1bfffe30cfc
+    a849a32050cd5b484da71cc515b70386f46d1f9b
+    
+    The first one causes a crash (division by zero), the second one causes
+    critical warnings.
+    
+    Fixes: #89
+
+commit 3605979c12e4adf2f971d4074ec9e7f7ecc136e0
+Author: Ga??l Bonithon <[email protected]>
+Date:   Sat May 14 19:20:47 2022 +0200
+
+    Update iter list on insertion and deletion
+    
+    Another mistake in a849a32050cd5b484da71cc515b70386f46d1f9b, from which
+    this update becomes necessary.
+    
+    Fixes: #88
+
+commit 103b7af4adaa21088525a0f7a073039b169dccbd
+Author: Ga??l Bonithon <[email protected]>
+Date:   Fri May 13 19:00:58 2022 +0200
+
+    build: Fix intltool lock file problem during make distcheck
+    
+    See https://mail.xfce.org/pipermail/xfce4-dev/2022-May/032915.html
+
+commit 69e75422c82c91a0072e872a7901a61698b68d0a
+Author: Anonymous <[email protected]>
+Date:   Sun Apr 24 12:53:52 2022 +0200
+
+    I18n: Update translation ms (100%).
+    
+    206 translated messages.
+    
+    Transifex (https://www.transifex.com/xfce/public/).
+
+commit 2a6a2b7867293bb8ef1c67504ef3bb5411c362ce
+Author: Anonymous <[email protected]>
+Date:   Fri Apr 1 00:50:31 2022 +0200
+
+    I18n: Update translation tr (100%).
+    
+    206 translated messages.
+    
+    Transifex (https://www.transifex.com/xfce/public/).
+
+commit 20924941a3989109388ced8d617589051282d2e8
+Author: Anonymous <[email protected]>
+Date:   Sun Mar 20 00:50:28 2022 +0100
+
+    I18n: Update translation da (100%).
+    
+    206 translated messages.
+    
+    Transifex (https://www.transifex.com/xfce/public/).
+
+commit 44327a53d3a1dfe63b72efbe651642d6a91b3733
+Author: Ga??l Bonithon <[email protected]>
+Date:   Thu Mar 17 12:11:12 2022 +0100
+
+    Remove old icon files
+    
+    Related to !10.
+
+commit cc2de997d2a93453393d151cad7929e5ddcd2168
+Author: ??po <[email protected]>
+Date:   Thu Mar 17 00:52:19 2022 +0100
+
+    I18n: Update translation el (100%).
+    
+    206 translated messages.
+    
+    Transifex (https://www.transifex.com/xfce/public/).
+
+commit f50734aa276e08dfc6e976fb098497edda59a378
+Author: Anonymous <[email protected]>
+Date:   Mon Mar 14 12:52:30 2022 +0100
+
+    I18n: Update translation da (100%).
+    
+    206 translated messages.
+    
+    Transifex (https://www.transifex.com/xfce/public/).
+
+commit df97e49a803998b6d3e1de02cca713ebf7eb2c03
+Author: Anonymous <[email protected]>
+Date:   Mon Mar 14 00:50:20 2022 +0100
+
+    I18n: Update translation da (98%).
+    
+    203 translated messages, 3 untranslated messages.
+    
+    Transifex (https://www.transifex.com/xfce/public/).
+
+commit 9b05cb65f475ded3e1d0ca0bc5ec836a41e24f19
+Author: Ga??l Bonithon <[email protected]>
+Date:   Sat Mar 12 20:32:51 2022 +0100
+
+    Display error message on stderr
+
+commit 63ada24f0a07efb79ff437dbb2cf56b97c109535
+Author: Ga??l Bonithon <[email protected]>
+Date:   Sat Mar 12 16:33:06 2022 +0100
+
+    i18n: Use `xfce_textdomain()` to initialize translations
+    
+    We already depend on libxfce4util, it's the same code in one line, and
+    the check for `bind_textdomain_codeset()` was not done here while it is
+    done in libxfce4util, which is safer: see
+    
https://www.gnu.org/software/gnulib/manual/html_node/bind_005ftextdomain_005fcodeset.html
+
+commit 1aa42b3be7cc301a59d982a8701a4696874aa17e
+Author: Michael Martins <[email protected]>
+Date:   Tue Mar 8 12:51:39 2022 +0100
+
+    I18n: Update translation pt_BR (100%).
+    
+    206 translated messages.
+    
+    Transifex (https://www.transifex.com/xfce/public/).
+
+commit 388cd3918c3e32fc0e917d01dd0a1b2e14ad0b02
+Author: ???????????? <[email protected]>
+Date:   Tue Mar 1 12:51:24 2022 +0100
+
+    I18n: Update translation zh_CN (100%).
+    
+    206 translated messages.
+    
+    Transifex (https://www.transifex.com/xfce/public/).
+
+commit c95e1efb8839af21758298c83546c8b4d63a48f8
+Author: Ga??l Bonithon <[email protected]>
+Date:   Tue Feb 8 15:52:12 2022 +0100
+
+    Remove TODO file
+
+commit 3eea0ee4c1916e2233fd6f452a2228e8df37e59a
+Author: Ga??l Bonithon <[email protected]>
+Date:   Mon Feb 7 22:29:46 2022 +0100
+
+    Flatpak: Add libopenraw dependency
+
+commit dd09dba0d8572847115770def727a00bc6f23ba8
+Author: Ga??l Bonithon <[email protected]>
+Date:   Sat Feb 5 10:46:41 2022 +0100
+
+    Ensure that an error is set if no pixbuf is available
+    
+    It shouldn't happen, but it does: see e.g.
+    https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/issues/204.
+    
+    Related to https://gitlab.xfce.org/xfce/tumbler/-/issues/44#note_42317.
+
+commit c59f3b849a138184e618f23b39a461a4e14e0064
+Author: Anonymous <[email protected]>
+Date:   Fri Feb 4 00:50:08 2022 +0100
+
+    I18n: Update translation pt_BR (100%).
+    
+    206 translated messages.
+    
+    Transifex (https://www.transifex.com/xfce/public/).
+
+commit 22f7d07ed22d6921dd2b6bec5263f566113a5037
+Author: Ga??l Bonithon <[email protected]>
+Date:   Sat Jan 15 19:47:52 2022 +0100
+
+    Fix some memory leaks
+
+commit 75f9a64af99eb06e82852925179749d733914703
+Author: Ga??l Bonithon <[email protected]>
+Date:   Fri Jan 14 12:30:51 2022 +0100
+
+    Back to development
+
+commit f40fa28e4c249809e398e918a2e3983c3c63efd5
+Author: Ga??l Bonithon <[email protected]>
+Date:   Fri Jan 14 12:29:25 2022 +0100
+
+    Updates for release
+
 commit 3cad2c06e59ad6325cb74954026346050d3ea91a
 Author: Ga??l Bonithon <[email protected]>
 Date:   Tue Jan 11 11:52:42 2022 +0100
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/Makefile.am new/ristretto-0.12.3/Makefile.am
--- old/ristretto-0.12.2/Makefile.am    2022-01-09 17:47:54.000000000 +0100
+++ new/ristretto-0.12.3/Makefile.am    2022-07-03 15:34:17.000000000 +0200
@@ -30,6 +30,7 @@
        intltool-extract \
        intltool-merge \
        intltool-update \
+       po/.intltool-merge-cache.lock \
        $(desktop_DATA) \
        $(appdata_DATA)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/NEWS new/ristretto-0.12.3/NEWS
--- old/ristretto-0.12.2/NEWS   2022-01-14 12:25:41.000000000 +0100
+++ new/ristretto-0.12.3/NEWS   2022-07-09 22:48:09.000000000 +0200
@@ -1,3 +1,29 @@
+0.12.3 (2022-07-09)
+======
+- Bug Fixes:
+  - thumbnailer: Fall back on lower qualities in case of unsupported flavor 
(#81)
+  - Secure error handling when opening multiple files
+  - Use `G_FILE_MONITOR_WATCH_MOVES` for file monitoring
+  - Do not keep sticky state when current file is removed
+  - Fix management of transaction source id
+  - Correctly handle deletion when there is only one image (#89)
+  - Update iter list on insertion and deletion (#88)
+  - build: Fix intltool lock file problem during make distcheck
+  - Display error message on stderr
+  - i18n: Use `xfce_textdomain()` to initialize translations
+  - Ensure that an error is set if no pixbuf is available
+  - Fix some memory leaks
+
+- Code Refactoring:
+  - flatpak: Some updates from Flathub
+  - Remove old icon files
+  - Remove TODO file
+  - Flatpak: Add libopenraw dependency
+
+- Translation Updates:
+  Chinese (China), Danish, Greek, Korean, Malay, Portuguese (Brazil),
+  Turkish
+
 0.12.2 (2022-01-14)
 ======
 - New Features:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/config.h.in new/ristretto-0.12.3/config.h.in
--- old/ristretto-0.12.2/config.h.in    2022-01-14 12:26:29.000000000 +0100
+++ new/ristretto-0.12.3/config.h.in    2022-07-09 22:49:05.000000000 +0200
@@ -9,12 +9,15 @@
 /* Name of default gettext domain */
 #undef GETTEXT_PACKAGE
 
-/* Warn when using post 2_44 APIs */
+/* Warn when using post 2_46 APIs */
 #undef GLIB_VERSION_MAX_ALLOWED
 
-/* Don't warn about post 2_44 deprecations */
+/* Don't warn about post 2_46 deprecations */
 #undef GLIB_VERSION_MIN_REQUIRED
 
+/* Use GLib structured logging */
+#undef G_LOG_USE_STRUCTURED
+
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/configure.ac new/ristretto-0.12.3/configure.ac
--- old/ristretto-0.12.2/configure.ac   2022-01-14 12:26:11.000000000 +0100
+++ new/ristretto-0.12.3/configure.ac   2022-07-09 22:48:36.000000000 +0200
@@ -16,8 +16,8 @@
 dnl ***************************
 m4_define([ristretto_version_major], [0])
 m4_define([ristretto_version_minor], [12])
-m4_define([ristretto_version_micro], [2])
-m4_define([ristretto_version_build], [r3cad2c06])
+m4_define([ristretto_version_micro], [3])
+m4_define([ristretto_version_build], [r5aade5c6])
 m4_define([ristretto_version_tag], []) # Leave empty for releases
 m4_define([ristretto_version], 
[ristretto_version_major().ristretto_version_minor().ristretto_version_micro()ifelse(ristretto_version_tag(),
 [], [], [ristretto_version_tag()-ristretto_version_build()])])
 
@@ -55,9 +55,9 @@
 dnl Check for i18n support
 XDT_I18N([])
 
-AC_DEFINE(GLIB_VERSION_MAX_ALLOWED, GLIB_VERSION_2_44, Warn when using post 
2_44 APIs)
-AC_DEFINE(GLIB_VERSION_MIN_REQUIRED, GLIB_VERSION_2_44, Don't warn about post 
2_44 deprecations)
-XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.44.0])
+AC_DEFINE(GLIB_VERSION_MAX_ALLOWED, GLIB_VERSION_2_46, Warn when using post 
2_46 APIs)
+AC_DEFINE(GLIB_VERSION_MIN_REQUIRED, GLIB_VERSION_2_46, Don't warn about post 
2_46 deprecations)
+XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.46.0])
 XDT_CHECK_PACKAGE([GTK], [gtk+-3.0], [3.22.0])
 
 XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-2], [4.16.0])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/org.xfce.ristretto.appdata.xml.in 
new/ristretto-0.12.3/org.xfce.ristretto.appdata.xml.in
--- old/ristretto-0.12.2/org.xfce.ristretto.appdata.xml.in      2022-01-14 
12:25:41.000000000 +0100
+++ new/ristretto-0.12.3/org.xfce.ristretto.appdata.xml.in      2022-07-09 
22:48:09.000000000 +0200
@@ -36,6 +36,7 @@
   <launchable type="desktop-id">org.xfce.ristretto.desktop</launchable>
   <content_rating type="oars-1.1"/>
   <releases>
+    <release date="2022-07-09" version="0.12.3"/>
     <release date="2022-01-14" version="0.12.2"/>
     <release date="2021-11-26" version="0.12.1"/>
     <release date="2021-10-11" version="0.12.0"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/po/da.po new/ristretto-0.12.3/po/da.po
--- old/ristretto-0.12.2/po/da.po       2021-12-11 18:09:21.000000000 +0100
+++ new/ristretto-0.12.3/po/da.po       2022-07-03 15:34:18.000000000 +0200
@@ -4,14 +4,14 @@
 # 
 # Translators:
 # Per Kongstad <[email protected]>, 2008-2009
-# scootergrisen, 2016-2021
+# scootergrisen, 2016-2022
 msgid ""
 msgstr ""
 "Project-Id-Version: Xfce Apps\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
 "POT-Creation-Date: 2021-12-10 12:50+0100\n"
-"PO-Revision-Date: 2021-12-10 11:50+0000\n"
-"Last-Translator: Xfce Bot <[email protected]>\n"
+"PO-Revision-Date: 2013-07-03 18:30+0000\n"
+"Last-Translator: scootergrisen, 2016-2022\n"
 "Language-Team: Danish 
(http://www.transifex.com/xfce/xfce-apps/language/da/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -54,17 +54,17 @@
 
 #: ../src/main_window.c:42
 msgid "Some files could not be opened: see the text logs for details"
-msgstr ""
+msgstr "Nogle filer kunne ikke ??bnes: se tekstloggene for detaljer"
 
 #: ../src/main_window.c:43
 #, c-format
 msgid "An error occurred when deleting image '%s' from disk"
-msgstr ""
+msgstr "Der opstod en fejl under sletning af billedet '%s' fra disken"
 
 #: ../src/main_window.c:44
 #, c-format
 msgid "An error occurred when sending image '%s' to trash"
-msgstr ""
+msgstr "Der opstod en fejl under sending af billedet '%s' til papirkurven"
 
 #: ../src/main_window.c:329
 msgid "_File"
@@ -545,7 +545,7 @@
 
 #: ../src/main_window.c:2929
 msgid "translator-credits"
-msgstr "Per Kongstad\n\nDansk-gruppen\nWebsted http://dansk-gruppen.dk\nE-mail 
<[email protected]>"
+msgstr "Per Kongstad"
 
 #: ../src/main_window.c:3479
 msgid "Open image"
@@ -870,19 +870,19 @@
 
 #: ../src/image_list.c:32
 msgid "No supported image type found in the directory"
-msgstr ""
+msgstr "Ingen underst??ttede billedtype fundet i mappen"
 
 #: ../src/image_list.c:33
 msgid "Directory only partially loaded"
-msgstr ""
+msgstr "Mappe kun delvist indl??st"
 
 #: ../src/image_list.c:34
 msgid "Could not load directory"
-msgstr ""
+msgstr "Kunne ikke indl??se mappe"
 
 #: ../src/image_list.c:35
 msgid "Unsupported mime type"
-msgstr ""
+msgstr "Ikke-underst??ttet MIME-type"
 
 #: ../src/thumbnailer.c:292
 msgid ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/po/el.po new/ristretto-0.12.3/po/el.po
--- old/ristretto-0.12.2/po/el.po       2021-12-11 18:09:21.000000000 +0100
+++ new/ristretto-0.12.3/po/el.po       2022-07-03 15:34:18.000000000 +0200
@@ -3,6 +3,7 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
+# ??po. <[email protected]>, 2022
 # ??po. <[email protected]>, 2016
 # ??po. <[email protected]>, 2017
 # Efstathios Iosifidis <[email protected]>, 2012
@@ -16,8 +17,8 @@
 "Project-Id-Version: Xfce Apps\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
 "POT-Creation-Date: 2021-12-10 12:50+0100\n"
-"PO-Revision-Date: 2021-12-10 11:50+0000\n"
-"Last-Translator: Xfce Bot <[email protected]>\n"
+"PO-Revision-Date: 2013-07-03 18:30+0000\n"
+"Last-Translator: ??po. <[email protected]>, 2022\n"
 "Language-Team: Greek (http://www.transifex.com/xfce/xfce-apps/language/el/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -60,17 +61,17 @@
 
 #: ../src/main_window.c:42
 msgid "Some files could not be opened: see the text logs for details"
-msgstr ""
+msgstr "???????????????? ???????????????????? ?????????????????? 
??????????????: ?????????? ?????? ???????????????????? ?????? 
????????????????????????"
 
 #: ../src/main_window.c:43
 #, c-format
 msgid "An error occurred when deleting image '%s' from disk"
-msgstr ""
+msgstr "???????????? ???????? ?????? ???????????????? ?????? ?????????????? 
'%s' ?????? ???? ??????????"
 
 #: ../src/main_window.c:44
 #, c-format
 msgid "An error occurred when sending image '%s' to trash"
-msgstr ""
+msgstr "???????????? ???????? ?????? ???????????????? ?????? ?????????????? 
'%s' ?????? ????????????????????"
 
 #: ../src/main_window.c:329
 msgid "_File"
@@ -145,7 +146,7 @@
 
 #: ../src/main_window.c:378
 msgid "_Copy image to clipboard"
-msgstr ""
+msgstr "_?????????????????? ?????????????? ?????? ????????????????"
 
 #: ../src/main_window.c:384
 msgid "_Open with"
@@ -257,7 +258,7 @@
 
 #: ../src/main_window.c:471
 msgid "_Default Zoom"
-msgstr ""
+msgstr "_?????????????????????????? ??????????????????"
 
 #: ../src/main_window.c:478
 msgid "_Rotation"
@@ -458,7 +459,7 @@
 #. Icon-name
 #: ../src/main_window.c:736
 msgid "_Smart Zoom"
-msgstr ""
+msgstr "_???????????? ??????????????????"
 
 #: ../src/main_window.c:874
 msgid "Images"
@@ -876,19 +877,19 @@
 
 #: ../src/image_list.c:32
 msgid "No supported image type found in the directory"
-msgstr ""
+msgstr "?????? ?????????????? ?????????????????????????????? ?????????? 
?????????????? ?????????????? ???????? ????????????????"
 
 #: ../src/image_list.c:33
 msgid "Directory only partially loaded"
-msgstr ""
+msgstr "???????????? ?????????????? ??????????????????"
 
 #: ../src/image_list.c:34
 msgid "Could not load directory"
-msgstr ""
+msgstr "???????????????? ???????????????? ??????????????????"
 
 #: ../src/image_list.c:35
 msgid "Unsupported mime type"
-msgstr ""
+msgstr "???? ?????????????????????????????? ?????????? mime"
 
 #: ../src/thumbnailer.c:292
 msgid ""
@@ -950,11 +951,11 @@
 
 #: ../org.xfce.ristretto.appdata.xml.in.h:1
 msgid "Ristretto"
-msgstr ""
+msgstr "Ristretto"
 
 #: ../org.xfce.ristretto.appdata.xml.in.h:2
 msgid "Fast and lightweight image viewer"
-msgstr ""
+msgstr "?????????????? ?????? ???????????? ?????????????????? 
???????????????????????? ??????????????"
 
 #: ../org.xfce.ristretto.appdata.xml.in.h:4
 msgid ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/po/ko.po new/ristretto-0.12.3/po/ko.po
--- old/ristretto-0.12.2/po/ko.po       2021-12-11 18:09:21.000000000 +0100
+++ new/ristretto-0.12.3/po/ko.po       2022-07-09 22:34:08.000000000 +0200
@@ -4,14 +4,14 @@
 # 
 # Translators:
 # ?????????(Jung-Kyu Park) <[email protected]>, 2016-2017
-# Seong-ho Cho <[email protected]>, 2012-2013,2015-2016,2019
+# Seong-ho Cho <[email protected]>, 2012-2013,2015-2016,2019,2022
 msgid ""
 msgstr ""
 "Project-Id-Version: Xfce Apps\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
 "POT-Creation-Date: 2021-12-10 12:50+0100\n"
-"PO-Revision-Date: 2021-12-10 11:50+0000\n"
-"Last-Translator: Xfce Bot <[email protected]>\n"
+"PO-Revision-Date: 2013-07-03 18:30+0000\n"
+"Last-Translator: Seong-ho Cho <[email protected]>, 
2012-2013,2015-2016,2019,2022\n"
 "Language-Team: Korean 
(http://www.transifex.com/xfce/xfce-apps/language/ko/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -54,17 +54,17 @@
 
 #: ../src/main_window.c:42
 msgid "Some files could not be opened: see the text logs for details"
-msgstr ""
+msgstr "?????? ????????? ??? ??? ????????????: ????????? ????????? ????????? 
????????? ??????????????????"
 
 #: ../src/main_window.c:43
 #, c-format
 msgid "An error occurred when deleting image '%s' from disk"
-msgstr ""
+msgstr "??????????????? '%s' ????????? ?????? ??? ????????? ??????????????????"
 
 #: ../src/main_window.c:44
 #, c-format
 msgid "An error occurred when sending image '%s' to trash"
-msgstr ""
+msgstr "???????????? '%s' ????????? ????????? ??? ????????? ??????????????????"
 
 #: ../src/main_window.c:329
 msgid "_File"
@@ -139,7 +139,7 @@
 
 #: ../src/main_window.c:378
 msgid "_Copy image to clipboard"
-msgstr ""
+msgstr "????????? ??????????????? ??????(_C)"
 
 #: ../src/main_window.c:384
 msgid "_Open with"
@@ -251,7 +251,7 @@
 
 #: ../src/main_window.c:471
 msgid "_Default Zoom"
-msgstr ""
+msgstr "?????? ?????????(_D)"
 
 #: ../src/main_window.c:478
 msgid "_Rotation"
@@ -452,7 +452,7 @@
 #. Icon-name
 #: ../src/main_window.c:736
 msgid "_Smart Zoom"
-msgstr ""
+msgstr "????????? ??????(_S)"
 
 #: ../src/main_window.c:874
 msgid "Images"
@@ -870,19 +870,19 @@
 
 #: ../src/image_list.c:32
 msgid "No supported image type found in the directory"
-msgstr ""
+msgstr "??????????????? ???????????? ?????? ?????? ????????? ????????????"
 
 #: ../src/image_list.c:33
 msgid "Directory only partially loaded"
-msgstr ""
+msgstr "?????????????????? ????????? ??????????????????"
 
 #: ../src/image_list.c:34
 msgid "Could not load directory"
-msgstr ""
+msgstr "???????????? ????????? ????????? ??? ????????????"
 
 #: ../src/image_list.c:35
 msgid "Unsupported mime type"
-msgstr ""
+msgstr "???????????? ?????? MIME ??????"
 
 #: ../src/thumbnailer.c:292
 msgid ""
@@ -944,11 +944,11 @@
 
 #: ../org.xfce.ristretto.appdata.xml.in.h:1
 msgid "Ristretto"
-msgstr ""
+msgstr "???????????????"
 
 #: ../org.xfce.ristretto.appdata.xml.in.h:2
 msgid "Fast and lightweight image viewer"
-msgstr ""
+msgstr "????????? ????????? ?????? ?????? ????????????"
 
 #: ../org.xfce.ristretto.appdata.xml.in.h:4
 msgid ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/po/ms.po new/ristretto-0.12.3/po/ms.po
--- old/ristretto-0.12.2/po/ms.po       2021-12-11 18:09:21.000000000 +0100
+++ new/ristretto-0.12.3/po/ms.po       2022-07-03 15:34:18.000000000 +0200
@@ -3,15 +3,15 @@
 # This file is distributed under the same license as the PACKAGE package.
 # 
 # Translators:
-# abuyop <[email protected]>, 2014-2017,2019
+# abuyop <[email protected]>, 2014-2017,2019,2022
 # Puretech <[email protected]>, 2016
 msgid ""
 msgstr ""
 "Project-Id-Version: Xfce Apps\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
 "POT-Creation-Date: 2021-12-10 12:50+0100\n"
-"PO-Revision-Date: 2021-12-10 11:50+0000\n"
-"Last-Translator: Xfce Bot <[email protected]>\n"
+"PO-Revision-Date: 2013-07-03 18:30+0000\n"
+"Last-Translator: abuyop <[email protected]>, 2014-2017,2019,2022\n"
 "Language-Team: Malay (http://www.transifex.com/xfce/xfce-apps/language/ms/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -54,17 +54,17 @@
 
 #: ../src/main_window.c:42
 msgid "Some files could not be opened: see the text logs for details"
-msgstr ""
+msgstr "Beberapa fail gagal dibuka; sila rujuk log teks untuk perincian"
 
 #: ../src/main_window.c:43
 #, c-format
 msgid "An error occurred when deleting image '%s' from disk"
-msgstr ""
+msgstr "Satu ralat berlaku ketika memadam imej '%s' daripada cakera"
 
 #: ../src/main_window.c:44
 #, c-format
 msgid "An error occurred when sending image '%s' to trash"
-msgstr ""
+msgstr "Satu ralat berlaku ketika menghantar imej '%s' ke dalam tong sampah"
 
 #: ../src/main_window.c:329
 msgid "_File"
@@ -139,7 +139,7 @@
 
 #: ../src/main_window.c:378
 msgid "_Copy image to clipboard"
-msgstr ""
+msgstr "Sa_lin imej ke papan keratan"
 
 #: ../src/main_window.c:384
 msgid "_Open with"
@@ -251,7 +251,7 @@
 
 #: ../src/main_window.c:471
 msgid "_Default Zoom"
-msgstr ""
+msgstr "Zum _Lalai"
 
 #: ../src/main_window.c:478
 msgid "_Rotation"
@@ -452,7 +452,7 @@
 #. Icon-name
 #: ../src/main_window.c:736
 msgid "_Smart Zoom"
-msgstr ""
+msgstr "Zum _Pintar"
 
 #: ../src/main_window.c:874
 msgid "Images"
@@ -870,19 +870,19 @@
 
 #: ../src/image_list.c:32
 msgid "No supported image type found in the directory"
-msgstr ""
+msgstr "Tiada jenis imej disokong ditemui dalam direktori"
 
 #: ../src/image_list.c:33
 msgid "Directory only partially loaded"
-msgstr ""
+msgstr "Direktori hanya dimuatkan separa"
 
 #: ../src/image_list.c:34
 msgid "Could not load directory"
-msgstr ""
+msgstr "Tidak dapat memuatkan direktori"
 
 #: ../src/image_list.c:35
 msgid "Unsupported mime type"
-msgstr ""
+msgstr "Jenis mime tidak disokong"
 
 #: ../src/thumbnailer.c:292
 msgid ""
@@ -944,11 +944,11 @@
 
 #: ../org.xfce.ristretto.appdata.xml.in.h:1
 msgid "Ristretto"
-msgstr ""
+msgstr "Ristretto"
 
 #: ../org.xfce.ristretto.appdata.xml.in.h:2
 msgid "Fast and lightweight image viewer"
-msgstr ""
+msgstr "Pelihat imej yang ringan dan pantas"
 
 #: ../org.xfce.ristretto.appdata.xml.in.h:4
 msgid ""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/po/pt_BR.po new/ristretto-0.12.3/po/pt_BR.po
--- old/ristretto-0.12.2/po/pt_BR.po    2021-12-11 18:09:21.000000000 +0100
+++ new/ristretto-0.12.3/po/pt_BR.po    2022-07-03 15:34:18.000000000 +0200
@@ -6,6 +6,7 @@
 # Andre Miranda <[email protected]>, 2019
 # Andre Miranda <[email protected]>, 2016-2017
 # Andre Miranda <[email protected]>, 2015
+# C. E., 2022
 # Frederico Schardong <[email protected]>, 2011
 # Lucas Wilm <[email protected]>, 2021
 # Michael Martins <[email protected]>, 2019
@@ -15,8 +16,8 @@
 "Project-Id-Version: Xfce Apps\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
 "POT-Creation-Date: 2021-12-10 12:50+0100\n"
-"PO-Revision-Date: 2021-12-10 11:50+0000\n"
-"Last-Translator: Xfce Bot <[email protected]>\n"
+"PO-Revision-Date: 2022-03-08 01:02+0000\n"
+"Last-Translator: Michael Martins <[email protected]>\n"
 "Language-Team: Portuguese (Brazil) 
(http://www.transifex.com/xfce/xfce-apps/language/pt_BR/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -457,7 +458,7 @@
 #. Icon-name
 #: ../src/main_window.c:736
 msgid "_Smart Zoom"
-msgstr ""
+msgstr "_Smart Zoom"
 
 #: ../src/main_window.c:874
 msgid "Images"
@@ -949,7 +950,7 @@
 
 #: ../org.xfce.ristretto.appdata.xml.in.h:1
 msgid "Ristretto"
-msgstr ""
+msgstr "Ristretto"
 
 #: ../org.xfce.ristretto.appdata.xml.in.h:2
 msgid "Fast and lightweight image viewer"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/po/tr.po new/ristretto-0.12.3/po/tr.po
--- old/ristretto-0.12.2/po/tr.po       2021-12-11 18:09:21.000000000 +0100
+++ new/ristretto-0.12.3/po/tr.po       2022-07-03 17:08:03.000000000 +0200
@@ -6,7 +6,7 @@
 # Ali Polatel <[email protected]>, 2015
 # Ayhan YAL??INSOY <[email protected]>, 2012
 # Demiray Muhterem <[email protected]>, 2019,2021
-# Emin Tufan ??etin <[email protected]>, 2020-2021
+# Emin Tufan ??etin <[email protected]>, 2020-2022
 # Emin Tufan ??etin <[email protected]>, 2020
 # G??kmen G??rgen <[email protected]>, 2008
 # Necdet Y??cel <[email protected]>, 2015-2017
@@ -18,8 +18,8 @@
 "Project-Id-Version: Xfce Apps\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
 "POT-Creation-Date: 2021-12-10 12:50+0100\n"
-"PO-Revision-Date: 2021-12-10 11:50+0000\n"
-"Last-Translator: Xfce Bot <[email protected]>\n"
+"PO-Revision-Date: 2013-07-03 18:30+0000\n"
+"Last-Translator: Emin Tufan ??etin <[email protected]>, 2020-2022\n"
 "Language-Team: Turkish 
(http://www.transifex.com/xfce/xfce-apps/language/tr/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -72,7 +72,7 @@
 #: ../src/main_window.c:44
 #, c-format
 msgid "An error occurred when sending image '%s' to trash"
-msgstr "'%s' resmi ????p kutusuna g??nderilirken bir hata olu??tu "
+msgstr "'%s' resmi ????p kutusuna g??nderilirken hata olu??tu "
 
 #: ../src/main_window.c:329
 msgid "_File"
@@ -249,7 +249,7 @@
 #. Icon-name
 #: ../src/main_window.c:464 ../src/main_window.c:748
 msgid "_Normal Size"
-msgstr "_Normal boyut"
+msgstr "_Ola??an boyut"
 
 #. Label-text
 #. Keyboard shortcut
@@ -259,7 +259,7 @@
 
 #: ../src/main_window.c:471
 msgid "_Default Zoom"
-msgstr "_Varsay??lan Yak??nla??t??rma"
+msgstr "??_ntan??ml?? Yak??nla??t??rma"
 
 #: ../src/main_window.c:478
 msgid "_Rotation"
@@ -443,7 +443,7 @@
 
 #: ../src/main_window.c:707
 msgid "Normal"
-msgstr "_Normal"
+msgstr "_Ola??an"
 
 #: ../src/main_window.c:713
 msgid "Large"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/po/zh_CN.po new/ristretto-0.12.3/po/zh_CN.po
--- old/ristretto-0.12.2/po/zh_CN.po    2021-12-11 18:09:21.000000000 +0100
+++ new/ristretto-0.12.3/po/zh_CN.po    2022-07-03 15:34:18.000000000 +0200
@@ -7,15 +7,15 @@
 # Hunt Xu <[email protected]>, 2008-2010,2016
 # Mingcong Bai <[email protected]>, 2016-2017
 # wuli <[email protected]>, 2008
-# ???????????? <[email protected]>, 2015-2016,2019-2021
+# ???????????? <[email protected]>, 2015-2016,2019-2022
 # Mingcong Bai <[email protected]>, 2015
 msgid ""
 msgstr ""
 "Project-Id-Version: Xfce Apps\n"
 "Report-Msgid-Bugs-To: [email protected]\n"
 "POT-Creation-Date: 2021-12-10 12:50+0100\n"
-"PO-Revision-Date: 2021-12-10 11:50+0000\n"
-"Last-Translator: Xfce Bot <[email protected]>\n"
+"PO-Revision-Date: 2022-03-01 04:51+0000\n"
+"Last-Translator: ???????????? <[email protected]>\n"
 "Language-Team: Chinese (China) 
(http://www.transifex.com/xfce/xfce-apps/language/zh_CN/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -850,7 +850,7 @@
 
 #: ../src/properties_dialog.c:165
 msgid "General"
-msgstr "??????"
+msgstr "??????"
 
 #: ../src/properties_dialog.c:171
 msgid "Image"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/src/file.c new/ristretto-0.12.3/src/file.c
--- old/ristretto-0.12.2/src/file.c     2022-01-09 17:49:48.000000000 +0100
+++ new/ristretto-0.12.3/src/file.c     2022-07-03 17:17:29.000000000 +0200
@@ -567,7 +567,12 @@
     const gchar *thumbnail_path;
     guint n_pixels;
 
+    /* get the flavor, trying to fall back on lower qualities if necessary */
     flavor = rstto_util_get_thumbnail_flavor (size);
+    while (r_file->priv->thumbnail_states[flavor] == 
RSTTO_THUMBNAIL_STATE_ERROR
+           && flavor > RSTTO_THUMBNAIL_FLAVOR_NORMAL)
+        flavor--;
+
     switch (r_file->priv->thumbnail_states[flavor])
     {
         case RSTTO_THUMBNAIL_STATE_PROCESSED:
@@ -616,6 +621,9 @@
         return NULL;
     }
 
+    if (r_file->priv->pixbufs[size] != NULL)
+        g_object_unref (r_file->priv->pixbufs[size]);
+
     n_pixels = rstto_util_get_thumbnail_n_pixels (size);
     r_file->priv->pixbufs[size] =
         gdk_pixbuf_new_from_file_at_scale (thumbnail_path, n_pixels, n_pixels, 
TRUE, &error);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/src/image_list.c new/ristretto-0.12.3/src/image_list.c
--- old/ristretto-0.12.2/src/image_list.c       2022-01-03 12:48:59.000000000 
+0100
+++ new/ristretto-0.12.3/src/image_list.c       2022-07-03 17:08:03.000000000 
+0200
@@ -239,7 +239,8 @@
 
     g_signal_connect (image_list->priv->thumbnailer, "ready",
                       G_CALLBACK (cb_rstto_thumbnailer_ready), image_list);
-
+    g_signal_connect (image_list->priv->thumbnailer, "error",
+                      G_CALLBACK (cb_rstto_thumbnailer_ready), image_list);
 }
 
 static void
@@ -322,6 +323,7 @@
                            RsttoFile *r_file,
                            GError **error)
 {
+    RsttoImageListIter *r_iter;
     GtkTreePath *path;
     GtkTreeIter t_iter;
     GFileMonitor *monitor;
@@ -346,9 +348,15 @@
 
     if (image_list->priv->dir_monitor == NULL)
     {
-        monitor = g_file_monitor_file (rstto_file_get_file (r_file), 
G_FILE_MONITOR_NONE, NULL, NULL);
-        g_signal_connect (monitor, "changed", G_CALLBACK 
(cb_file_monitor_changed), image_list);
-        image_list->priv->image_monitors = g_list_prepend 
(image_list->priv->image_monitors, monitor);
+        monitor = g_file_monitor_file (rstto_file_get_file (r_file),
+                                       G_FILE_MONITOR_WATCH_MOVES, NULL, NULL);
+        if (monitor != NULL)
+        {
+            g_signal_connect (monitor, "changed",
+                              G_CALLBACK (cb_file_monitor_changed), 
image_list);
+            image_list->priv->image_monitors =
+                g_list_prepend (image_list->priv->image_monitors, monitor);
+        }
     }
 
     path = gtk_tree_path_new ();
@@ -362,8 +370,16 @@
     gtk_tree_path_free (path);
 
     for (iter = image_list->priv->iterators; iter != NULL; iter = iter->next)
-        if (! RSTTO_IMAGE_LIST_ITER (iter->data)->priv->sticky)
+    {
+        r_iter = iter->data;
+        if (! r_iter->priv->sticky)
+        {
             rstto_image_list_iter_find_file (iter->data, r_file);
+            r_iter->priv->sticky = TRUE;
+        }
+        else
+            rstto_image_list_iter_find_file (r_iter, r_iter->priv->r_file);
+    }
 
     return TRUE;
 }
@@ -427,30 +443,32 @@
             continue;
 
         if (r_iter->priv->link == image_list->priv->images->tail)
-            iter_previous (r_iter, r_iter->priv->sticky);
+            iter_previous (r_iter, FALSE);
         else
-            iter_next (r_iter, r_iter->priv->sticky);
-
-        /* if the image is still the same, it's a single item list,
-         * and we should force the image in this iter to NULL */
-        if (r_iter->priv->r_file == r_file)
-        {
-            r_iter->priv->r_file = NULL;
-            r_iter->priv->link = NULL;
-            r_iter->priv->index = -1;
-            g_signal_emit (r_iter,
-                           
rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_CHANGED],
-                           0, NULL);
-        }
+            iter_next (r_iter, FALSE);
     }
 
-    g_queue_remove (image_list->priv->images, r_file);
-    g_object_unref (r_file);
+    if (image_list->priv->images->length == 1)
+    {
+        rstto_image_list_remove_all (image_list);
+        return;
+    }
+    else
+    {
+        g_queue_remove (image_list->priv->images, r_file);
+        g_object_unref (r_file);
+    }
 
     path_ = gtk_tree_path_new ();
     gtk_tree_path_append_index (path_, index_);
     gtk_tree_model_row_deleted (GTK_TREE_MODEL (image_list), path_);
     gtk_tree_path_free (path_);
+
+    for (iter = image_list->priv->iterators; iter != NULL; iter = iter->next)
+    {
+        r_iter = iter->data;
+        rstto_image_list_iter_find_file (r_iter, r_iter->priv->r_file);
+    }
 }
 
 static void
@@ -734,6 +752,7 @@
     switch (event_type)
     {
         case G_FILE_MONITOR_EVENT_DELETED:
+        case G_FILE_MONITOR_EVENT_MOVED_OUT:
             rstto_image_list_remove_file (image_list, r_file);
             if (image_list->priv->dir_monitor == NULL)
             {
@@ -777,6 +796,13 @@
         case G_FILE_MONITOR_EVENT_CHANGED:
             /* wait for DONE_HINT to update the image, so that we can get its 
mime type */
             break;
+        case G_FILE_MONITOR_EVENT_RENAMED:
+            cb_file_monitor_changed (monitor, file, other_file,
+                                     G_FILE_MONITOR_EVENT_DELETED, user_data);
+            g_object_unref (r_file);
+            r_file = rstto_file_new (other_file);
+            rstto_image_list_add_file (image_list, r_file, NULL);
+            break;
         default:
             break;
     }
@@ -881,7 +907,6 @@
     iter->priv->r_file = r_file;
     iter->priv->index = index;
     iter->priv->link = g_queue_peek_nth_link (image_list->priv->images, 
iter->priv->index);
-    iter->priv->sticky = TRUE;
 
     g_signal_emit (iter,
                    
rstto_image_list_iter_signals[RSTTO_IMAGE_LIST_ITER_SIGNAL_CHANGED],
@@ -960,18 +985,19 @@
     {
         if (iter->priv->link->next != NULL)
         {
+            ret_val = TRUE;
             iter->priv->link = iter->priv->link->next;
             iter->priv->index++;
         }
         else
         {
+            ret_val = image_list->priv->images->length > 1;
             iter->priv->link = image_list->priv->images->head;
             iter->priv->index = 0;
         }
 
         iter->priv->r_file = iter->priv->link->data;
         iter->priv->sticky = sticky;
-        ret_val = TRUE;
     }
 
     if (ret_val == TRUE)
@@ -1018,18 +1044,19 @@
     {
         if (iter->priv->link->prev != NULL)
         {
+            ret_val = TRUE;
             iter->priv->link = iter->priv->link->prev;
             iter->priv->index--;
         }
         else
         {
+            ret_val = image_list->priv->images->length > 1;
             iter->priv->link = image_list->priv->images->tail;
             iter->priv->index = image_list->priv->images->length - 1;
         }
 
         iter->priv->r_file = iter->priv->link->data;
         iter->priv->sticky = sticky;
-        ret_val = TRUE;
     }
 
     if (ret_val == TRUE)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/src/image_viewer.c new/ristretto-0.12.3/src/image_viewer.c
--- old/ristretto-0.12.2/src/image_viewer.c     2022-01-12 15:34:18.000000000 
+0100
+++ new/ristretto-0.12.3/src/image_viewer.c     2022-07-03 15:34:18.000000000 
+0200
@@ -43,6 +43,8 @@
 #define MIN_VIEW_PERCENT 0.1
 #define RSTTO_LINE_WIDTH 1.0
 
+#define ERROR_UNDETERMINED "Undetermined error"
+
 enum
 {
     PROP_0,
@@ -606,6 +608,8 @@
 {
     RsttoImageViewer *viewer = RSTTO_IMAGE_VIEWER (object);
 
+    if (viewer->priv->transaction && 
viewer->priv->transaction->loader_closed_id != 0)
+        REMOVE_SOURCE (viewer->priv->transaction->loader_closed_id);
     if (viewer->priv->settings)
     {
         g_object_unref (viewer->priv->settings);
@@ -641,6 +645,11 @@
         g_object_unref (viewer->priv->file);
         viewer->priv->file = NULL;
     }
+    if (viewer->priv->error)
+    {
+        g_error_free (viewer->priv->error);
+        viewer->priv->error = NULL;
+    }
 
     G_OBJECT_CLASS (rstto_image_viewer_parent_class)->finalize (object);
 }
@@ -1391,7 +1400,6 @@
     transaction->file = file;
     transaction->viewer = viewer;
     transaction->scale = scale;
-    transaction->loader_closed_id = 0;
 
     if (viewer->priv->limit_quality)
     {
@@ -1430,8 +1438,6 @@
     {
         tr->viewer->priv->transaction = NULL;
     }
-    if (tr->loader_closed_id != 0)
-        REMOVE_SOURCE (tr->loader_closed_id);
     if (tr->error)
     {
         g_error_free (tr->error);
@@ -1735,14 +1741,23 @@
 {
     RsttoImageViewerTransaction *transaction = data;
     RsttoImageViewer *viewer = transaction->viewer;
+    GdkPixbuf *pixbuf;
     GtkWidget *widget = GTK_WIDGET (viewer);
 
     if (viewer->priv->transaction == transaction)
     {
+        pixbuf = gdk_pixbuf_loader_get_pixbuf (transaction->loader);
+
+        /* cover any case where no pixbuf is available and no error is set:
+         * see e.g. https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/issues/204 */
+        if (transaction->error == NULL && pixbuf == NULL)
+            g_set_error (&transaction->error, GDK_PIXBUF_ERROR,
+                         GDK_PIXBUF_ERROR_FAILED, ERROR_UNDETERMINED);
+
         if (transaction->error == NULL || (
                 g_error_matches (transaction->error, GDK_PIXBUF_ERROR,
                                  GDK_PIXBUF_ERROR_CORRUPT_IMAGE)
-                && gdk_pixbuf_loader_get_pixbuf (transaction->loader) != NULL
+                && pixbuf != NULL
             ))
         {
             gtk_widget_set_tooltip_text (widget, NULL);
@@ -2118,7 +2133,7 @@
     cairo_region_t *region;
     cairo_status_t status;
     GtkAllocation alloc;
-    const gchar *message = "Undetermined error";
+    const gchar *message = ERROR_UNDETERMINED;
 
     /* do not redraw the image */
     gtk_widget_get_allocation (user_data, &alloc);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/src/main.c new/ristretto-0.12.3/src/main.c
--- old/ristretto-0.12.2/src/main.c     2022-01-01 16:12:24.000000000 +0100
+++ new/ristretto-0.12.3/src/main.c     2022-07-03 15:34:18.000000000 +0200
@@ -83,16 +83,13 @@
     RsttoImageList *image_list;
     GtkWidget *window;
 
-    setlocale (LC_ALL, "");
-    bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
-    bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-    textdomain (GETTEXT_PACKAGE);
+    xfce_textdomain (GETTEXT_PACKAGE, LOCALEDIR, "UTF-8");
 
     if (!gtk_init_with_args (&argc, &argv, NULL, entries, PACKAGE, &cli_error))
     {
         if (cli_error != NULL)
         {
-            g_print (
+            g_printerr (
                     _("%s: %s\n\n"
                       "Try %s --help to see a full list of\n"
                       "available command line options.\n"),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/src/main_window.c new/ristretto-0.12.3/src/main_window.c
--- old/ristretto-0.12.2/src/main_window.c      2022-01-14 12:25:41.000000000 
+0100
+++ new/ristretto-0.12.3/src/main_window.c      2022-07-03 17:08:03.000000000 
+0200
@@ -4094,22 +4094,21 @@
 {
     RsttoFile *r_file;
     GError *error = NULL, *tmp_error = NULL;
-    GSList *file;
+    GSList *file, *deleted = NULL, *invalid = NULL;
     GFileInfo *info;
     GFile *dir;
     gchar *uri;
-    guint n, deleted = 0, invalid = 0;
 
     /* in case of several files, open only those, adding them to the list one 
by one: this
      * is expensive and supposed to be done only for a limited number of files 
*/
     if (g_slist_length (files) > 1)
     {
-        for (file = files, n = 0; file != NULL; file = file->next, n++)
+        for (file = files; file != NULL; file = file->next)
         {
             /* we will show only one dialog for all deleted files later */
             if (! g_file_query_exists (file->data, NULL))
             {
-                deleted |= 1 << n;
+                deleted = g_slist_prepend (deleted, file->data);
                 continue;
             }
 
@@ -4119,7 +4118,7 @@
                 if (error == NULL)
                     error = g_error_copy (tmp_error);
 
-                invalid |= 1 << n;
+                invalid = g_slist_prepend (invalid, file->data);
                 g_object_unref (r_file);
                 g_clear_error (&tmp_error);
 
@@ -4136,10 +4135,10 @@
     /* in case of a single file, replace the list with the contents of the 
parent directory,
      * or the directory itself if the file is a directory */
     else if (! g_file_query_exists (files->data, NULL))
-        deleted = 1;
+        deleted = g_slist_prepend (deleted, files->data);
     else if ((info = g_file_query_info (files->data, 
"standard::type,standard::content-type",
                                         G_FILE_QUERY_INFO_NONE, NULL, &error)) 
== NULL)
-        invalid = 1;
+        invalid = g_slist_prepend (invalid, files->data);
     else
     {
         /* add the directory contents asynchronously */
@@ -4158,7 +4157,7 @@
                 rstto_main_window_add_file_to_recent_files (rstto_file_get_uri 
(r_file),
                                                             
rstto_file_get_content_type (r_file));
             else
-                invalid = 1;
+                invalid = g_slist_prepend (invalid, files->data);
 
             g_object_unref (dir);
             g_object_unref (r_file);
@@ -4167,25 +4166,26 @@
         g_object_unref (info);
     }
 
-    if (deleted > 0 || invalid > 0)
+    if (deleted != NULL || invalid != NULL)
     {
-        for (n = 0; (1U << n) <= deleted; n++)
-            if (deleted & (1 << n))
-            {
-                uri = g_file_get_uri (g_slist_nth_data (files, n));
-                g_message ("Could not open file '%s': File does not exist", 
uri);
-                g_free (uri);
-            }
+        for (file = deleted; file != NULL; file = file->next)
+        {
+            uri = g_file_get_uri (file->data);
+            g_message ("Could not open file '%s': File does not exist", uri);
+            g_free (uri);
+        }
 
-        for (n = 0; (1U << n) <= invalid; n++)
-            if (invalid & (1 << n))
-            {
-                uri = g_file_get_uri (g_slist_nth_data (files, n));
-                g_message ("Could not open file '%s': %s", uri, 
error->message);
-                g_free (uri);
-            }
+        for (file = invalid; file != NULL; file = file->next)
+        {
+            uri = g_file_get_uri (file->data);
+            g_message ("Could not open file '%s': %s", uri, error->message);
+            g_free (uri);
+        }
 
         rstto_util_dialog_error (ERROR_OPEN_FAILED, NULL);
+
+        g_slist_free (deleted);
+        g_slist_free (invalid);
         if (error != NULL)
             g_error_free (error);
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/src/thumbnailer.c new/ristretto-0.12.3/src/thumbnailer.c
--- old/ristretto-0.12.2/src/thumbnailer.c      2022-01-09 22:17:39.000000000 
+0100
+++ new/ristretto-0.12.3/src/thumbnailer.c      2022-07-03 17:08:03.000000000 
+0200
@@ -29,6 +29,7 @@
 enum
 {
     RSTTO_THUMBNAILER_SIGNAL_READY = 0,
+    RSTTO_THUMBNAILER_SIGNAL_ERROR,
     RSTTO_THUMBNAILER_SIGNAL_COUNT
 };
 
@@ -139,6 +140,17 @@
             1,
             G_TYPE_OBJECT,
             NULL);
+    rstto_thumbnailer_signals[RSTTO_THUMBNAILER_SIGNAL_ERROR] = g_signal_new 
("error",
+            G_TYPE_FROM_CLASS (klass),
+            G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+            0,
+            NULL,
+            NULL,
+            g_cclosure_marshal_VOID__OBJECT,
+            G_TYPE_NONE,
+            1,
+            G_TYPE_OBJECT,
+            NULL);
 }
 
 /**
@@ -448,7 +460,12 @@
             if (error_code == G_IO_ERROR_CANCELLED)
                 rstto_thumbnailer_queue_file (thumbnailer, flavor, iter->data);
             else
+            {
                 rstto_file_set_thumbnail_state (iter->data, flavor, 
RSTTO_THUMBNAIL_STATE_ERROR);
+                g_signal_emit (thumbnailer,
+                               
rstto_thumbnailer_signals[RSTTO_THUMBNAILER_SIGNAL_ERROR],
+                               0, iter->data, NULL);
+            }
 
             g_object_unref (iter->data);
             thumbnailer->priv->in_process_queues[flavor] =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/ristretto-0.12.2/src/tumbler.c new/ristretto-0.12.3/src/tumbler.c
--- old/ristretto-0.12.2/src/tumbler.c  2022-01-10 19:23:57.000000000 +0100
+++ new/ristretto-0.12.3/src/tumbler.c  2022-07-09 22:49:36.000000000 +0200
@@ -728,7 +728,7 @@
    *
    * Signal emitted when a remote caller is invoking the <link 
linkend="gdbus-method-org-freedesktop-thumbnails-Thumbnailer1.Queue">Queue()</link>
 D-Bus method.
    *
-   * If a signal handler returns %TRUE, it means the signal handler will 
handle the invocation (e.g. take a reference to @invocation and eventually call 
tumbler_thumbnailer1_complete_queue() or e.g. 
g_dbus_method_invocation_return_error() on it) and no order signal handlers 
will run. If no signal handler handles the invocation, the 
%G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+   * If a signal handler returns %TRUE, it means the signal handler will 
handle the invocation (e.g. take a reference to @invocation and eventually call 
tumbler_thumbnailer1_complete_queue() or e.g. 
g_dbus_method_invocation_return_error() on it) and no other signal handlers 
will run. If no signal handler handles the invocation, the 
%G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
    *
    * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was 
handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal 
handlers run.
    */
@@ -751,7 +751,7 @@
    *
    * Signal emitted when a remote caller is invoking the <link 
linkend="gdbus-method-org-freedesktop-thumbnails-Thumbnailer1.Dequeue">Dequeue()</link>
 D-Bus method.
    *
-   * If a signal handler returns %TRUE, it means the signal handler will 
handle the invocation (e.g. take a reference to @invocation and eventually call 
tumbler_thumbnailer1_complete_dequeue() or e.g. 
g_dbus_method_invocation_return_error() on it) and no order signal handlers 
will run. If no signal handler handles the invocation, the 
%G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+   * If a signal handler returns %TRUE, it means the signal handler will 
handle the invocation (e.g. take a reference to @invocation and eventually call 
tumbler_thumbnailer1_complete_dequeue() or e.g. 
g_dbus_method_invocation_return_error() on it) and no other signal handlers 
will run. If no signal handler handles the invocation, the 
%G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
    *
    * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was 
handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal 
handlers run.
    */
@@ -773,7 +773,7 @@
    *
    * Signal emitted when a remote caller is invoking the <link 
linkend="gdbus-method-org-freedesktop-thumbnails-Thumbnailer1.GetSupported">GetSupported()</link>
 D-Bus method.
    *
-   * If a signal handler returns %TRUE, it means the signal handler will 
handle the invocation (e.g. take a reference to @invocation and eventually call 
tumbler_thumbnailer1_complete_get_supported() or e.g. 
g_dbus_method_invocation_return_error() on it) and no order signal handlers 
will run. If no signal handler handles the invocation, the 
%G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+   * If a signal handler returns %TRUE, it means the signal handler will 
handle the invocation (e.g. take a reference to @invocation and eventually call 
tumbler_thumbnailer1_complete_get_supported() or e.g. 
g_dbus_method_invocation_return_error() on it) and no other signal handlers 
will run. If no signal handler handles the invocation, the 
%G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
    *
    * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was 
handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal 
handlers run.
    */
@@ -795,7 +795,7 @@
    *
    * Signal emitted when a remote caller is invoking the <link 
linkend="gdbus-method-org-freedesktop-thumbnails-Thumbnailer1.GetSchedulers">GetSchedulers()</link>
 D-Bus method.
    *
-   * If a signal handler returns %TRUE, it means the signal handler will 
handle the invocation (e.g. take a reference to @invocation and eventually call 
tumbler_thumbnailer1_complete_get_schedulers() or e.g. 
g_dbus_method_invocation_return_error() on it) and no order signal handlers 
will run. If no signal handler handles the invocation, the 
%G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+   * If a signal handler returns %TRUE, it means the signal handler will 
handle the invocation (e.g. take a reference to @invocation and eventually call 
tumbler_thumbnailer1_complete_get_schedulers() or e.g. 
g_dbus_method_invocation_return_error() on it) and no other signal handlers 
will run. If no signal handler handles the invocation, the 
%G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
    *
    * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was 
handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal 
handlers run.
    */
@@ -817,7 +817,7 @@
    *
    * Signal emitted when a remote caller is invoking the <link 
linkend="gdbus-method-org-freedesktop-thumbnails-Thumbnailer1.GetFlavors">GetFlavors()</link>
 D-Bus method.
    *
-   * If a signal handler returns %TRUE, it means the signal handler will 
handle the invocation (e.g. take a reference to @invocation and eventually call 
tumbler_thumbnailer1_complete_get_flavors() or e.g. 
g_dbus_method_invocation_return_error() on it) and no order signal handlers 
will run. If no signal handler handles the invocation, the 
%G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
+   * If a signal handler returns %TRUE, it means the signal handler will 
handle the invocation (e.g. take a reference to @invocation and eventually call 
tumbler_thumbnailer1_complete_get_flavors() or e.g. 
g_dbus_method_invocation_return_error() on it) and no other signal handlers 
will run. If no signal handler handles the invocation, the 
%G_DBUS_ERROR_UNKNOWN_METHOD error is returned.
    *
    * Returns: %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was 
handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal 
handlers run.
    */

Reply via email to