[Pkg-xfce-commits] [Git][xfce-team/apps/ristretto][debian/master] 4 commits: New upstream version 0.12.4.

Unit 193 (@unit193) gitlab at salsa.debian.org
Sat Dec 17 08:47:06 GMT 2022



Unit 193 pushed to branch debian/master at xfce / apps / ristretto


Commits:
7aa7329f by Unit 193 at 2022-12-17T03:41:48-05:00
New upstream version 0.12.4.
- - - - -
b3ca6161 by Unit 193 at 2022-12-17T03:41:50-05:00
Update upstream source from tag 'upstream/0.12.4'

Update to upstream version '0.12.4'
with Debian dir 66a40892bf55c1c94f16c85e8a7504b72acda9bd
- - - - -
3cdc54b4 by Unit 193 at 2022-12-17T03:42:20-05:00
d/rules: Opt-out of trimmed changelogs.

- - - - -
068be127 by Unit 193 at 2022-12-17T03:42:57-05:00
Update changelog for release.

- - - - -


24 changed files:

- ChangeLog
- NEWS
- aclocal.m4
- autogen.sh
- config.h.in
- configure
- configure.ac
- debian/changelog
- debian/rules
- org.xfce.ristretto.appdata.xml.in
- po/kk.po
- po/ko.po
- po/oc.po
- po/pl.po
- po/pt.po
- src/icon_bar.c
- src/image_viewer.c
- src/main.c
- src/main_window.c
- src/settings.c
- src/settings.h
- src/thumbnailer.c
- src/util.c
- src/xfce_wallpaper_manager.c


Changes:

=====================================
ChangeLog
=====================================
@@ -1,3 +1,208 @@
+commit 25d717f31ed7b411d9498928c407e2360b816689
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Fri Dec 16 11:48:41 2022 +0100
+
+    build: Let xdt-depends.m4 macros set GLib macros
+    
+    Bump also GLib to 2.56 so G_LOG_USE_STRUCTURED can be set: see
+    https://gitlab.xfce.org/xfce/xfce4-dev-tools/-/merge_requests/68
+
+commit dd44e1346bf9cd66401b8dcda14cb16215a6caf6
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Fri Dec 16 10:24:34 2022 +0100
+
+    thumbnailer: Increase thumbnail sizes
+    
+    To go up to 512 and enjoy the x-large thumbnails provided by Tumbler
+    4.18. Consequently the set of sizes is resampled in a uniform way,
+    making the minimum 64 instead of 32.
+    
+    Closes: #81
+    Related: 47e5569c, 4b67569e
+
+commit bd5c125ec9918c7b4f1583e23e40839311743e7a
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Thu Dec 15 18:11:16 2022 +0100
+
+    flatpak: Update D-Bus permissions after changing file manager method
+    
+    related: !36, afa97f8886c54823e80cb3265a84ba696073abc9
+
+commit 71feba49c176773f062fa169d4133324c0788f63
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Thu Dec 15 16:54:39 2022 +0100
+
+    flatpak: Updates from Flathub
+
+commit 4d723a0f17af8b733f5df18475197da4eb91e2c5
+Author: Anonymous <noreply at xfce.org>
+Date:   Tue Dec 6 00:47:28 2022 +0100
+
+    I18n: Update translation pl (100%).
+    
+    206 translated messages.
+    
+    Transifex (https://explore.transifex.com/xfce/).
+
+commit 7b9277354669d394acfeb3035d26d499c41edf57
+Author: Akbarkhon Variskhanov <akbarkhon.variskhanov at gmail.com>
+Date:   Mon Nov 21 15:03:16 2022 +0500
+
+    use-thunar-properties: Add & improve comments
+    
+    Clarify that use-thunar-property is not Thunar-specific.
+    
+    Follow-up to !36.
+
+commit 7075e031586b056fef00b06bd36debb6e3340eaf
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Thu Nov 17 20:28:28 2022 +0100
+
+    thumbnailer: Add a warning if D-Bus proxy creation failed
+
+commit 56a936194de2c1156830fef906fcc31ddf16a33e
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Thu Nov 17 19:51:37 2022 +0100
+
+    Allow Xfconf initialization to fail
+    
+    Basically everything then works normally, including the settings, but
+    they are not saved or synchronized.
+    
+    Fixes: #19
+
+commit c4797e3f87dcfd007b2e70b25b4dd4d352e37218
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Thu Nov 17 19:47:12 2022 +0100
+
+    thumbnailer: Add missing sanity checks
+
+commit 677a28257ea9d967eebad72f595d0d705565c437
+Author: Akbarkhon Variskhanov <akbarkhon.variskhanov at gmail.com>
+Date:   Tue Nov 15 15:29:58 2022 +0500
+
+    src/main_window.c: Non-blocking D-Bus call
+    
+    Pass `DO_NOT_LOAD_PROPERTIES` and `DO_NOT_CONNECT_SIGNALS` flags to
+    g_dbus_proxy_new_for_bus_sync()`. This ensures the call is non-blocking
+    and thus eliminates the 25 second start-up delay.
+    
+    Fixes: #95
+    MR: !36
+
+commit afa97f8886c54823e80cb3265a84ba696073abc9
+Author: Akbarkhon Variskhanov <akbarkhon.variskhanov at gmail.com>
+Date:   Sun Nov 13 15:47:15 2022 +0000
+
+    src/main_window.c: Use a better-known bus name
+    
+    org.xfce.FileManager is specific to Thunar. org.freedesktop.FileManager1
+    on the other hand is a well-known name owned by many file managers,
+    including Thunar. Use this name to ensure Ristretto is agnostic about
+    file managers.
+    
+    Since the `DisplayFileProperties()` method is also exclusive to the
+    `org.xfce.FileManager` interface, replace it with the equivalent
+    `ShowItemProperties` provided by org.freedesktop.FileManager1.
+    
+    Thanks to Daniel Shahaf for reporting and debugging.
+    
+    Fixes: #95
+    MR: !36
+
+commit dd6ce15f88f1b6298baf4429190c7533a82d5584
+Author: Anonymous <noreply at xfce.org>
+Date:   Sun Oct 30 00:47:38 2022 +0200
+
+    I18n: Update translation pt (100%).
+    
+    206 translated messages.
+    
+    Transifex (https://explore.transifex.com/xfce/).
+
+commit d8eca52cbf3ac990248013ce5c5687c3f355b328
+Author: Anonymous <noreply at xfce.org>
+Date:   Sat Oct 29 00:47:53 2022 +0200
+
+    I18n: Update translation kk (100%).
+    
+    206 translated messages.
+    
+    Transifex (https://explore.transifex.com/xfce/).
+
+commit 44c730ed4fd5046287c6cee4db8393ea2bba2c45
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Fri Oct 28 20:05:49 2022 +0200
+
+    Remove duplicated RsttoMainWindow:device-scale property
+    
+    For some reason I completely missed GtkWidget:scale-factor when doing
+    307742bc064cc029857800b276624bbe46faa8d0.
+    
+    Related: !30
+
+commit a7231c74ed21b98ae7c5e55f3496b2c2c2cfbc7d
+Author: Anonymous <noreply at xfce.org>
+Date:   Fri Oct 28 12:48:32 2022 +0200
+
+    I18n: Update translation oc (86%).
+    
+    178 translated messages, 28 untranslated messages.
+    
+    Transifex (https://explore.transifex.com/xfce/).
+
+commit 804b07226ceef2ba25a6baadc96cc0bd18ee0563
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Tue Jul 26 16:21:02 2022 +0200
+
+    Properly update iterator when browsing a list containing invalid files
+    
+    This ensures that an invalid file is not requested to be displayed, nor
+    a thumbnail for that file, which could cause invalid memory accesses
+    fixed in the previous commit.
+    
+    Fixes: #94, cab91f0af
+
+commit 6e3a8d2a3c4c2996784e22fb496034199522df1c
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Tue Jul 26 15:54:30 2022 +0200
+
+    thumbnailer: Remove invalid files after processing thumbnail queue
+    
+    Removing a file from the image list usually causes its iterators to be
+    updated, which can then trigger a thumbnail request. Since queuing this
+    request modifies the internal thumbnailer list, you should not send a
+    remove request while browsing this list.
+    
+    Given the thumbnail handling in Ristretto, unless there is a bug as
+    reported in #94, removing invalid files from the image list from the
+    thumbnailer should not cause a new thumbnail request. But it is safer to
+    move this removing after the GSourceFunc, i.e. into a GDestroyNotify..
+    
+    Related: !31, #94
+
+commit 578524c81aee412b2afb9293dc7859031af5e8ab
+Author: Anonymous <noreply at xfce.org>
+Date:   Tue Jul 12 12:51:34 2022 +0200
+
+    I18n: Update translation ko (100%).
+    
+    206 translated messages.
+    
+    Transifex (https://www.transifex.com/xfce/public/).
+
+commit 11458077a24fd023b4c2414c7d8b0235bdb9f358
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Sat Jul 9 22:53:01 2022 +0200
+
+    Back to development
+
+commit 4468a6c4fa3550d962e57725308fd9c9b1e4e97d
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Sat Jul 9 22:52:12 2022 +0200
+
+    Updates for release
+
 commit 5aade5c6e1b4b0a815aa4c336fabb3b2a7a92b5a
 Author: Anonymous <noreply at xfce.org>
 Date:   Tue Jul 5 00:49:58 2022 +0200


=====================================
NEWS
=====================================
@@ -1,3 +1,29 @@
+0.12.4 (2022-12-16)
+======
+- Dependency Changes:
+  - GLib >= 2.56.0
+
+- Appearance Changes:
+  - thumbnailer: Increase thumbnail sizes (#81)
+
+- Code Refactoring:
+  - build: Let xdt-depends.m4 macros set GLib macros
+  - flatpak: Update D-Bus permissions after changing file manager method
+  - flatpak: Updates from Flathub
+  - Remove duplicated RsttoMainWindow:device-scale property
+
+- Bug Fixes:
+  - use-thunar-properties: Add & improve comments (!37)
+  - thumbnailer: Add a warning if D-Bus proxy creation failed
+  - Allow Xfconf initialization to fail (#19)
+  - thumbnailer: Add missing sanity checks
+  - Use a better-known bus name and object path for D-Bus proxy (#95, !36)
+  - Properly update iterator when browsing a list containing invalid files (#94)
+  - thumbnailer: Remove invalid files after processing thumbnail queue (#94)
+
+- Translation Updates:
+  Kazakh, Korean, Occitan (post 1500), Polish, Portuguese
+
 0.12.3 (2022-07-09)
 ======
 - Bug Fixes:


=====================================
aclocal.m4
=====================================
@@ -8589,7 +8589,7 @@ _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
 ])# _LT_PATH_CONVERSION_FUNCTIONS
 
 # nls.m4 serial 6 (gettext-0.20.2)
-dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019-2020 Free
+dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019-2022 Free
 dnl Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -9093,6 +9093,18 @@ AC_DEFUN([XDT_CHECK_PACKAGE],
       AC_DEFINE(G_LOG_USE_STRUCTURED, 1, [Use GLib structured logging])
     fi
 
+    ifelse([$1], GLIB, [
+      dnl Report uses of GLib functions newer than $3 as C compiler warnings.
+      dnl XFCE apps&libraries can override this setting after XDT_CHECK_PACKAGE(GLIB)
+      dnl using AC_DEFINE, in which case it is recommended to override both MAX and MIN.
+      AC_MSG_NOTICE([setting GLIB_VERSION_MAX_ALLOWED and GLIB_VERSION_MIN_REQUIRED according to $3])
+      m4_pushdef([SUFFIX], translit($3, `.', `_'))
+      m4_define([SUFFIX], ifelse(regexp(SUFFIX, [[0-9]+_[0-9]+_[0-9]+]), -1, SUFFIX, patsubst(SUFFIX, [_[0-9]+$])))
+      AC_DEFINE(GLIB_VERSION_MAX_ALLOWED, m4_format(GLIB_VERSION_%s, SUFFIX), m4_format(Prevent post %s APIs, SUFFIX))
+      AC_DEFINE(GLIB_VERSION_MIN_REQUIRED, m4_format(GLIB_VERSION_%s, SUFFIX), m4_format(Ignore post %s APIs, SUFFIX))
+      m4_popdef([SUFFIX])
+    ])
+
     ifelse([$4], , , [$4])
   elif $PKG_CONFIG --exists "$2" >/dev/null 2>&1; then
     xdt_cv_version=`$PKG_CONFIG --modversion "$2"`


=====================================
autogen.sh
=====================================
@@ -7,7 +7,7 @@
 #                 and Brian Tarricone <brian at tarricone.org>.
 #
 
-export XDT_AUTOGEN_REQUIRED_VERSION="4.14.0"
+export XDT_AUTOGEN_REQUIRED_VERSION="4.17.1"
 
 (type xdt-autogen) >/dev/null 2>&1 || {
   cat >&2 <<EOF


=====================================
config.h.in
=====================================
@@ -9,10 +9,10 @@
 /* Name of default gettext domain */
 #undef GETTEXT_PACKAGE
 
-/* Warn when using post 2_46 APIs */
+/* Prevent post 2_56 APIs */
 #undef GLIB_VERSION_MAX_ALLOWED
 
-/* Don't warn about post 2_46 deprecations */
+/* Ignore post 2_56 APIs */
 #undef GLIB_VERSION_MIN_REQUIRED
 
 /* Use GLib structured logging */


=====================================
configure
=====================================
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for ristretto 0.12.3.
+# Generated by GNU Autoconf 2.71 for ristretto 0.12.4.
 #
 # Copyright (c) 2006-2022
 #         The Xfce development team. All rights reserved.
@@ -613,8 +613,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='ristretto'
 PACKAGE_TARNAME='ristretto'
-PACKAGE_VERSION='0.12.3'
-PACKAGE_STRING='ristretto 0.12.3'
+PACKAGE_VERSION='0.12.4'
+PACKAGE_STRING='ristretto 0.12.4'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1407,7 +1407,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures ristretto 0.12.3 to adapt to many kinds of systems.
+\`configure' configures ristretto 0.12.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1482,7 +1482,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ristretto 0.12.3:";;
+     short | recursive ) echo "Configuration of ristretto 0.12.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1598,7 +1598,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ristretto configure 0.12.3
+ristretto configure 0.12.4
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1859,7 +1859,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ristretto $as_me 0.12.3, which was
+It was created by ristretto $as_me 0.12.4, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -2618,7 +2618,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-RISTRETTO_VERSION=0.12.3
+RISTRETTO_VERSION=0.12.4
 am__api_version='1.16'
 
 
@@ -3133,7 +3133,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='ristretto'
- VERSION='0.12.3'
+ VERSION='0.12.4'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -6529,12 +6529,6 @@ printf "%s\n" "$localedir" >&6; }
 
 
 
-printf "%s\n" "#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_46" >>confdefs.h
-
-
-printf "%s\n" "#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_46" >>confdefs.h
-
-
 
   # minimum supported version of pkg-config
   xdt_cv_PKG_CONFIG_MIN_VERSION=0.9.0
@@ -6684,9 +6678,9 @@ fi
 
 
 
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for glib-2.0 >= 2.46.0" >&5
-printf %s "checking for glib-2.0 >= 2.46.0... " >&6; }
-  if $PKG_CONFIG "--atleast-version=2.46.0" "glib-2.0" >/dev/null 2>&1; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for glib-2.0 >= 2.56.0" >&5
+printf %s "checking for glib-2.0 >= 2.56.0... " >&6; }
+  if $PKG_CONFIG "--atleast-version=2.56.0" "glib-2.0" >/dev/null 2>&1; then
     GLIB_VERSION=`$PKG_CONFIG --modversion "glib-2.0"`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GLIB_VERSION" >&5
 printf "%s\n" "$GLIB_VERSION" >&6; }
@@ -6703,7 +6697,7 @@ printf %s "checking GLIB_LIBS... " >&6; }
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GLIB_LIBS" >&5
 printf "%s\n" "$GLIB_LIBS" >&6; }
 
-    GLIB_REQUIRED_VERSION=2.46.0
+    GLIB_REQUIRED_VERSION=2.56.0
 
 
 
@@ -6717,6 +6711,20 @@ printf "%s\n" "#define G_LOG_USE_STRUCTURED 1" >>confdefs.h
     fi
 
 
+                        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: setting GLIB_VERSION_MAX_ALLOWED and GLIB_VERSION_MIN_REQUIRED according to 2.56.0" >&5
+printf "%s\n" "$as_me: setting GLIB_VERSION_MAX_ALLOWED and GLIB_VERSION_MIN_REQUIRED according to 2.56.0" >&6;}
+
+
+
+printf "%s\n" "#define GLIB_VERSION_MAX_ALLOWED GLIB_VERSION_2_56" >>confdefs.h
+
+
+printf "%s\n" "#define GLIB_VERSION_MIN_REQUIRED GLIB_VERSION_2_56" >>confdefs.h
+
+
+
+
+
   elif $PKG_CONFIG --exists "glib-2.0" >/dev/null 2>&1; then
     xdt_cv_version=`$PKG_CONFIG --modversion "glib-2.0"`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5
@@ -6725,7 +6733,7 @@ printf "%s\n" "found, but $xdt_cv_version" >&6; }
 
       echo "*** The required package glib-2.0 was found on your system,"
       echo "*** but the installed version ($xdt_cv_version) is too old."
-      echo "*** Please upgrade glib-2.0 to atleast version 2.46.0, or adjust"
+      echo "*** Please upgrade glib-2.0 to atleast version 2.56.0, or adjust"
       echo "*** the PKG_CONFIG_PATH environment variable if you installed"
       echo "*** the new version of the package in a nonstandard prefix so"
       echo "*** pkg-config is able to find it."
@@ -6737,7 +6745,7 @@ printf "%s\n" "not found" >&6; }
 
 
       echo "*** The required package glib-2.0 was not found on your system."
-      echo "*** Please install glib-2.0 (atleast version 2.46.0) or adjust"
+      echo "*** Please install glib-2.0 (atleast version 2.56.0) or adjust"
       echo "*** the PKG_CONFIG_PATH environment variable if you"
       echo "*** installed the package in a nonstandard prefix so that"
       echo "*** pkg-config is able to find it."
@@ -6928,6 +6936,8 @@ printf "%s\n" "#define G_LOG_USE_STRUCTURED 1" >>confdefs.h
     fi
 
 
+
+
   elif $PKG_CONFIG --exists "gtk+-3.0" >/dev/null 2>&1; then
     xdt_cv_version=`$PKG_CONFIG --modversion "gtk+-3.0"`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5
@@ -7140,6 +7150,8 @@ printf "%s\n" "#define G_LOG_USE_STRUCTURED 1" >>confdefs.h
     fi
 
 
+
+
   elif $PKG_CONFIG --exists "libxfce4ui-2" >/dev/null 2>&1; then
     xdt_cv_version=`$PKG_CONFIG --modversion "libxfce4ui-2"`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5
@@ -7351,6 +7363,8 @@ printf "%s\n" "#define G_LOG_USE_STRUCTURED 1" >>confdefs.h
     fi
 
 
+
+
   elif $PKG_CONFIG --exists "libxfce4util-1.0" >/dev/null 2>&1; then
     xdt_cv_version=`$PKG_CONFIG --modversion "libxfce4util-1.0"`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5
@@ -7562,6 +7576,8 @@ printf "%s\n" "#define G_LOG_USE_STRUCTURED 1" >>confdefs.h
     fi
 
 
+
+
   elif $PKG_CONFIG --exists "libxfconf-0" >/dev/null 2>&1; then
     xdt_cv_version=`$PKG_CONFIG --modversion "libxfconf-0"`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5
@@ -7774,6 +7790,8 @@ printf "%s\n" "#define G_LOG_USE_STRUCTURED 1" >>confdefs.h
     fi
 
 
+
+
   elif $PKG_CONFIG --exists "libexif" >/dev/null 2>&1; then
     xdt_cv_version=`$PKG_CONFIG --modversion "libexif"`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5
@@ -7985,6 +8003,8 @@ printf "%s\n" "#define G_LOG_USE_STRUCTURED 1" >>confdefs.h
     fi
 
 
+
+
   elif $PKG_CONFIG --exists "cairo" >/dev/null 2>&1; then
     xdt_cv_version=`$PKG_CONFIG --modversion "cairo"`
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found, but $xdt_cv_version" >&5
@@ -9879,7 +9899,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ristretto $as_me 0.12.3, which was
+This file was extended by ristretto $as_me 0.12.4, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -9947,7 +9967,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-ristretto config.status 0.12.3
+ristretto config.status 0.12.4
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 


=====================================
configure.ac
=====================================
@@ -16,8 +16,8 @@ dnl *** Version information ***
 dnl ***************************
 m4_define([ristretto_version_major], [0])
 m4_define([ristretto_version_minor], [12])
-m4_define([ristretto_version_micro], [3])
-m4_define([ristretto_version_build], [r5aade5c6])
+m4_define([ristretto_version_micro], [4])
+m4_define([ristretto_version_build], [r25d717f3])
 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,7 @@ IT_PROG_INTLTOOL([0.35], [no-xml])
 dnl Check for i18n support
 XDT_I18N([])
 
-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([GLIB], [glib-2.0], [2.56.0])
 XDT_CHECK_PACKAGE([GTK], [gtk+-3.0], [3.22.0])
 
 XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-2], [4.16.0])


=====================================
debian/changelog
=====================================
@@ -1,3 +1,19 @@
+ristretto (0.12.4-1) unstable; urgency=medium
+
+  * Team upload.
+
+  [ Akbarkhon Variskhanov ]
+  * Suggest some extra gdk-pixbuf libraries.
+    Thanks to xiao sheng wen (Closes: #1016518, #1016521)
+  * Install NEWS with override_dh_installchangelogs
+  * Update upstream metadata
+
+  [ Unit 193 ]
+  * New upstream version 0.12.4.
+  * d/rules: Opt-out of trimmed changelogs.
+
+ -- Unit 193 <unit193 at debian.org>  Sat, 17 Dec 2022 03:42:25 -0500
+
 ristretto (0.12.3-1) unstable; urgency=medium
 
   * Team upload.


=====================================
debian/rules
=====================================
@@ -7,4 +7,4 @@ export DEB_BUILD_MAINT_OPTIONS=hardening=+all
 	dh $@
 
 override_dh_installchangelogs:
-	dh_installchangelogs NEWS
+	DEB_BUILD_OPTIONS=notrimdch dh_installchangelogs NEWS


=====================================
org.xfce.ristretto.appdata.xml.in
=====================================
@@ -36,6 +36,7 @@
   <launchable type="desktop-id">org.xfce.ristretto.desktop</launchable>
   <content_rating type="oars-1.1"/>
   <releases>
+    <release date="2022-12-16" version="0.12.4"/>
     <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"/>


=====================================
po/kk.po
=====================================
@@ -3,14 +3,14 @@
 # This file is distributed under the same license as the PACKAGE package..
 # 
 # Translators:
-# Baurzhan Muftakhidinov <baurthefirst at gmail.com>, 2013,2015-2017,2019-2021
+# Baurzhan Muftakhidinov <baurthefirst at gmail.com>, 2013,2015-2017,2019-2022
 msgid ""
 msgstr ""
 "Project-Id-Version: Xfce Apps\n"
 "Report-Msgid-Bugs-To: xfce-i18n at xfce.org\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 <transifex at xfce.org>\n"
+"PO-Revision-Date: 2013-07-03 18:30+0000\n"
+"Last-Translator: Baurzhan Muftakhidinov <baurthefirst at gmail.com>, 2013,2015-2017,2019-2022\n"
 "Language-Team: Kazakh (http://www.transifex.com/xfce/xfce-apps/language/kk/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -53,17 +53,17 @@ msgstr "Файлды сақтау мүмкін емес"
 
 #: ../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"
@@ -250,7 +250,7 @@ msgstr "100% дейін масштабтау"
 
 #: ../src/main_window.c:471
 msgid "_Default Zoom"
-msgstr ""
+msgstr "Ба_стапқы масштаб"
 
 #: ../src/main_window.c:478
 msgid "_Rotation"
@@ -451,7 +451,7 @@ msgstr "Өте үлкен"
 #. Icon-name
 #: ../src/main_window.c:736
 msgid "_Smart Zoom"
-msgstr ""
+msgstr "Ақ_ылды масштаб"
 
 #: ../src/main_window.c:874
 msgid "Images"
@@ -869,19 +869,19 @@ msgstr "%s - қасиеттері"
 
 #: ../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 ""
@@ -943,11 +943,11 @@ msgstr "Суреттеріңізді жеңіл түрде шолыңыз"
 
 #: ../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 ""


=====================================
po/ko.po
=====================================
@@ -42,7 +42,7 @@ msgid ""
 "\n"
 "Try %s --help to see a full list of\n"
 "available command line options.\n"
-msgstr "%s: %s\n\n사용할 수 있는 명령줄 옵션의 전체 목록을\n보려면 %s --help를 입력합니다.\n"
+msgstr "%s: %s\n\n사용할 수 있는 명령행 옵션의 전체 목록을\n보려면 %s --help를 입력합니다.\n"
 
 #: ../src/main_window.c:38 ../org.xfce.ristretto.desktop.in.h:3
 msgid "Image Viewer"


=====================================
po/oc.po
=====================================
@@ -4,13 +4,14 @@
 # 
 # Translators:
 # Cédric Valmary <cvalmary at yahoo.fr>, 2013
+# Quentin PAGÈS, 2022
 msgid ""
 msgstr ""
 "Project-Id-Version: Xfce Apps\n"
 "Report-Msgid-Bugs-To: xfce-i18n at xfce.org\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 <transifex at xfce.org>\n"
+"PO-Revision-Date: 2013-07-03 18:30+0000\n"
+"Last-Translator: Quentin PAGÈS, 2022\n"
 "Language-Team: Occitan (post 1500) (http://www.transifex.com/xfce/xfce-apps/language/oc/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -696,7 +697,7 @@ msgstr "Tot"
 #: ../src/privacy_dialog.c:152 ../src/xfce_wallpaper_manager.c:264
 #: ../src/gnome_wallpaper_manager.c:193
 msgid "_Apply"
-msgstr ""
+msgstr "_Aplicar"
 
 #: ../src/privacy_dialog.c:438
 msgid "Clear private data"


=====================================
po/pl.po
=====================================
@@ -3,11 +3,11 @@
 # This file is distributed under the same license as the PACKAGE package..
 # 
 # Translators:
-# Dawid Job <hoek at tuta.io>, 2015
+# hoek <hoek at tuta.io>, 2015
 # Iro <irek.gierlach at gmail.com>, 2011
-# Marcin Mikołajczak <me at mkljczk.pl>, 2017
-# Marcin Mikołajczak <me at mkljczk.pl>, 2016
-# Marek Adamski, 2021
+# marcin mikołajczak <me at mkljczk.pl>, 2017
+# marcin mikołajczak <me at mkljczk.pl>, 2016
+# Marek Adamski, 2021-2022
 # Marek Adamski, 2019,2021
 # Piotr Sokół <psokol.l10n at gmail.com>, 2009-2012,2014
 # Piotr Strębski <strebski at gmail.com>, 2015
@@ -15,9 +15,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Xfce Apps\n"
 "Report-Msgid-Bugs-To: xfce-i18n at xfce.org\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 <transifex at xfce.org>\n"
+"POT-Creation-Date: 2022-11-28 15:01+0100\n"
+"PO-Revision-Date: 2013-07-03 18:30+0000\n"
+"Last-Translator: Marek Adamski, 2021-2022\n"
 "Language-Team: Polish (http://www.transifex.com/xfce/xfce-apps/language/pl/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -41,7 +41,7 @@ msgstr "Rozpoczyna pokaz obrazów po uruchomieniu"
 msgid "Show settings dialog"
 msgstr "Wyświetla okno preferencji programu"
 
-#: ../src/main.c:96
+#: ../src/main.c:94
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -72,603 +72,603 @@ msgstr "Wystąpił błąd podczas usuwania obrazu '%s' z dysku"
 msgid "An error occurred when sending image '%s' to trash"
 msgstr "Wystąpił błąd podczas wysyłania obrazu '%s' do kosza"
 
-#: ../src/main_window.c:329
+#: ../src/main_window.c:311
 msgid "_File"
 msgstr "_Plik"
 
 #. Icon-name
-#: ../src/main_window.c:335
+#: ../src/main_window.c:317
 msgid "_Open..."
 msgstr "_Otwórz..."
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:337
+#: ../src/main_window.c:319
 msgid "Open an image"
 msgstr "Otwiera plik obrazu"
 
 #. Icon-name
-#: ../src/main_window.c:341
+#: ../src/main_window.c:323
 msgid "_Save copy..."
 msgstr "_Zapisz kopię..."
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:343
+#: ../src/main_window.c:325
 msgid "Save a copy of the image"
 msgstr "Zapisuje kopię obrazu"
 
 #. Icon-name
-#: ../src/main_window.c:347
+#: ../src/main_window.c:329
 msgid "_Properties..."
 msgstr "_Właściwości..."
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:349
+#: ../src/main_window.c:331
 msgid "Show file properties"
 msgstr "Wyświetla właściwości pliku"
 
 #. Icon-name
-#: ../src/main_window.c:353 ../src/main_window.c:372
+#: ../src/main_window.c:335 ../src/main_window.c:354
 msgid "_Edit"
 msgstr "_Edycja"
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:355
+#: ../src/main_window.c:337
 msgid "Edit this image"
 msgstr "Otwiera plik obrazu do edycji"
 
 #. Icon-name
-#: ../src/main_window.c:359 ../src/preferences_dialog.c:218
+#: ../src/main_window.c:341 ../src/preferences_dialog.c:218
 #: ../src/properties_dialog.c:102
 msgid "_Close"
 msgstr "Za_mknij"
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:361
+#: ../src/main_window.c:343
 msgid "Close this image"
 msgstr "Zamyka bieżący plik"
 
 #. Icon-name
-#: ../src/main_window.c:365
+#: ../src/main_window.c:347
 msgid "_Quit"
 msgstr "Za_kończ"
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:367
+#: ../src/main_window.c:349
 msgid "Quit Ristretto"
 msgstr "Kończy działanie programu"
 
-#: ../src/main_window.c:378
+#: ../src/main_window.c:360
 msgid "_Copy image to clipboard"
 msgstr "S_kopiuj obraz do schowka"
 
-#: ../src/main_window.c:384
+#: ../src/main_window.c:366
 msgid "_Open with"
 msgstr "_Otwórz za pomocą"
 
-#: ../src/main_window.c:390
+#: ../src/main_window.c:372
 msgid "_Sort by"
 msgstr "_Sortuj według"
 
 #. Icon-name
-#: ../src/main_window.c:396
+#: ../src/main_window.c:378
 msgid "_Delete"
 msgstr "_Usuń"
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:398
+#: ../src/main_window.c:380
 msgid "Delete this image from disk"
 msgstr "Trwale usuwa plik obrazu"
 
 #. Icon-name
-#: ../src/main_window.c:402
+#: ../src/main_window.c:384
 msgid "_Clear private data..."
 msgstr "_Wyczyść prywatne dane..."
 
 #. Icon-name
-#: ../src/main_window.c:408
+#: ../src/main_window.c:390
 msgid "_Preferences..."
 msgstr "P_referencje..."
 
-#: ../src/main_window.c:415
+#: ../src/main_window.c:397
 msgid "_View"
 msgstr "_Widok"
 
 #. Icon-name
-#: ../src/main_window.c:421
+#: ../src/main_window.c:403
 msgid "_Fullscreen"
 msgstr "_Pełny ekran"
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:423
+#: ../src/main_window.c:405
 msgid "Switch to fullscreen"
 msgstr "Włącza tryb pełnego ekranu"
 
 #. Icon-name
-#: ../src/main_window.c:427
+#: ../src/main_window.c:409
 msgid "_Leave Fullscreen"
 msgstr "_Opuść pełny ekran"
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:429
+#: ../src/main_window.c:411
 msgid "Leave Fullscreen"
 msgstr "Wyłącza tryb pełnego ekranu"
 
 #. Icon-name
-#: ../src/main_window.c:433
+#: ../src/main_window.c:415
 msgid "Set as _Wallpaper..."
 msgstr "_Ustal jako tło pulpitu..."
 
-#: ../src/main_window.c:440
+#: ../src/main_window.c:422
 msgid "_Zoom"
 msgstr "_Skalowanie"
 
 #. Icon-name
-#: ../src/main_window.c:446
+#: ../src/main_window.c:428
 msgid "Zoom _In"
 msgstr "Po_większ"
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:448
+#: ../src/main_window.c:430
 msgid "Zoom in"
 msgstr "Powiększa rozmiar obrazu"
 
 #. Icon-name
-#: ../src/main_window.c:452
+#: ../src/main_window.c:434
 msgid "Zoom _Out"
 msgstr "Po_mniejsz"
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:454
+#: ../src/main_window.c:436
 msgid "Zoom out"
 msgstr "Pomniejsza rozmiar obrazu"
 
 #. Icon-name
-#: ../src/main_window.c:458 ../src/main_window.c:742
+#: ../src/main_window.c:440 ../src/main_window.c:724
 msgid "Zoom _Fit"
 msgstr "_Dopasuj"
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:460
+#: ../src/main_window.c:442
 msgid "Zoom to fit window"
 msgstr "Dopasowuje rozmiar obrazu do wymiarów okna"
 
 #. Icon-name
-#: ../src/main_window.c:464 ../src/main_window.c:748
+#: ../src/main_window.c:446 ../src/main_window.c:730
 msgid "_Normal Size"
 msgstr "_Zwykły rozmiar"
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:466
+#: ../src/main_window.c:448
 msgid "Zoom to 100%"
 msgstr "Przywraca zwykły rozmiar obrazu"
 
-#: ../src/main_window.c:471
+#: ../src/main_window.c:453
 msgid "_Default Zoom"
 msgstr "_Domyślne powiększenie"
 
-#: ../src/main_window.c:478
+#: ../src/main_window.c:460
 msgid "_Rotation"
 msgstr "_Obracanie"
 
 #. Icon-name
-#: ../src/main_window.c:484
+#: ../src/main_window.c:466
 msgid "Rotate _Right"
 msgstr "W p_rawo"
 
 #. Icon-name
-#: ../src/main_window.c:490
+#: ../src/main_window.c:472
 msgid "Rotate _Left"
 msgstr "W _lewo"
 
-#: ../src/main_window.c:497
+#: ../src/main_window.c:479
 msgid "_Flip"
-msgstr "_Przerzuć"
+msgstr "_Przerzucanie"
 
-#: ../src/main_window.c:503
+#: ../src/main_window.c:485
 msgid "Flip _Horizontally"
 msgstr "Przerzuć w po_ziomie"
 
-#: ../src/main_window.c:509
+#: ../src/main_window.c:491
 msgid "Flip _Vertically"
 msgstr "Przerzuć _w pionie"
 
-#: ../src/main_window.c:516
+#: ../src/main_window.c:498
 msgid "_Go"
 msgstr "P_rzejdź"
 
 #. Icon-name
-#: ../src/main_window.c:522
+#: ../src/main_window.c:504
 msgid "_Forward"
 msgstr "_Naprzód"
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:524
+#: ../src/main_window.c:506
 msgid "Next image"
 msgstr "Przechodzi do następnego obrazu"
 
 #. Icon-name
-#: ../src/main_window.c:528
+#: ../src/main_window.c:510
 msgid "_Back"
 msgstr "_Wstecz"
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:530
+#: ../src/main_window.c:512
 msgid "Previous image"
 msgstr "Przechodzi do poprzedniego obrazu"
 
 #. Icon-name
-#: ../src/main_window.c:534
+#: ../src/main_window.c:516
 msgid "F_irst"
 msgstr "_Pierwszy"
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:536
+#: ../src/main_window.c:518
 msgid "First image"
 msgstr "Przechodzi do pierwszego obrazu"
 
 #. Icon-name
-#: ../src/main_window.c:540
+#: ../src/main_window.c:522
 msgid "_Last"
 msgstr "_Ostatni"
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:542
+#: ../src/main_window.c:524
 msgid "Last image"
 msgstr "Przechodzi do ostatniego obrazu"
 
-#: ../src/main_window.c:547
+#: ../src/main_window.c:529
 msgid "_Help"
 msgstr "Pomo_c"
 
 #. Icon-name
-#: ../src/main_window.c:553
+#: ../src/main_window.c:535
 msgid "_Contents"
 msgstr "_Spis treści"
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:555
+#: ../src/main_window.c:537
 msgid "Display ristretto user manual"
 msgstr "Otwiera podręcznik użytkownika programu"
 
 #. Icon-name
-#: ../src/main_window.c:559
+#: ../src/main_window.c:541
 msgid "_About"
 msgstr "_O programie"
 
 #. Label-text
 #. Keyboard shortcut
-#: ../src/main_window.c:561
+#: ../src/main_window.c:543
 msgid "Display information about ristretto"
 msgstr "Wyświetla informacje o programie"
 
-#: ../src/main_window.c:566
+#: ../src/main_window.c:548
 msgid "_Position"
 msgstr "_Położenie"
 
-#: ../src/main_window.c:572
+#: ../src/main_window.c:554
 msgid "_Size"
 msgstr "_Rozmiar"
 
-#: ../src/main_window.c:578
+#: ../src/main_window.c:560
 msgid "Thumbnail Bar _Position"
 msgstr "_Położenie paska miniatur"
 
-#: ../src/main_window.c:584
+#: ../src/main_window.c:566
 msgid "Thumb_nail Size"
 msgstr "_Rozmiar miniatur"
 
 #. Icon-name
-#: ../src/main_window.c:591
+#: ../src/main_window.c:573
 msgid "Leave _Fullscreen"
 msgstr "Opuść p_ełny ekran"
 
 #. Icon-name
-#: ../src/main_window.c:609
+#: ../src/main_window.c:591
 msgid "_Show Toolbar"
 msgstr "Pasek _narzędziowy"
 
 #. Icon-name
-#: ../src/main_window.c:617
+#: ../src/main_window.c:599
 msgid "Show _Thumbnail Bar"
 msgstr "Pasek _miniatur"
 
 #. Icon-name
-#: ../src/main_window.c:625
+#: ../src/main_window.c:607
 msgid "Show Status _Bar"
 msgstr "Pasek _stanu"
 
 #. Icon-name
-#: ../src/main_window.c:637
+#: ../src/main_window.c:619
 msgid "file name"
 msgstr "nazwy pliku"
 
 #. Icon-name
-#: ../src/main_window.c:643
+#: ../src/main_window.c:625
 msgid "file type"
 msgstr "typu pliku"
 
 #. Icon-name
-#: ../src/main_window.c:649
+#: ../src/main_window.c:631
 msgid "date"
 msgstr "daty"
 
 #. Icon-name
-#: ../src/main_window.c:660
+#: ../src/main_window.c:642
 msgid "Left"
 msgstr "Lewo"
 
-#: ../src/main_window.c:666
+#: ../src/main_window.c:648
 msgid "Right"
 msgstr "Prawo"
 
-#: ../src/main_window.c:672
+#: ../src/main_window.c:654
 msgid "Top"
 msgstr "Góra"
 
-#: ../src/main_window.c:678
+#: ../src/main_window.c:660
 msgid "Bottom"
 msgstr "Dół"
 
-#: ../src/main_window.c:689
+#: ../src/main_window.c:671
 msgid "Very Small"
 msgstr "Bardzo mały"
 
-#: ../src/main_window.c:695
+#: ../src/main_window.c:677
 msgid "Smaller"
 msgstr "Mniejszy"
 
-#: ../src/main_window.c:701
+#: ../src/main_window.c:683
 msgid "Small"
 msgstr "Mały"
 
-#: ../src/main_window.c:707
+#: ../src/main_window.c:689
 msgid "Normal"
 msgstr "Zwykły"
 
-#: ../src/main_window.c:713
+#: ../src/main_window.c:695
 msgid "Large"
 msgstr "Duży"
 
-#: ../src/main_window.c:719
+#: ../src/main_window.c:701
 msgid "Larger"
 msgstr "Większy"
 
-#: ../src/main_window.c:725
+#: ../src/main_window.c:707
 msgid "Very Large"
 msgstr "Bardzo duży"
 
 #. Icon-name
-#: ../src/main_window.c:736
+#: ../src/main_window.c:718
 msgid "_Smart Zoom"
 msgstr "_Inteligentne powiększenie"
 
-#: ../src/main_window.c:874
+#: ../src/main_window.c:855
 msgid "Images"
 msgstr "Wszystkie obrazy"
 
 #. Create Play/Pause Slideshow actions
-#: ../src/main_window.c:945
+#: ../src/main_window.c:928
 msgid "_Play"
 msgstr "_Rozpocznij pokaz"
 
-#: ../src/main_window.c:945
+#: ../src/main_window.c:928
 msgid "Play slideshow"
 msgstr "Rozpoczyna pokaz obrazów"
 
-#: ../src/main_window.c:946
+#: ../src/main_window.c:929
 msgid "_Pause"
 msgstr "_Wstrzymaj pokaz"
 
-#: ../src/main_window.c:946
+#: ../src/main_window.c:929
 msgid "Pause slideshow"
 msgstr "Wstrzymuje pokaz obrazów"
 
 #. Create Recently used items Action
-#: ../src/main_window.c:949
+#: ../src/main_window.c:932
 msgid "_Recently used"
 msgstr "O_statnio otwarte"
 
-#: ../src/main_window.c:949
+#: ../src/main_window.c:932
 msgid "Recently used"
 msgstr "Wyświetla ostatnio otwarte pliki"
 
-#: ../src/main_window.c:1074 ../src/main_window.c:1688
+#: ../src/main_window.c:1056 ../src/main_window.c:1612
 msgid "Press open to select an image"
 msgstr "Aby otworzyć obraz, należy użyć polecenia Otwórz."
 
-#: ../src/main_window.c:1630 ../src/main_window.c:1635
+#: ../src/main_window.c:1554 ../src/main_window.c:1559
 msgid "Open With Other _Application..."
 msgstr "Otwórz za pomocą innego p_rogramu..."
 
-#: ../src/main_window.c:1645 ../src/main_window.c:1653
+#: ../src/main_window.c:1569 ../src/main_window.c:1577
 msgid "Empty"
 msgstr "Pusty"
 
-#: ../src/main_window.c:1693
+#: ../src/main_window.c:1617
 msgid "Loading..."
 msgstr "Wczytywanie..."
 
-#: ../src/main_window.c:2343
+#: ../src/main_window.c:2267
 msgid "Choose 'set wallpaper' method"
 msgstr "Metoda ustalania tła pulpitu"
 
-#: ../src/main_window.c:2347 ../src/main_window.c:3481
-#: ../src/main_window.c:3569 ../src/main_window.c:4234
-#: ../src/privacy_dialog.c:149 ../src/xfce_wallpaper_manager.c:261
+#: ../src/main_window.c:2271 ../src/main_window.c:3400
+#: ../src/main_window.c:3488 ../src/main_window.c:4152
+#: ../src/privacy_dialog.c:149 ../src/xfce_wallpaper_manager.c:268
 #: ../src/gnome_wallpaper_manager.c:190
 msgid "_Cancel"
 msgstr "Anu_luj"
 
-#: ../src/main_window.c:2350 ../src/main_window.c:4237
-#: ../src/xfce_wallpaper_manager.c:267 ../src/gnome_wallpaper_manager.c:196
+#: ../src/main_window.c:2274 ../src/main_window.c:4155
+#: ../src/xfce_wallpaper_manager.c:274 ../src/gnome_wallpaper_manager.c:196
 msgid "_OK"
 msgstr "_OK"
 
-#: ../src/main_window.c:2360 ../src/preferences_dialog.c:436
+#: ../src/main_window.c:2284 ../src/preferences_dialog.c:436
 msgid ""
 "Configure which system is currently managing your desktop.\n"
 "This setting determines the method <i>Ristretto</i> will use\n"
 "to configure the desktop wallpaper."
 msgstr "Wskazuje bieżące środowisko graficzne.\nTo ustawienie ustala metodę, którą program\nbędzie używał do konfigurowania tła pulpitu."
 
-#: ../src/main_window.c:2386 ../src/preferences_dialog.c:448
+#: ../src/main_window.c:2310 ../src/preferences_dialog.c:448
 msgid "None"
 msgstr "Żadne"
 
-#: ../src/main_window.c:2390 ../src/preferences_dialog.c:452
+#: ../src/main_window.c:2314 ../src/preferences_dialog.c:452
 msgid "Xfce"
 msgstr "Xfce"
 
-#: ../src/main_window.c:2394 ../src/preferences_dialog.c:456
+#: ../src/main_window.c:2318 ../src/preferences_dialog.c:456
 msgid "GNOME"
 msgstr "GNOME"
 
-#: ../src/main_window.c:2909
+#: ../src/main_window.c:2833
 msgid "Developers:"
 msgstr "Twórcy:"
 
-#: ../src/main_window.c:2921 ../org.xfce.ristretto.appdata.xml.in.h:3
+#: ../src/main_window.c:2845 ../org.xfce.ristretto.appdata.xml.in.h:3
 msgid "Ristretto is an image viewer for the Xfce desktop environment."
 msgstr "Przeglądarka obrazów dla środowiska Xfce"
 
-#: ../src/main_window.c:2929
+#: ../src/main_window.c:2853
 msgid "translator-credits"
 msgstr "Piotr Sokół <psokol at jabster.pl>, 2010, 2011, 2012, 2014.\nŁukasz Romanowicz <lukasz210 at gmail.com>"
 
-#: ../src/main_window.c:3479
+#: ../src/main_window.c:3398
 msgid "Open image"
 msgstr "Wybór pliku"
 
-#: ../src/main_window.c:3481
+#: ../src/main_window.c:3400
 msgid "_Open"
 msgstr "_Otwórz"
 
-#: ../src/main_window.c:3499
+#: ../src/main_window.c:3418
 msgid ".jp(e)g"
 msgstr "Obrazy w formacie JPEG"
 
-#: ../src/main_window.c:3504
+#: ../src/main_window.c:3423
 msgid "All Files"
 msgstr "Wszystkie pliki"
 
-#: ../src/main_window.c:3566
+#: ../src/main_window.c:3485
 msgid "Save copy"
 msgstr "Wybór pliku"
 
-#: ../src/main_window.c:3570
+#: ../src/main_window.c:3489
 msgid "_Save"
 msgstr "_Zapisz"
 
-#: ../src/main_window.c:3754
+#: ../src/main_window.c:3670
 #, c-format
 msgid "Are you sure you want to send image '%s' to trash?"
 msgstr "Przenieść plik „%s” do kosza?"
 
-#: ../src/main_window.c:3758
+#: ../src/main_window.c:3674
 #, c-format
 msgid "Are you sure you want to delete image '%s' from disk?"
 msgstr "Usunąć plik „%s”?"
 
-#: ../src/main_window.c:3770
+#: ../src/main_window.c:3686
 msgid "_Do not ask again for this session"
 msgstr "Nie pytaj pono_wnie o tą sesję"
 
-#: ../src/main_window.c:4229
+#: ../src/main_window.c:4147
 msgid "Edit with"
 msgstr "Wybór programu"
 
-#: ../src/main_window.c:4250
+#: ../src/main_window.c:4168
 #, c-format
 msgid "Open %s and other files of type %s with:"
 msgstr "Otwieranie pliku „%s” i innych plików typu „%s”, przy użyciu:"
 
-#: ../src/main_window.c:4256
+#: ../src/main_window.c:4174
 msgid "Use as _default for this kind of file"
 msgstr "_Domyślnie dla plików tego typu"
 
-#: ../src/main_window.c:4346
+#: ../src/main_window.c:4264
 msgid "Recommended Applications"
 msgstr "Preferowane programy"
 
-#: ../src/main_window.c:4426
+#: ../src/main_window.c:4344
 msgid "Other Applications"
 msgstr "Inne programy"
 
-#: ../src/icon_bar.c:264
+#: ../src/icon_bar.c:250
 msgid "Orientation"
 msgstr "Orientacja"
 
-#: ../src/icon_bar.c:265
+#: ../src/icon_bar.c:251
 msgid "The orientation of the iconbar"
 msgstr "Orientacja paska ikon"
 
-#: ../src/icon_bar.c:278
+#: ../src/icon_bar.c:264
 msgid "Icon Bar Model"
 msgstr "Model paska ikon"
 
-#: ../src/icon_bar.c:279
+#: ../src/icon_bar.c:265
 msgid "Model for the icon bar"
 msgstr "Model dla paska ikon"
 
-#: ../src/icon_bar.c:295
+#: ../src/icon_bar.c:281
 msgid "Active"
 msgstr "Czynny"
 
-#: ../src/icon_bar.c:296
+#: ../src/icon_bar.c:282
 msgid "Active item index"
 msgstr "Spis czynnych pozycji"
 
-#: ../src/icon_bar.c:312 ../src/icon_bar.c:313
+#: ../src/icon_bar.c:298 ../src/icon_bar.c:299
 msgid "Show Text"
 msgstr "Pokaż tekst"
 
-#: ../src/icon_bar.c:325
+#: ../src/icon_bar.c:311
 msgid "Scrolled window"
 msgstr "Przewijane okno"
 
-#: ../src/icon_bar.c:326
+#: ../src/icon_bar.c:312
 msgid "Scrolled window icon bar is placed into"
 msgstr "Przewijane okno, w którym znajduje się pasek ikon"
 
-#: ../src/icon_bar.c:332 ../src/icon_bar.c:333
+#: ../src/icon_bar.c:318 ../src/icon_bar.c:319
 msgid "Active item fill color"
 msgstr "Wypełnienie kolorem czynnej pozycji"
 
-#: ../src/icon_bar.c:339 ../src/icon_bar.c:340
+#: ../src/icon_bar.c:325 ../src/icon_bar.c:326
 msgid "Active item border color"
 msgstr "Kolor obramowania czynnej pozycji"
 
-#: ../src/icon_bar.c:346 ../src/icon_bar.c:347
+#: ../src/icon_bar.c:332 ../src/icon_bar.c:333
 msgid "Active item text color"
 msgstr "Kolor tekstu czynnej pozycji"
 
-#: ../src/icon_bar.c:353 ../src/icon_bar.c:354
+#: ../src/icon_bar.c:339 ../src/icon_bar.c:340
 msgid "Cursor item fill color"
 msgstr "Kolor wypełnienia kursora"
 
-#: ../src/icon_bar.c:360 ../src/icon_bar.c:361
+#: ../src/icon_bar.c:346 ../src/icon_bar.c:347
 msgid "Cursor item border color"
 msgstr "Kolor obramowania kursora"
 
-#: ../src/icon_bar.c:367 ../src/icon_bar.c:368
+#: ../src/icon_bar.c:353 ../src/icon_bar.c:354
 msgid "Cursor item text color"
 msgstr "Kolor teksu kursora"
 
@@ -700,7 +700,7 @@ msgstr "Dzisiaj"
 msgid "Everything"
 msgstr "Wszystkie"
 
-#: ../src/privacy_dialog.c:152 ../src/xfce_wallpaper_manager.c:264
+#: ../src/privacy_dialog.c:152 ../src/xfce_wallpaper_manager.c:271
 #: ../src/gnome_wallpaper_manager.c:193
 msgid "_Apply"
 msgstr "Z_astosuj"
@@ -858,18 +858,18 @@ msgstr "Ogólne"
 msgid "Image"
 msgstr "Obraz"
 
-#: ../src/properties_dialog.c:363
+#: ../src/properties_dialog.c:364
 #, c-format
 msgid "<b>Date taken:</b>"
 msgstr "<b>Data wykonania:</b>"
 
-#: ../src/properties_dialog.c:375 ../src/properties_dialog.c:387
-#: ../src/properties_dialog.c:399
+#: ../src/properties_dialog.c:376 ../src/properties_dialog.c:388
+#: ../src/properties_dialog.c:400
 #, c-format
 msgid "<b>%s</b>"
 msgstr "<b>%s</b>"
 
-#: ../src/properties_dialog.c:458
+#: ../src/properties_dialog.c:459
 #, c-format
 msgid "%s - Properties"
 msgstr "%s - Właściwości"
@@ -890,7 +890,7 @@ msgstr "Nie można załadować katalogu"
 msgid "Unsupported mime type"
 msgstr "Nieobsługiwany typ MIME"
 
-#: ../src/thumbnailer.c:292
+#: ../src/thumbnailer.c:362
 msgid ""
 "The thumbnailer-service can not be reached,\n"
 "for this reason, the thumbnails can not be\n"
@@ -900,43 +900,43 @@ msgid ""
 "to resolve this issue."
 msgstr "Usługa podglądu miniatur jest niedostępna.\nZ tego powodu, nie można utworzyć miniatur.\n\nW celu rozwiązania problemu, proszę zainstalować\nprogram <b>Tumbler</b> lub innego <i>demona\npodglądu miniatur</i>."
 
-#: ../src/thumbnailer.c:301
+#: ../src/thumbnailer.c:371
 msgid "Do _not show this message again"
 msgstr "_Pomijanie wyświetlania tego komunikatu ponownie"
 
-#: ../src/xfce_wallpaper_manager.c:241 ../src/gnome_wallpaper_manager.c:176
+#: ../src/xfce_wallpaper_manager.c:246 ../src/gnome_wallpaper_manager.c:176
 msgid "Style:"
 msgstr "Styl:"
 
-#: ../src/xfce_wallpaper_manager.c:252
+#: ../src/xfce_wallpaper_manager.c:258
 msgid "Apply to all workspaces"
 msgstr "Zastosuj do wszystkich powierzchni roboczych"
 
-#: ../src/xfce_wallpaper_manager.c:259 ../src/gnome_wallpaper_manager.c:188
+#: ../src/xfce_wallpaper_manager.c:266 ../src/gnome_wallpaper_manager.c:188
 msgid "Set as wallpaper"
 msgstr "Konfigurowanie tła pulpitu"
 
-#: ../src/xfce_wallpaper_manager.c:321 ../src/gnome_wallpaper_manager.c:246
+#: ../src/xfce_wallpaper_manager.c:328 ../src/gnome_wallpaper_manager.c:246
 msgid "Auto"
 msgstr "Automatycznie"
 
-#: ../src/xfce_wallpaper_manager.c:324
+#: ../src/xfce_wallpaper_manager.c:331
 msgid "Centered"
 msgstr "Wyśrodkowanie"
 
-#: ../src/xfce_wallpaper_manager.c:327
+#: ../src/xfce_wallpaper_manager.c:334
 msgid "Tiled"
 msgstr "Rozmieszczenie sąsiadująco"
 
-#: ../src/xfce_wallpaper_manager.c:330
+#: ../src/xfce_wallpaper_manager.c:337
 msgid "Stretched"
 msgstr "Rozciągnięcie"
 
-#: ../src/xfce_wallpaper_manager.c:333
+#: ../src/xfce_wallpaper_manager.c:340
 msgid "Scaled"
 msgstr "Przeskalowanie"
 
-#: ../src/xfce_wallpaper_manager.c:336
+#: ../src/xfce_wallpaper_manager.c:343
 msgid "Zoomed"
 msgstr "Powiększenie"
 


=====================================
po/pt.po
=====================================
@@ -3,7 +3,7 @@
 # This file is distributed under the same license as the PACKAGE package..
 # 
 # Translators:
-# Hugo Carvalho <hugokarvalho at hotmail.com>, 2019-2021
+# Hugo Carvalho <hugokarvalho at hotmail.com>, 2019-2022
 # José Vieira <jvieira33 at sapo.pt>, 2020
 # Nuno Miguel <nunis at netcabo.pt>, 2007
 # Nuno Miguel <nunomgue at gmail.com>, 2013,2015-2017
@@ -12,14 +12,14 @@ msgstr ""
 "Project-Id-Version: Xfce Apps\n"
 "Report-Msgid-Bugs-To: xfce-i18n at xfce.org\n"
 "POT-Creation-Date: 2021-12-10 12:50+0100\n"
-"PO-Revision-Date: 2021-12-10 15:20+0000\n"
-"Last-Translator: Hugo Carvalho <hugokarvalho at hotmail.com>\n"
+"PO-Revision-Date: 2013-07-03 18:30+0000\n"
+"Last-Translator: Hugo Carvalho <hugokarvalho at hotmail.com>, 2019-2022\n"
 "Language-Team: Portuguese (http://www.transifex.com/xfce/xfce-apps/language/pt/)\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: pt\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
 
 #: ../src/main.c:46
 msgid "Version information"
@@ -66,7 +66,7 @@ msgstr "Ocorreu um erro ao eliminar a imagem '%s' do disco"
 #: ../src/main_window.c:44
 #, c-format
 msgid "An error occurred when sending image '%s' to trash"
-msgstr "Ocorreu um erro ao enviar a imagem '%s' para o lixo."
+msgstr "Ocorreu um erro ao enviar a imagem '%s' para o lixo"
 
 #: ../src/main_window.c:329
 msgid "_File"


=====================================
src/icon_bar.c
=====================================
@@ -105,9 +105,7 @@ rstto_icon_bar_destroy (GtkWidget *widget);
 
 
 static void
-rstto_icon_bar_set_device_scale (GObject *window,
-                                 GParamSpec *pspec,
-                                 gpointer data);
+rstto_icon_bar_set_scale_factor (RsttoIconBar *icon_bar);
 static void
 rstto_icon_bar_size_request (GtkWidget *widget,
                              GtkRequisition *requisition);
@@ -193,7 +191,6 @@ struct _RsttoIconBarPrivate
     GList          *items;
     gint            item_size;
     gint            n_visible_items;
-    gint            device_scale;
 
     GtkAdjustment  *hadjustment;
     GtkAdjustment  *vadjustment;
@@ -376,21 +373,6 @@ rstto_icon_bar_class_init (RsttoIconBarClass *klass)
 
 
 
-static void
-rstto_icon_bar_post_init (RsttoIconBar *icon_bar)
-{
-    GtkWidget *window;
-
-    /* disconnect this handler: we are supposed to pass here only once */
-    g_signal_handlers_disconnect_by_func (icon_bar, rstto_icon_bar_post_init, NULL);
-
-    window = gtk_widget_get_ancestor (GTK_WIDGET (icon_bar), RSTTO_TYPE_MAIN_WINDOW);
-    g_signal_connect (window, "notify::device-scale",
-                      G_CALLBACK (rstto_icon_bar_set_device_scale), icon_bar);
-}
-
-
-
 static void
 rstto_icon_bar_init (RsttoIconBar *icon_bar)
 {
@@ -419,9 +401,8 @@ rstto_icon_bar_init (RsttoIconBar *icon_bar)
                               G_CALLBACK (gtk_widget_queue_draw), icon_bar);
     g_signal_connect_swapped (icon_bar->priv->settings, "notify::bgcolor-override",
                               G_CALLBACK (gtk_widget_queue_draw), icon_bar);
-
-    /* we will finish the initialization when the bar is anchored */
-    g_signal_connect (icon_bar, "hierarchy-changed", G_CALLBACK (rstto_icon_bar_post_init), NULL);
+    g_signal_connect (icon_bar, "notify::scale-factor",
+                      G_CALLBACK (rstto_icon_bar_set_scale_factor), NULL);
 }
 
 
@@ -546,16 +527,11 @@ rstto_icon_bar_set_property (
 
 
 static void
-rstto_icon_bar_set_device_scale (GObject *window,
-                                 GParamSpec *pspec,
-                                 gpointer data)
+rstto_icon_bar_set_scale_factor (RsttoIconBar *icon_bar)
 {
-    RsttoIconBar *icon_bar = data;
-    GtkWidget *widget = data;
+    GtkWidget *widget = GTK_WIDGET (icon_bar);
     GtkRequisition requisition;
 
-    g_object_get (window, "device-scale", &icon_bar->priv->device_scale, NULL);
-
     /* do not scale the thumbnails with the rest of the window */
     rstto_icon_bar_size_request (widget, &requisition);
 
@@ -657,7 +633,7 @@ rstto_icon_bar_size_request (
     /* calculate item size: there is a focus padding both inside and outside the item */
     icon_bar->priv->item_size = (rstto_util_get_thumbnail_n_pixels (icon_bar->priv->thumbnail_size)
                                     + 2 * (focus_width + 2 * focus_pad))
-                                / (gdouble) icon_bar->priv->device_scale;
+                                / (gdouble) gtk_widget_get_scale_factor (widget);
 
     n_items = rstto_image_list_get_n_images (RSTTO_IMAGE_LIST (icon_bar->priv->model));
     if (icon_bar->priv->orientation == GTK_ORIENTATION_VERTICAL)
@@ -967,7 +943,7 @@ rstto_icon_bar_paint_item (
     GdkRGBA         *border_color, *fill_color;
     GdkRGBA          tmp_color;
     gdouble          px, py, focus_width, focus_pad, offset, size;
-    gint             x, y, ifocus_width, ifocus_pad;
+    gint             x, y, ifocus_width, ifocus_pad, scale_factor;
     gint             pixbuf_width = 0, pixbuf_height = 0;
 
     if (icon_bar->priv->model == NULL)
@@ -977,8 +953,9 @@ rstto_icon_bar_paint_item (
             "focus-line-width", &ifocus_width,
             "focus-padding", &ifocus_pad,
             NULL);
-    focus_width = (gdouble) ifocus_width / icon_bar->priv->device_scale;
-    focus_pad = (gdouble) ifocus_pad / icon_bar->priv->device_scale;
+    scale_factor = gtk_widget_get_scale_factor (GTK_WIDGET (icon_bar));
+    focus_width = (gdouble) ifocus_width / scale_factor;
+    focus_pad = (gdouble) ifocus_pad / scale_factor;
 
     gtk_tree_model_get (icon_bar->priv->model, &item->iter, 0, &file, -1);
     pixbuf = rstto_file_get_thumbnail (file, icon_bar->priv->thumbnail_size);
@@ -988,8 +965,8 @@ rstto_icon_bar_paint_item (
 
     if (pixbuf)
     {
-        pixbuf_width = gdk_pixbuf_get_width (pixbuf) / icon_bar->priv->device_scale;
-        pixbuf_height = gdk_pixbuf_get_height (pixbuf) / icon_bar->priv->device_scale;
+        pixbuf_width = gdk_pixbuf_get_width (pixbuf) / scale_factor;
+        pixbuf_height = gdk_pixbuf_get_height (pixbuf) / scale_factor;
     }
 
     /* calculate pixbuf / layout location */
@@ -1082,8 +1059,7 @@ rstto_icon_bar_paint_item (
         cairo_save (cr);
         rstto_util_set_source_pixbuf (cr, pixbuf, px, py);
         cairo_pattern_get_surface (cairo_get_source (cr), &surface);
-        cairo_surface_set_device_scale (surface, icon_bar->priv->device_scale,
-                                        icon_bar->priv->device_scale);
+        cairo_surface_set_device_scale (surface, scale_factor, scale_factor);
         cairo_paint (cr);
         cairo_restore (cr);
     }


=====================================
src/image_viewer.c
=====================================
@@ -121,7 +121,7 @@ static gboolean
 set_scale (RsttoImageViewer *viewer,
            gdouble scale);
 static void
-set_device_scale (GObject *window,
+set_scale_factor (RsttoImageViewer *viewer,
                   GParamSpec *pspec,
                   gpointer data);
 static void
@@ -278,7 +278,6 @@ struct _RsttoImageViewerPrivate
     GdkPixbufAnimationIter *iter;
     guint                   animation_id;
     gdouble                 scale;
-    gint                    device_scale;
     RsttoScale              auto_scale;
     GtkAdjustment          *vadjustment;
     GtkAdjustment          *hadjustment;
@@ -309,18 +308,6 @@ G_DEFINE_TYPE_WITH_CODE (RsttoImageViewer, rstto_image_viewer, GTK_TYPE_WIDGET,
 
 
 
-static void
-rstto_image_viewer_post_init (RsttoImageViewer *viewer)
-{
-    GtkWidget *window;
-
-    /* disconnect this handler: we are supposed to pass here only once */
-    g_signal_handlers_disconnect_by_func (viewer, rstto_image_viewer_post_init, NULL);
-
-    window = gtk_widget_get_ancestor (GTK_WIDGET (viewer), RSTTO_TYPE_MAIN_WINDOW);
-    g_signal_connect (window, "notify::device-scale", G_CALLBACK (set_device_scale), viewer);
-}
-
 static void
 rstto_image_viewer_init (RsttoImageViewer *viewer)
 {
@@ -367,10 +354,7 @@ rstto_image_viewer_init (RsttoImageViewer *viewer)
                       G_CALLBACK (cb_rstto_zoom_direction_changed), viewer);
     g_signal_connect (viewer, "drag-data-received",
                       G_CALLBACK (cb_rstto_image_viewer_dnd), viewer);
-
-    /* we will finish the initialization when the view is anchored */
-    g_signal_connect (viewer, "hierarchy-changed",
-                      G_CALLBACK (rstto_image_viewer_post_init), NULL);
+    g_signal_connect (viewer, "notify::scale-factor", G_CALLBACK (set_scale_factor), NULL);
 
     gtk_widget_set_events (GTK_WIDGET (viewer),
                            GDK_BUTTON_PRESS_MASK |
@@ -758,24 +742,21 @@ set_scale (RsttoImageViewer *viewer, gdouble scale)
 }
 
 static void
-set_device_scale (GObject *window,
+set_scale_factor (RsttoImageViewer *viewer,
                   GParamSpec *pspec,
                   gpointer data)
 {
     cairo_surface_t *surface;
-    RsttoImageViewer *viewer = data;
-    gint scale;
-
-    g_object_get (window, "device-scale", &scale, NULL);
-    viewer->priv->device_scale = scale;
+    gint scale_factor;
 
     if (viewer->priv->image_width > 0)
     {
         /* do not scale the image with the rest of the window */
-        viewer->priv->image_width = viewer->priv->original_image_width / scale;
-        viewer->priv->image_height = viewer->priv->original_image_height / scale;
+        scale_factor = gtk_widget_get_scale_factor (GTK_WIDGET (viewer));
+        viewer->priv->image_width = viewer->priv->original_image_width / scale_factor;
+        viewer->priv->image_height = viewer->priv->original_image_height / scale_factor;
         cairo_pattern_get_surface (viewer->priv->pixbuf.pattern, &surface);
-        cairo_surface_set_device_scale (surface, scale, scale);
+        cairo_surface_set_device_scale (surface, scale_factor, scale_factor);
 
         if (pspec != NULL)
             gtk_widget_queue_resize (GTK_WIDGET (viewer));
@@ -1017,9 +998,10 @@ paint_image (GtkWidget *widget, cairo_t *ctx)
     gint y_offset = viewer->priv->rendering.y_offset;
     gint width = viewer->priv->rendering.width;
     gint height = viewer->priv->rendering.height;
-    gdouble nx_squares = viewer->priv->device_scale * width / 10.0;
-    gdouble ny_squares = viewer->priv->device_scale * height / 10.0;
-    gdouble square_size = 10.0 / viewer->priv->device_scale;
+    gint scale_factor = gtk_widget_get_scale_factor (widget);
+    gdouble nx_squares = scale_factor * width / 10.0;
+    gdouble ny_squares = scale_factor * height / 10.0;
+    gdouble square_size = 10.0 / scale_factor;
 
     cairo_save (ctx);
 
@@ -1405,12 +1387,14 @@ rstto_image_viewer_load_image (RsttoImageViewer *viewer, RsttoFile *file, gdoubl
     {
         GdkMonitor *monitor;
         GdkRectangle rect;
+        gint scale_factor;
 
         monitor = gdk_display_get_monitor_at_window (gdk_display_get_default (),
                                                      gtk_widget_get_window (GTK_WIDGET (viewer)));
         gdk_monitor_get_geometry (monitor, &rect);
-        transaction->monitor_width = rect.width * viewer->priv->device_scale;
-        transaction->monitor_height = rect.height * viewer->priv->device_scale;
+        scale_factor = gtk_widget_get_scale_factor (GTK_WIDGET (viewer));
+        transaction->monitor_width = rect.width * scale_factor;
+        transaction->monitor_height = rect.height * scale_factor;
     }
 
     g_signal_connect (transaction->loader, "size-prepared", G_CALLBACK (cb_rstto_image_loader_size_prepared), transaction);
@@ -1767,8 +1751,7 @@ cb_rstto_image_loader_closed_idle (gpointer data)
                                       = transaction->image_width;
             viewer->priv->image_height = viewer->priv->original_image_height
                                        = transaction->image_height;
-            set_device_scale (G_OBJECT (gtk_widget_get_ancestor (widget, RSTTO_TYPE_MAIN_WINDOW)),
-                              NULL, viewer);
+            set_scale_factor (viewer, NULL, NULL);
             set_scale (viewer, transaction->scale);
         }
         else
@@ -1833,8 +1816,7 @@ cb_rstto_image_viewer_update_pixbuf (gpointer user_data)
         viewer->priv->pixbuf.has_alpha = gdk_pixbuf_get_has_alpha (pixbuf);
         viewer->priv->pixbuf.width = gdk_pixbuf_get_width (pixbuf);
         viewer->priv->pixbuf.height = gdk_pixbuf_get_height (pixbuf);
-        set_device_scale (G_OBJECT (gtk_widget_get_ancestor (user_data, RSTTO_TYPE_MAIN_WINDOW)),
-                          NULL, viewer);
+        set_scale_factor (viewer, NULL, NULL);
 
         /* redraw only the image */
         rect.x = viewer->priv->rendering.x_offset;


=====================================
src/main.c
=====================================
@@ -78,26 +78,27 @@ typedef struct {
 int
 main (int argc, char **argv)
 {
-    GError *cli_error = NULL;
+    GError *error = NULL;
     RsttoSettings *settings;
     RsttoImageList *image_list;
     GtkWidget *window;
+    gboolean xfconf_disabled;
 
     xfce_textdomain (GETTEXT_PACKAGE, LOCALEDIR, "UTF-8");
 
-    if (!gtk_init_with_args (&argc, &argv, NULL, entries, PACKAGE, &cli_error))
+    if (!gtk_init_with_args (&argc, &argv, NULL, entries, PACKAGE, &error))
     {
-        if (cli_error != NULL)
+        if (error != NULL)
         {
             g_printerr (
                     _("%s: %s\n\n"
                       "Try %s --help to see a full list of\n"
                       "available command line options.\n"),
                     PACKAGE,
-                    cli_error->message,
+                    error->message,
                     PACKAGE_NAME);
 
-            g_error_free (cli_error);
+            g_error_free (error);
             return 1;
         }
     }
@@ -108,7 +109,13 @@ main (int argc, char **argv)
         return 0;
     }
 
-    xfconf_init (NULL);
+    xfconf_disabled = ! xfconf_init (&error);
+    rstto_settings_set_xfconf_disabled (xfconf_disabled);
+    if (xfconf_disabled)
+    {
+        g_warning ("Failed to initialize Xfconf: %s", error->message);
+        g_error_free (error);
+    }
 
     gtk_window_set_default_icon_name (RISTRETTO_APP_ID);
     settings = rstto_settings_new ();
@@ -165,7 +172,8 @@ main (int argc, char **argv)
 
     g_object_unref (settings);
 
-    xfconf_shutdown ();
+    if (! xfconf_disabled)
+        xfconf_shutdown ();
 
     return 0;
 }


=====================================
src/main_window.c
=====================================
@@ -62,12 +62,6 @@ enum
     NEXT
 };
 
-enum
-{
-    PROP_0,
-    PROP_DEVICE_SCALE,
-};
-
 static RsttoMainWindow *app_window;
 static RsttoImageList *app_image_list;
 static RsttoIconBar *app_icon_bar;
@@ -75,22 +69,10 @@ static GtkFileFilter *app_file_filter;
 
 
 
-static void
-rstto_main_window_get_property (GObject *object,
-                                guint prop_id,
-                                GValue *value,
-                                GParamSpec *pspec);
-static void
-rstto_main_window_set_property (GObject *object,
-                                guint prop_id,
-                                const GValue *value,
-                                GParamSpec *pspec);
 static void
 rstto_main_window_finalize (GObject *object);
 
 
-static void
-rstto_main_window_realize (GtkWidget *widget);
 static gboolean
 key_press_event (GtkWidget *widget,
                  GdkEventKey *event);
@@ -764,7 +746,6 @@ struct _RsttoMainWindowPrivate
     guint                  show_fs_toolbar_timeout_id;
     guint                  hide_fs_mouse_cursor_timeout_id;
     guint                  window_save_geometry_timer_id;
-    gint                   device_scale;
 
     gboolean               fs_toolbar_sticky;
 
@@ -873,14 +854,16 @@ G_GNUC_END_IGNORE_DEPRECATIONS
     gtk_file_filter_add_pixbuf_formats (app_file_filter);
     gtk_file_filter_set_name (app_file_filter, _("Images"));
 
-    /* D-Bus stuff */
+    /* create a D-Bus proxy to a file manager but do not care about
+     * properties and signals, so that the call is non-blocking */
     window->priv->filemanager_proxy =
             g_dbus_proxy_new_for_bus_sync (G_BUS_TYPE_SESSION,
-                                           G_DBUS_PROXY_FLAGS_NONE,
+                                           G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES |
+                                           G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS,
                                            NULL,
-                                           "org.xfce.FileManager",
-                                           "/org/xfce/FileManager",
-                                           "org.xfce.FileManager",
+                                           "org.freedesktop.FileManager1",
+                                           "/org/freedesktop/FileManager1",
+                                           "org.freedesktop.FileManager1",
                                            NULL,
                                            NULL);
 
@@ -1286,56 +1269,9 @@ rstto_main_window_class_init (RsttoMainWindowClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
 
-    object_class->get_property = rstto_main_window_get_property;
-    object_class->set_property = rstto_main_window_set_property;
     object_class->finalize = rstto_main_window_finalize;
 
-    widget_class->realize = rstto_main_window_realize;
     widget_class->key_press_event = key_press_event;
-
-    g_object_class_install_property (object_class, PROP_DEVICE_SCALE,
-        g_param_spec_int ("device-scale", "DeviceScale", "The current device scale",
-                          0, G_MAXINT, 1, G_PARAM_READWRITE));
-}
-
-static void
-rstto_main_window_get_property (GObject *object,
-                                guint prop_id,
-                                GValue *value,
-                                GParamSpec *pspec)
-{
-    RsttoMainWindow *window = RSTTO_MAIN_WINDOW (object);
-
-    switch (prop_id)
-    {
-        case PROP_DEVICE_SCALE:
-            g_value_set_int (value, window->priv->device_scale);
-            break;
-
-        default:
-            G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-            break;
-    }
-}
-
-static void
-rstto_main_window_set_property (GObject *object,
-                                guint prop_id,
-                                const GValue *value,
-                                GParamSpec *pspec)
-{
-    RsttoMainWindow *window = RSTTO_MAIN_WINDOW (object);
-
-    switch (prop_id)
-    {
-        case PROP_DEVICE_SCALE:
-            window->priv->device_scale = g_value_get_int (value);
-            break;
-
-        default:
-            G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-            break;
-    }
 }
 
 static void
@@ -1402,17 +1338,6 @@ rstto_main_window_finalize (GObject *object)
     G_OBJECT_CLASS (rstto_main_window_parent_class)->finalize (object);
 }
 
-
-static void
-rstto_main_window_realize (GtkWidget *widget)
-{
-    GTK_WIDGET_CLASS (rstto_main_window_parent_class)->realize (widget);
-
-    /* initialize device scale */
-    g_object_set (widget, "device-scale",
-                  gdk_window_get_scale_factor (gtk_widget_get_window (widget)), NULL);
-}
-
 static gboolean
 key_press_event (
         GtkWidget *widget,
@@ -3008,13 +2933,6 @@ cb_rstto_main_window_configure_event (GtkWidget *widget, GdkEventConfigure *even
 {
     RsttoMainWindow *window = RSTTO_MAIN_WINDOW (widget);
     GtkAllocation allocation;
-    gint scale;
-
-    /* a configure event is sent to the toplevel window when the device scale changes,
-     * so we catch this information here and inform other widgets */
-    scale = gdk_window_get_scale_factor (gtk_widget_get_window (widget));
-    if (scale != window->priv->device_scale)
-        g_object_set (widget, "device-scale", scale, NULL);
 
     gtk_widget_get_allocation (widget, &allocation);
 
@@ -3368,6 +3286,8 @@ rstto_main_window_select_valid_image (RsttoMainWindow *window,
             rstto_image_list_remove_file (window->priv->image_list, file);
             if (! moved)
                 break;
+            else
+                rstto_image_list_iter_find_file (iter, rstto_image_list_iter_get_file (iter));
         }
         else
         {
@@ -3597,11 +3517,9 @@ cb_rstto_main_window_save_copy (GtkWidget *widget, RsttoMainWindow *window)
 static void
 cb_rstto_main_window_properties (GtkWidget *widget, RsttoMainWindow *window)
 {
-    /* The display object is owned by gdk, do not unref it */
-    GdkDisplay *display = gdk_display_get_default ();
     GError *error = NULL;
     RsttoFile *file = rstto_image_list_iter_get_file (window->priv->iter);
-    const gchar *uri = NULL;
+    const gchar *uri[] = { NULL, NULL };
     GtkWidget *dialog = NULL;
     gboolean use_thunar_properties = rstto_settings_get_boolean_property (
             window->priv->settings_manager,
@@ -3609,25 +3527,24 @@ cb_rstto_main_window_properties (GtkWidget *widget, RsttoMainWindow *window)
 
     if (NULL != file)
     {
-        /* Check if we should first ask Thunar
+        /* Check if we should first ask the file manager
          * to show the file properties dialog.
          */
-        if (use_thunar_properties)
+        if (use_thunar_properties && window->priv->filemanager_proxy != NULL)
         {
             GVariant *unused = NULL;
 
             /* Get the file-uri */
-            uri = rstto_file_get_uri (file);
+            uri[0] = rstto_file_get_uri (file);
 
-            /* Call the DisplayFileProperties dbus
+            /* Call the ShowItemProperties D-Bus
              * interface. If it fails, fall back to the
              * internal properties-dialog.
              */
             unused = g_dbus_proxy_call_sync (window->priv->filemanager_proxy,
-                                             "DisplayFileProperties",
-                                              g_variant_new ("(sss)",
+                                             "ShowItemProperties",
+                                              g_variant_new ("(^ass)",
                                                              uri,
-                                                             gdk_display_get_name (display),
                                                              ""),
                                              G_DBUS_CALL_FLAGS_NONE,
                                              -1,


=====================================
src/settings.c
=====================================
@@ -56,6 +56,7 @@ enum
 };
 
 static RsttoSettings *settings_object;
+static gboolean xfconf_disabled = TRUE;
 
 
 
@@ -124,7 +125,8 @@ rstto_settings_init (RsttoSettings *settings)
     gchar *accelmap_path = NULL;
 
     settings->priv = rstto_settings_get_instance_private (settings);
-    settings->priv->channel = xfconf_channel_new ("ristretto");
+    if (! xfconf_disabled)
+        settings->priv->channel = xfconf_channel_new ("ristretto");
 
     accelmap_path = xfce_resource_lookup (XFCE_RESOURCE_CONFIG, "ristretto/accels.scm");
     if (accelmap_path)
@@ -170,6 +172,9 @@ rstto_settings_init (RsttoSettings *settings)
     settings->priv->thumbnail_size = RSTTO_THUMBNAIL_SIZE_NORMAL;
     settings->priv->default_zoom = RSTTO_SCALE_NONE;
 
+    if (xfconf_disabled)
+        return;
+
     xfconf_g_property_bind (
             settings->priv->channel,
             "/window/width",
@@ -302,6 +307,7 @@ rstto_settings_init (RsttoSettings *settings)
             settings,
             "limit-quality");
 
+    /* not Thunar-specific but let's keep the old name for backwards-compatibility */
     xfconf_g_property_bind (
             settings->priv->channel,
             "/window/use-thunar-properties",
@@ -718,6 +724,18 @@ rstto_xfconf_ensure_gdkrgba (XfconfChannel *channel, const gchar *property)
 
 
 
+gboolean
+rstto_settings_get_xfconf_disabled (void)
+{
+    return xfconf_disabled;
+}
+
+void
+rstto_settings_set_xfconf_disabled (gboolean disabled)
+{
+    xfconf_disabled = disabled;
+}
+
 /**
  * rstto_settings_new:
  *


=====================================
src/settings.h
=====================================
@@ -47,6 +47,10 @@ struct _RsttoSettings
 
 
 
+gboolean rstto_settings_get_xfconf_disabled (void);
+
+void rstto_settings_set_xfconf_disabled (gboolean disabled);
+
 RsttoSettings *rstto_settings_new (void);
 
 void


=====================================
src/thumbnailer.c
=====================================
@@ -60,6 +60,8 @@ cb_rstto_thumbnailer_request_finished (TumblerThumbnailer1 *proxy,
                                        gpointer data);
 static gboolean
 rstto_thumbnailer_queue_request_timer (gpointer user_data);
+static void
+rstto_thumbnailer_queue_request_timer_destroy (gpointer user_data);
 
 
 
@@ -69,7 +71,8 @@ struct _RsttoThumbnailerPrivate
     TumblerThumbnailer1 *proxy;
     RsttoSettings       *settings;
 
-    GSList              *queues[RSTTO_THUMBNAIL_FLAVOR_COUNT],
+    GSList              *remove_queue,
+                        *queues[RSTTO_THUMBNAIL_FLAVOR_COUNT],
                         *in_process_queues[RSTTO_THUMBNAIL_FLAVOR_COUNT],
                         *handles[RSTTO_THUMBNAIL_FLAVOR_COUNT];
     guint                request_timer_ids[RSTTO_THUMBNAIL_FLAVOR_COUNT];
@@ -86,9 +89,12 @@ G_DEFINE_TYPE_WITH_PRIVATE (RsttoThumbnailer, rstto_thumbnailer, G_TYPE_OBJECT)
 static void
 rstto_thumbnailer_init (RsttoThumbnailer *thumbnailer)
 {
+    GError *error = NULL;
+
     thumbnailer->priv = rstto_thumbnailer_get_instance_private (thumbnailer);
-    thumbnailer->priv->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, NULL);
+    thumbnailer->priv->connection = g_bus_get_sync (G_BUS_TYPE_SESSION, NULL, &error);
     thumbnailer->priv->settings = rstto_settings_new ();
+    thumbnailer->priv->remove_queue = NULL;
     for (gint n = 0; n < RSTTO_THUMBNAIL_FLAVOR_COUNT; n++)
     {
         thumbnailer->priv->queues[n] = NULL;
@@ -110,14 +116,23 @@ rstto_thumbnailer_init (RsttoThumbnailer *thumbnailer)
                 TUMBLER_SERVICE_NAME_PREFIX ".Thumbnailer1",
                 TUMBLER_SERVICE_PATH_PREFIX "/Thumbnailer1",
                 NULL,
-                NULL);
-
-        g_signal_connect (thumbnailer->priv->proxy, "ready",
-                          G_CALLBACK (cb_rstto_thumbnailer_thumbnail_ready), thumbnailer);
-        g_signal_connect (thumbnailer->priv->proxy, "error",
-                          G_CALLBACK (cb_rstto_thumbnailer_thumbnail_error), thumbnailer);
-        g_signal_connect (thumbnailer->priv->proxy, "finished",
-                          G_CALLBACK (cb_rstto_thumbnailer_request_finished), thumbnailer);
+                &error);
+
+        if (thumbnailer->priv->proxy != NULL)
+        {
+            g_signal_connect (thumbnailer->priv->proxy, "ready",
+                              G_CALLBACK (cb_rstto_thumbnailer_thumbnail_ready), thumbnailer);
+            g_signal_connect (thumbnailer->priv->proxy, "error",
+                              G_CALLBACK (cb_rstto_thumbnailer_thumbnail_error), thumbnailer);
+            g_signal_connect (thumbnailer->priv->proxy, "finished",
+                              G_CALLBACK (cb_rstto_thumbnailer_request_finished), thumbnailer);
+        }
+    }
+
+    if (error != NULL)
+    {
+        g_warning ("Unable to create a D-Bus proxy for the thumbnailing service: %s", error->message);
+        g_error_free (error);
     }
 }
 
@@ -163,11 +178,13 @@ rstto_thumbnailer_finalize (GObject *object)
 {
     RsttoThumbnailer *thumbnailer = RSTTO_THUMBNAILER (object);
 
+    g_slist_free_full (thumbnailer->priv->remove_queue, g_object_unref);
     for (gint n = 0; n < RSTTO_THUMBNAIL_FLAVOR_COUNT; n++)
     {
-        for (GSList *l = thumbnailer->priv->handles[n]; l != NULL; l = l->next)
-            tumbler_thumbnailer1_call_dequeue_sync (thumbnailer->priv->proxy,
-                                                    GPOINTER_TO_UINT (l->data), NULL, NULL);
+        if (thumbnailer->priv->proxy != NULL)
+            for (GSList *l = thumbnailer->priv->handles[n]; l != NULL; l = l->next)
+                tumbler_thumbnailer1_call_dequeue_sync (thumbnailer->priv->proxy,
+                                                        GPOINTER_TO_UINT (l->data), NULL, NULL);
 
         g_slist_free (thumbnailer->priv->handles[n]);
         g_slist_free_full (thumbnailer->priv->queues[n], g_object_unref);
@@ -235,7 +252,8 @@ rstto_thumbnailer_queue_file (RsttoThumbnailer *thumbnailer,
         g_slist_prepend (thumbnailer->priv->queues[flavor], g_object_ref (file));
     thumbnailer->priv->request_timer_ids[flavor] =
         g_timeout_add_full (G_PRIORITY_LOW, 300, rstto_thumbnailer_queue_request_timer,
-                            rstto_util_source_autoremove (thumbnailer), NULL);
+                            rstto_util_source_autoremove (thumbnailer),
+                            rstto_thumbnailer_queue_request_timer_destroy);
 }
 
 static RsttoThumbnailFlavor
@@ -256,7 +274,6 @@ static gboolean
 rstto_thumbnailer_queue_request_timer (gpointer user_data)
 {
     RsttoThumbnailer *thumbnailer = user_data;
-    RsttoImageList *image_list;
     RsttoThumbnailFlavor flavor;
     GtkWidget *error_dialog, *vbox, *do_not_show_checkbox;
     GSList *iter, *temp = NULL;
@@ -268,7 +285,6 @@ rstto_thumbnailer_queue_request_timer (gpointer user_data)
     g_return_val_if_fail (RSTTO_IS_THUMBNAILER (thumbnailer), FALSE);
 
     flavor = rstto_thumbnailer_get_timer_flavor (thumbnailer);
-    image_list = rstto_main_window_get_app_image_list ();
     n_items = rstto_icon_bar_get_n_visible_items (rstto_main_window_get_app_icon_bar ());
     uris = g_new0 (const gchar *, n_items + 1);
     mimetypes = g_new0 (const gchar *, n_items + 1);
@@ -276,7 +292,7 @@ rstto_thumbnailer_queue_request_timer (gpointer user_data)
     /* dequeue files in process: they will eventually be re-queued after those
      * of the current request */
     iter = thumbnailer->priv->handles[flavor];
-    if (iter != NULL)
+    if (iter != NULL && thumbnailer->priv->proxy != NULL)
         tumbler_thumbnailer1_call_dequeue_sync (thumbnailer->priv->proxy,
                                                 GPOINTER_TO_UINT (iter->data), NULL, NULL);
 
@@ -287,9 +303,8 @@ rstto_thumbnailer_queue_request_timer (gpointer user_data)
          * here only when required */
         if (! rstto_file_is_valid (iter->data))
         {
-            rstto_image_list_remove_file (image_list, iter->data);
-            g_object_unref (iter->data);
-
+            thumbnailer->priv->remove_queue =
+                g_slist_prepend (thumbnailer->priv->remove_queue, iter->data);
             continue;
         }
 
@@ -325,11 +340,12 @@ rstto_thumbnailer_queue_request_timer (gpointer user_data)
     /* update the list of queued files */
     thumbnailer->priv->in_process_queues[flavor] = g_slist_reverse (temp);
 
-    if (! tumbler_thumbnailer1_call_queue_sync (thumbnailer->priv->proxy,
-                                                (const gchar * const*) uris,
-                                                (const gchar * const*) mimetypes,
-                                                rstto_util_get_thumbnail_flavor_name (flavor),
-                                                "default", 0, &handle, NULL, &error))
+    if (thumbnailer->priv->proxy == NULL
+        || ! tumbler_thumbnailer1_call_queue_sync (thumbnailer->priv->proxy,
+                                                   (const gchar * const*) uris,
+                                                   (const gchar * const*) mimetypes,
+                                                   rstto_util_get_thumbnail_flavor_name (flavor),
+                                                   "default", 0, &handle, NULL, &error))
     {
         if (NULL != error)
         {
@@ -386,6 +402,23 @@ rstto_thumbnailer_queue_request_timer (gpointer user_data)
     return FALSE;
 }
 
+static void
+rstto_thumbnailer_queue_request_timer_destroy (gpointer user_data)
+{
+    RsttoThumbnailer *thumbnailer = user_data;
+    RsttoImageList *image_list;
+
+    image_list = rstto_main_window_get_app_image_list ();
+    for (GSList *iter = thumbnailer->priv->remove_queue; iter != NULL; iter = iter->next)
+    {
+        rstto_image_list_remove_file (image_list, iter->data);
+        g_object_unref (iter->data);
+    }
+
+    g_slist_free (thumbnailer->priv->remove_queue);
+    thumbnailer->priv->remove_queue = NULL;
+}
+
 static RsttoThumbnailFlavor
 rstto_thumbnailer_get_handle_flavor (RsttoThumbnailer *thumbnailer,
                                      guint handle)


=====================================
src/util.c
=====================================
@@ -35,7 +35,7 @@ static guint rstto_thumbnail_flavor_n_pixels[] =
     RSTTO_THUMBNAIL_FLAVOR_X_LARGE_N_PIXELS,
     RSTTO_THUMBNAIL_FLAVOR_XX_LARGE_N_PIXELS
 };
-static guint rstto_thumbnail_n_pixels[] = { 32, 48, 64, 96, 128, 192, 256 };
+static guint rstto_thumbnail_n_pixels[] = { 64, 96, 128, 192, 256, 384, 512 };
 
 
 


=====================================
src/xfce_wallpaper_manager.c
=====================================
@@ -185,8 +185,11 @@ rstto_xfce_wallpaper_manager_set (RsttoWallpaperManager *self, RsttoFile *file)
         image_style_prop = g_strdup_printf ("/backdrop/screen%d/monitor%s/workspace%d/image-style",
                                             manager->priv->screen, monitor_name, workspace_nr);
 
-        xfconf_channel_set_string (manager->priv->channel, image_path_prop, uri);
-        xfconf_channel_set_int (manager->priv->channel, image_style_prop, manager->priv->style);
+        if (manager->priv->channel != NULL)
+        {
+            xfconf_channel_set_string (manager->priv->channel, image_path_prop, uri);
+            xfconf_channel_set_int (manager->priv->channel, image_style_prop, manager->priv->style);
+        }
 
         g_free (image_path_prop);
         g_free (image_style_prop);
@@ -195,7 +198,8 @@ rstto_xfce_wallpaper_manager_set (RsttoWallpaperManager *self, RsttoFile *file)
     /* Support for xfdesktop < 4.13 (gtk2) */
     monitor_prop = g_strdup_printf ("/backdrop/screen%d/monitor%d",
                                     manager->priv->screen, manager->priv->monitor);
-    if ((props = xfconf_channel_get_properties (manager->priv->channel, monitor_prop)) != NULL)
+    if (manager->priv->channel != NULL
+        && (props = xfconf_channel_get_properties (manager->priv->channel, monitor_prop)) != NULL)
     {
         image_path_prop = g_strdup_printf ("/backdrop/screen%d/monitor%d/workspace%d/last-image",
                                            manager->priv->screen, manager->priv->monitor, workspace_nr);
@@ -211,7 +215,8 @@ rstto_xfce_wallpaper_manager_set (RsttoWallpaperManager *self, RsttoFile *file)
     }
 
     /* Don't force to add 'single-workspace-mode' property */
-    if (xfconf_channel_has_property (manager->priv->channel, SINGLE_WORKSPACE_MODE))
+    if (manager->priv->channel != NULL
+        && xfconf_channel_has_property (manager->priv->channel, SINGLE_WORKSPACE_MODE))
     {
         xfconf_channel_set_bool (manager->priv->channel, SINGLE_WORKSPACE_MODE, manager->priv->workspace_mode);
     }
@@ -242,7 +247,8 @@ rstto_xfce_wallpaper_manager_init (RsttoXfceWallpaperManager *manager)
     GtkWidget *image_prop_grid = gtk_grid_new ();
 
     manager->priv = rstto_xfce_wallpaper_manager_get_instance_private (manager);
-    manager->priv->channel = xfconf_channel_new ("xfce4-desktop");
+    if (! rstto_settings_get_xfconf_disabled ())
+        manager->priv->channel = xfconf_channel_new ("xfce4-desktop");
     manager->priv->color1 = g_new0 (RsttoColor, 1);
     manager->priv->color1->a = 0xffff;
     manager->priv->color2 = g_new0 (RsttoColor, 1);
@@ -250,10 +256,11 @@ rstto_xfce_wallpaper_manager_init (RsttoXfceWallpaperManager *manager)
     manager->priv->style = 3; /* stretched is now default value */
     manager->priv->check_button = gtk_check_button_new_with_label (
             _("Apply to all workspaces"));
-    manager->priv->workspace_mode = xfconf_channel_get_bool (
-            manager->priv->channel,
-            SINGLE_WORKSPACE_MODE,
-            TRUE);
+    if (manager->priv->channel != NULL)
+        manager->priv->workspace_mode = xfconf_channel_get_bool (
+                manager->priv->channel,
+                SINGLE_WORKSPACE_MODE,
+                TRUE);
 
     manager->priv->dialog = gtk_dialog_new ();
     gtk_window_set_title (GTK_WINDOW (manager->priv->dialog), _("Set as wallpaper"));
@@ -510,9 +517,10 @@ cb_workspace_mode_changed (
     active = gtk_toggle_button_get_active (
             GTK_TOGGLE_BUTTON (button));
 
-    xfconf_channel_set_bool (manager->priv->channel,
-            SINGLE_WORKSPACE_MODE,
-            active);
+    if (manager->priv->channel != NULL)
+        xfconf_channel_set_bool (manager->priv->channel,
+                SINGLE_WORKSPACE_MODE,
+                active);
 }
 
 static void



View it on GitLab: https://salsa.debian.org/xfce-team/apps/ristretto/-/compare/cfb7b625c788cfe6c5c3ea42c7f9cb15dbaa0099...068be127dc1a677546158c31ff3b4b648c87671e

-- 
View it on GitLab: https://salsa.debian.org/xfce-team/apps/ristretto/-/compare/cfb7b625c788cfe6c5c3ea42c7f9cb15dbaa0099...068be127dc1a677546158c31ff3b4b648c87671e
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-xfce-commits/attachments/20221217/c88b3aa9/attachment-0001.htm>


More information about the Pkg-xfce-commits mailing list