summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorConnor Behan2021-10-16 23:14:27 -0400
committerConnor Behan2021-10-16 23:14:27 -0400
commit983cd6281660c4be4c3f6c36650504cb95548c14 (patch)
treeeef9c09f46756190df88ce0f22d1c08a8bc3c8cf
parented72a289fb7220b07f0e70137a7417e61c199547 (diff)
downloadaur-983cd6281660c4be4c3f6c36650504cb95548c14.tar.gz
Update to 4.16.10-1
-rw-r--r--.SRCINFO24
-rw-r--r--PKGBUILD40
-rw-r--r--notrash.patch109
-rw-r--r--preview.patch362
-rw-r--r--split_pane.patch200
-rw-r--r--uca_num_files.patch432
6 files changed, 605 insertions, 562 deletions
diff --git a/.SRCINFO b/.SRCINFO
index b3578c65ca6f..3459fe24c08d 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = thunar-extended
pkgdesc = Thunar with split view, cursor audio preview and extra options for trash, desktop files and user actions
- pkgver = 1.6.16
+ pkgver = 4.16.10
pkgrel = 1
url = http://thunar.xfce.org
arch = i686
@@ -9,41 +9,37 @@ pkgbase = thunar-extended
license = GPL2
license = LGPL2.1
makedepends = intltool
- makedepends = pkgconfig
+ makedepends = gobject-introspection
makedepends = xfce4-panel
makedepends = xfce4-dev-tools
depends = desktop-file-utils
depends = libexif
depends = hicolor-icon-theme
depends = libnotify
- depends = udev
- depends = gtk2
+ depends = libgudev
depends = exo
depends = libxfce4util
depends = libxfce4ui
depends = libpng
depends = gstreamer
optdepends = gvfs: for trash support, mounting with udisk and remote filesystems
- optdepends = gamin: for monitoring file changes without gvfs
- optdepends = xfce4-panel: for trash applet
optdepends = tumbler: for thumbnail previews
optdepends = thunar-volman: manages removable devices
optdepends = thunar-archive-plugin: create and deflate archives
optdepends = thunar-media-tags-plugin: view/edit id3/ogg tags
- provides = thunar=1.6.16
+ provides = thunar=4.16.10
conflicts = thunar
replaces = thunar
options = !libtool
- source = https://archive.xfce.org/src/xfce/thunar/1.6/Thunar-1.6.16.tar.bz2
+ source = https://archive.xfce.org/src/xfce/thunar/4.16/thunar-4.16.10.tar.bz2
source = notrash.patch
source = uca_num_files.patch
source = preview.patch
source = split_pane.patch
- md5sums = a98fed11d1a1c12974ed784c17af006c
- md5sums = d87f154a5fbd3709511ded0c9b9b0317
- md5sums = ed289801d509fe72b82c01fbb6f5f715
- md5sums = 60d3bb7fc185f5f881b5884bd7f28c87
- md5sums = ce443cf896934131427b7789da130097
+ md5sums = 6099a1d47de5b6d416883fd16cdd3a5a
+ md5sums = 48ca4400bb38440b1cc404877b9e2cb6
+ md5sums = 5182272e5db77880f66dbf4995aa3c07
+ md5sums = 5bc65e0243a922ed47fc547a2e7200be
+ md5sums = 86dae66607ef08442e2893201243ac54
pkgname = thunar-extended
-
diff --git a/PKGBUILD b/PKGBUILD
index e05bdb060df3..bea2ae66998f 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,7 +1,7 @@
# Contributor: Connor Behan <connor.behan@gmail.com>
pkgname=thunar-extended
-pkgver=1.6.16
+pkgver=4.16.10
pkgrel=1
pkgdesc="Thunar with split view, cursor audio preview and extra options for trash, desktop files and user actions"
arch=(i686 x86_64)
@@ -10,53 +10,49 @@ url="http://thunar.xfce.org"
groups=('xfce4')
conflicts=('thunar')
replaces=('thunar')
-provides=('thunar=1.6.16')
-depends=('desktop-file-utils' 'libexif' 'hicolor-icon-theme' 'libnotify' 'udev' \
- 'gtk2' 'exo' 'libxfce4util' 'libxfce4ui' 'libpng' 'gstreamer')
-makedepends=('intltool' 'pkgconfig' 'xfce4-panel' 'xfce4-dev-tools')
+provides=('thunar=4.16.10')
+depends=('desktop-file-utils' 'libexif' 'hicolor-icon-theme' 'libnotify' 'libgudev' \
+ 'exo' 'libxfce4util' 'libxfce4ui' 'libpng' 'gstreamer')
+makedepends=('intltool' 'gobject-introspection' 'xfce4-panel' 'xfce4-dev-tools')
optdepends=('gvfs: for trash support, mounting with udisk and remote filesystems'
- 'gamin: for monitoring file changes without gvfs'
- 'xfce4-panel: for trash applet'
'tumbler: for thumbnail previews'
'thunar-volman: manages removable devices'
'thunar-archive-plugin: create and deflate archives'
'thunar-media-tags-plugin: view/edit id3/ogg tags')
options=('!libtool')
-source=(https://archive.xfce.org/src/xfce/thunar/1.6/Thunar-${pkgver}.tar.bz2
+source=(https://archive.xfce.org/src/xfce/thunar/${pkgver%.*}/thunar-${pkgver}.tar.bz2
notrash.patch
uca_num_files.patch
preview.patch
split_pane.patch)
build() {
- cd "${srcdir}"/Thunar-${pkgver}
+ cd "${srcdir}"/thunar-${pkgver}
# Xfce bugs 7352, 7353, 7354 and 10232
patch -Np1 -i ../notrash.patch
- patch -Np1 -i ../uca_num_files.patch
+ # This one builds but still needs work
+ #patch -Np1 -i ../uca_num_files.patch
patch -Np1 -i ../preview.patch
patch -Np1 -i ../split_pane.patch
- mkdir m4
sed -i -e 's/Thunar_CFLAGS/thunar_CFLAGS/' -e 's/Thunar_LDADD/thunar_LDADD/' thunar/Makefile.am
xdt-autogen
- ./configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib \
- --localstatedir=/var --disable-static --disable-wallpaper-plugin \
- --enable-gstreamer --enable-gio-unix --enable-dbus --enable-exif \
- --enable-pcre --enable-gudev --disable-startup-notification \
- --enable-notifications
+ ./configure --prefix=/usr --sysconfdir=/etc --disable-wallpaper-plugin \
+ --enable-gstreamer --enable-gio-unix --enable-exif --enable-pcre --enable-gudev \
+ --disable-gtk-doc --disable-startup-notification --enable-notifications --disable-debug
make
}
package() {
- cd "${srcdir}"/Thunar-${pkgver}
+ cd "${srcdir}"/thunar-${pkgver}
make DESTDIR="${pkgdir}" install
}
-md5sums=('a98fed11d1a1c12974ed784c17af006c'
- 'd87f154a5fbd3709511ded0c9b9b0317'
- 'ed289801d509fe72b82c01fbb6f5f715'
- '60d3bb7fc185f5f881b5884bd7f28c87'
- 'ce443cf896934131427b7789da130097')
+md5sums=('6099a1d47de5b6d416883fd16cdd3a5a'
+ '48ca4400bb38440b1cc404877b9e2cb6'
+ '5182272e5db77880f66dbf4995aa3c07'
+ '5bc65e0243a922ed47fc547a2e7200be'
+ '86dae66607ef08442e2893201243ac54')
diff --git a/notrash.patch b/notrash.patch
index 7ce8a53ffef6..3e6260a72519 100644
--- a/notrash.patch
+++ b/notrash.patch
@@ -1,7 +1,7 @@
-diff -rudp Thunar-1.6.6.orig/thunar/thunar-application.c Thunar-1.6.6/thunar/thunar-application.c
---- Thunar-1.6.6.orig/thunar/thunar-application.c 2015-03-09 23:42:56.000000000 -0400
-+++ Thunar-1.6.6/thunar/thunar-application.c 2015-03-09 23:43:34.000000000 -0400
-@@ -1776,9 +1776,16 @@ thunar_application_unlink_files (ThunarA
+diff -rudp thunar-4.16.10.orig/thunar/thunar-application.c thunar-4.16.10/thunar/thunar-application.c
+--- thunar-4.16.10.orig/thunar/thunar-application.c 2021-10-15 22:57:55.000000000 -0400
++++ thunar-4.16.10/thunar/thunar-application.c 2021-10-15 23:01:06.000000000 -0400
+@@ -2146,9 +2146,16 @@ thunar_application_unlink_files (ThunarA
gchar *message;
guint n_path_list = 0;
gint response;
@@ -18,7 +18,7 @@ diff -rudp Thunar-1.6.6.orig/thunar/thunar-application.c Thunar-1.6.6/thunar/thu
/* determine the paths for the files */
for (lp = g_list_last (file_list); lp != NULL; lp = lp->prev, ++n_path_list)
-@@ -1800,8 +1807,8 @@ thunar_application_unlink_files (ThunarA
+@@ -2170,8 +2177,8 @@ thunar_application_unlink_files (ThunarA
if (G_UNLIKELY (permanently))
{
/* parse the parent pointer */
@@ -29,81 +29,56 @@ diff -rudp Thunar-1.6.6.orig/thunar/thunar-application.c Thunar-1.6.6/thunar/thu
/* generate the question to confirm the delete operation */
if (G_LIKELY (n_path_list == 1))
{
-diff -rudp Thunar-1.6.6.orig/thunar/thunar-preferences.c Thunar-1.6.6/thunar/thunar-preferences.c
---- Thunar-1.6.6.orig/thunar/thunar-preferences.c 2015-03-09 23:42:56.000000000 -0400
-+++ Thunar-1.6.6/thunar/thunar-preferences.c 2015-03-09 23:46:00.000000000 -0400
-@@ -75,6 +75,7 @@ enum
- PROP_MISC_VOLUME_MANAGEMENT,
+diff -rudp thunar-4.16.10.orig/thunar/thunar-preferences.c thunar-4.16.10/thunar/thunar-preferences.c
+--- thunar-4.16.10.orig/thunar/thunar-preferences.c 2021-10-15 22:57:55.000000000 -0400
++++ thunar-4.16.10/thunar/thunar-preferences.c 2021-10-15 23:06:04.000000000 -0400
+@@ -78,6 +78,7 @@ enum
PROP_MISC_CASE_SENSITIVE,
PROP_MISC_DATE_STYLE,
+ PROP_MISC_DATE_CUSTOM_STYLE,
+ PROP_MISC_ENABLE_TRASH,
PROP_EXEC_SHELL_SCRIPTS_BY_DEFAULT,
PROP_MISC_FOLDERS_FIRST,
PROP_MISC_FULL_PATH_IN_TITLE,
-@@ -759,6 +760,18 @@ thunar_preferences_class_init (ThunarPre
- THUNAR_ICON_SIZE_SMALLEST,
+@@ -870,6 +871,18 @@ thunar_preferences_class_init (ThunarPre
+ THUNAR_ICON_SIZE_16,
EXO_PARAM_READWRITE);
-+ /**
++ /**
+ * ThunarPreferences:misc-enable-trash:
+ *
-+ * If trash is disabled, files will be deleted permanently
++ * If trash is disabled, files will be deleted permanently.
+ **/
+ preferences_props[PROP_MISC_ENABLE_TRASH] =
+ g_param_spec_boolean ("misc-enable-trash",
-+ "misc-enable-trash",
-+ NULL,
-+ TRUE,
-+ EXO_PARAM_READWRITE);
++ "misc-enable-trash",
++ NULL,
++ TRUE,
++ EXO_PARAM_READWRITE);
+
/* install all properties */
g_object_class_install_properties (gobject_class, N_PROPERTIES, preferences_props);
}
-diff -rudp Thunar-1.6.6.orig/thunar/thunar-preferences-dialog.c Thunar-1.6.6/thunar/thunar-preferences-dialog.c
---- Thunar-1.6.6.orig/thunar/thunar-preferences-dialog.c 2015-03-09 23:42:56.000000000 -0400
-+++ Thunar-1.6.6/thunar/thunar-preferences-dialog.c 2015-03-09 23:43:34.000000000 -0400
-@@ -381,7 +381,7 @@ thunar_preferences_dialog_init (ThunarPr
- gtk_frame_set_label_widget (GTK_FRAME (frame), label);
- gtk_widget_show (label);
-
-- table = gtk_table_new (2, 2, FALSE);
-+ table = gtk_table_new (3, 2, FALSE);
- gtk_table_set_row_spacings (GTK_TABLE (table), 6);
- gtk_table_set_col_spacings (GTK_TABLE (table), 12);
- gtk_container_set_border_width (GTK_CONTAINER (table), 12);
-@@ -599,7 +599,7 @@ thunar_preferences_dialog_init (ThunarPr
- gtk_frame_set_label_widget (GTK_FRAME (frame), label);
- gtk_widget_show (label);
-
-- table = gtk_table_new (2, 2, FALSE);
-+ table = gtk_table_new (3, 2, FALSE);
- gtk_table_set_row_spacings (GTK_TABLE (table), 6);
- gtk_table_set_col_spacings (GTK_TABLE (table), 12);
- gtk_container_set_border_width (GTK_CONTAINER (table), 12);
-@@ -626,12 +626,18 @@ thunar_preferences_dialog_init (ThunarPr
- gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 0);
- gtk_widget_show (frame);
+diff -rudp thunar-4.16.10.orig/thunar/thunar-preferences-dialog.c thunar-4.16.10/thunar/thunar-preferences-dialog.c
+--- thunar-4.16.10.orig/thunar/thunar-preferences-dialog.c 2021-10-15 22:57:55.000000000 -0400
++++ thunar-4.16.10/thunar/thunar-preferences-dialog.c 2021-10-15 23:19:19.000000000 -0400
+@@ -856,6 +856,12 @@ thunar_preferences_dialog_init (ThunarPr
+ thunar_gtk_label_set_a11y_relation (GTK_LABEL (label), combo);
+ gtk_widget_show (combo);
+ button = gtk_check_button_new_with_mnemonic (_("Move items to Trash on _deletion."));
+ exo_mutual_binding_new (G_OBJECT (dialog->preferences), "misc-enable-trash", G_OBJECT (button), "active");
-+ thunar_gtk_widget_set_tooltip (button, _( "By default, items are sent to the Trash on deletion. By disabling this option, items will be removed on deletion and will be lost forever. (DANGEROUS)" ) );
-+ gtk_table_attach (GTK_TABLE (table), button, 0,1,2,3, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
++ gtk_widget_set_tooltip_text (button, _( "By default, items are sent to the Trash on deletion. By disabling this option, items will be removed on deletion and will be lost forever. (DANGEROUS)"));
++ gtk_grid_attach (GTK_GRID (grid), button, 0, 2, 1, 1);
+ gtk_widget_show (button);
+
- label = gtk_label_new (_("Volume Management"));
- gtk_label_set_attributes (GTK_LABEL (label), thunar_pango_attr_list_bold ());
- gtk_frame_set_label_widget (GTK_FRAME (frame), label);
- gtk_widget_show (label);
-
-- table = gtk_table_new (2, 2, FALSE);
-+ table = gtk_table_new (3, 2, FALSE);
- gtk_table_set_row_spacings (GTK_TABLE (table), 6);
- gtk_table_set_col_spacings (GTK_TABLE (table), 12);
- gtk_container_set_border_width (GTK_CONTAINER (table), 12);
-diff -rudp Thunar-1.6.6.orig/thunar/thunar-shortcuts-model.c Thunar-1.6.6/thunar/thunar-shortcuts-model.c
---- Thunar-1.6.6.orig/thunar/thunar-shortcuts-model.c 2015-03-09 23:42:56.000000000 -0400
-+++ Thunar-1.6.6/thunar/thunar-shortcuts-model.c 2015-03-09 23:43:34.000000000 -0400
-@@ -952,6 +952,8 @@ thunar_shortcuts_model_shortcut_places (
+ frame = g_object_new (GTK_TYPE_FRAME, "border-width", 0, "shadow-type", GTK_SHADOW_NONE, NULL);
+ gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, TRUE, 0);
+ gtk_widget_show (frame);
+diff -rudp thunar-4.16.10.orig/thunar/thunar-shortcuts-model.c thunar-4.16.10/thunar/thunar-shortcuts-model.c
+--- thunar-4.16.10.orig/thunar/thunar-shortcuts-model.c 2021-10-15 22:57:55.000000000 -0400
++++ thunar-4.16.10/thunar/thunar-shortcuts-model.c 2021-10-15 23:01:06.000000000 -0400
+@@ -1068,6 +1068,8 @@ thunar_shortcuts_model_shortcut_places (
GFile *desktop;
GFile *trash;
ThunarFile *file;
@@ -112,7 +87,7 @@ diff -rudp Thunar-1.6.6.orig/thunar/thunar-shortcuts-model.c Thunar-1.6.6/thunar
/* add the places heading */
shortcut = g_slice_new0 (ThunarShortcut);
-@@ -992,9 +994,13 @@ thunar_shortcuts_model_shortcut_places (
+@@ -1110,9 +1112,13 @@ thunar_shortcuts_model_shortcut_places (
}
g_object_unref (desktop);
g_object_unref (home);
@@ -127,10 +102,10 @@ diff -rudp Thunar-1.6.6.orig/thunar/thunar-shortcuts-model.c Thunar-1.6.6/thunar
{
trash = thunar_g_file_new_for_trash ();
file = thunar_file_get (trash, NULL);
-diff -rudp Thunar-1.6.6.orig/thunar/thunar-tree-model.c Thunar-1.6.6/thunar/thunar-tree-model.c
---- Thunar-1.6.6.orig/thunar/thunar-tree-model.c 2015-03-09 23:42:56.000000000 -0400
-+++ Thunar-1.6.6/thunar/thunar-tree-model.c 2015-03-09 23:43:34.000000000 -0400
-@@ -286,12 +286,18 @@ thunar_tree_model_init (ThunarTreeModel
+diff -rudp thunar-4.16.10.orig/thunar/thunar-tree-model.c thunar-4.16.10/thunar/thunar-tree-model.c
+--- thunar-4.16.10.orig/thunar/thunar-tree-model.c 2021-10-15 22:57:55.000000000 -0400
++++ thunar-4.16.10/thunar/thunar-tree-model.c 2021-10-15 23:01:06.000000000 -0400
+@@ -288,12 +288,18 @@ thunar_tree_model_init (ThunarTreeModel
GList *devices;
GList *lp;
GNode *node;
@@ -149,13 +124,13 @@ diff -rudp Thunar-1.6.6.orig/thunar/thunar-tree-model.c Thunar-1.6.6/thunar/thun
+
/* initialize the model data */
model->sort_case_sensitive = TRUE;
- model->visible_func = (ThunarTreeModelVisibleFunc) exo_noop_true;
-@@ -324,7 +330,7 @@ thunar_tree_model_init (ThunarTreeModel
- g_object_unref (desktop);
+ model->visible_func = (ThunarTreeModelVisibleFunc) (void (*)(void)) exo_noop_true;
+@@ -327,7 +333,7 @@ thunar_tree_model_init (ThunarTreeModel
+ system_paths = g_list_append (system_paths, g_object_ref (home));
/* append the trash icon if the trash is supported */
- if (thunar_g_vfs_is_uri_scheme_supported ("trash"))
+ if (isTrashEnabled && thunar_g_vfs_is_uri_scheme_supported ("trash"))
system_paths = g_list_append (system_paths, thunar_g_file_new_for_trash ());
- /* append the network icon if browsing the network is supported */
+ /* append the root file system */
diff --git a/preview.patch b/preview.patch
index fdda7ae79073..5352624c18fc 100644
--- a/preview.patch
+++ b/preview.patch
@@ -1,7 +1,7 @@
-diff -ru Thunar-1.6.10.orig/configure.ac Thunar-1.6.10/configure.ac
---- Thunar-1.6.10.orig/configure.ac 2016-12-05 04:11:30.000000000 -0500
-+++ Thunar-1.6.10/configure.ac 2016-12-05 04:24:20.000000000 -0500
-@@ -112,6 +112,19 @@
+diff -rudp thunar-4.16.10.orig/configure.ac thunar-4.16.10/configure.ac
+--- thunar-4.16.10.orig/configure.ac 2021-10-16 13:53:35.000000000 -0400
++++ thunar-4.16.10/configure.ac 2021-10-16 19:23:03.000000000 -0400
+@@ -112,6 +112,19 @@ AC_ARG_WITH([helper-path-prefix],
[HELPER_PATH_PREFIX="$libdir"])
AC_SUBST([HELPER_PATH_PREFIX])
@@ -21,9 +21,9 @@ diff -ru Thunar-1.6.10.orig/configure.ac Thunar-1.6.10/configure.ac
dnl ***********************************************
dnl *** Work-around system-specific limitations ***
dnl ***********************************************
-@@ -173,6 +186,14 @@
- XDT_CHECK_OPTIONAL_PACKAGE([DBUS], [dbus-glib-1],
- [0.34], [dbus], [D-BUS support])
+@@ -182,6 +195,14 @@ dnl **********************************
+ XDT_CHECK_OPTIONAL_PACKAGE([GIO_UNIX], [gio-unix-2.0],
+ [2.30.0], [gio-unix], [GIO UNIX features])
+dnl *************************************************
+dnl *** Optional support for gstreamer ***
@@ -36,7 +36,7 @@ diff -ru Thunar-1.6.10.orig/configure.ac Thunar-1.6.10/configure.ac
dnl ***************************************************************
dnl *** Optional support for GUDev (required for thunar-volman) ***
dnl ***************************************************************
-@@ -267,6 +288,11 @@
+@@ -272,6 +293,11 @@ echo "* GIO UNIX features:
else
echo "* GIO UNIX features: no"
fi
@@ -48,12 +48,12 @@ diff -ru Thunar-1.6.10.orig/configure.ac Thunar-1.6.10/configure.ac
if test x"$GUDEV_FOUND" = x"yes"; then
echo "* GUDev (required for thunar-volman): yes"
else
-diff -ru Thunar-1.6.10.orig/thunar/Makefile.am Thunar-1.6.10/thunar/Makefile.am
---- Thunar-1.6.10.orig/thunar/Makefile.am 2016-12-05 04:11:30.000000000 -0500
-+++ Thunar-1.6.10/thunar/Makefile.am 2016-12-05 04:11:39.000000000 -0500
-@@ -269,6 +269,14 @@
- $(DBUS_LIBS)
- endif
+diff -rudp thunar-4.16.10.orig/thunar/Makefile.am thunar-4.16.10/thunar/Makefile.am
+--- thunar-4.16.10.orig/thunar/Makefile.am 2021-10-16 13:53:35.000000000 -0400
++++ thunar-4.16.10/thunar/Makefile.am 2021-10-16 19:23:03.000000000 -0400
+@@ -235,6 +235,14 @@ thunar_LDADD = \
+ thunar_DEPENDENCIES = \
+ $(top_builddir)/thunarx/libthunarx-$(THUNARX_VERSION_API).la
+if HAVE_GSTREAMER
+Thunar_CFLAGS += \
@@ -66,16 +66,18 @@ diff -ru Thunar-1.6.10.orig/thunar/Makefile.am Thunar-1.6.10/thunar/Makefile.am
if HAVE_GIO_UNIX
thunar_CFLAGS += \
$(GIO_UNIX_CFLAGS)
-diff -ru Thunar-1.6.10.orig/thunar/thunar-abstract-icon-view.c Thunar-1.6.10/thunar/thunar-abstract-icon-view.c
---- Thunar-1.6.10.orig/thunar/thunar-abstract-icon-view.c 2016-12-05 04:11:30.000000000 -0500
-+++ Thunar-1.6.10/thunar/thunar-abstract-icon-view.c 2016-12-05 04:11:39.000000000 -0500
-@@ -483,9 +483,16 @@
- ThunarPreferences *preferences;
- gboolean in_tab;
- const gchar *action_name;
-+
+diff -rudp thunar-4.16.10.orig/thunar/thunar-abstract-icon-view.c thunar-4.16.10/thunar/thunar-abstract-icon-view.c
+--- thunar-4.16.10.orig/thunar/thunar-abstract-icon-view.c 2021-10-16 13:53:35.000000000 -0400
++++ thunar-4.16.10/thunar/thunar-abstract-icon-view.c 2021-10-16 19:23:03.000000000 -0400
+@@ -586,12 +586,18 @@ thunar_abstract_icon_view_button_press_e
+ GdkEventButton *event,
+ ThunarAbstractIconView *abstract_icon_view)
+ {
+ ThunarStandardView *standard_view = THUNAR_STANDARD_VIEW (abstract_icon_view);
-+ GtkWidget *real_view = GTK_BIN (standard_view)->child;
++ GtkWidget *real_view = gtk_bin_get_child (GTK_BIN (standard_view));
+ GtkTreePath *path;
+
+ abstract_icon_view->priv->button_pressed = TRUE;
if (event->type == GDK_BUTTON_PRESS && event->button == 3)
{
@@ -86,17 +88,16 @@ diff -ru Thunar-1.6.10.orig/thunar/thunar-abstract-icon-view.c Thunar-1.6.10/thu
/* open the context menu on right clicks */
if (exo_icon_view_get_item_at_pos (view, event->x, event->y, &path, NULL))
{
-@@ -511,12 +518,21 @@
-
+@@ -617,12 +623,21 @@ thunar_abstract_icon_view_button_press_e
+
/* open the context menu */
- thunar_standard_view_context_menu (THUNAR_STANDARD_VIEW (abstract_icon_view), event->button, event->time);
-- }
-+
+ thunar_standard_view_context_menu (THUNAR_STANDARD_VIEW (abstract_icon_view));
++
+#ifdef HAVE_GSTREAMER
+ /* turn audio-preview back on */
-+ g_signal_connect (G_OBJECT (real_view), "motion-notify-event", G_CALLBACK (thunar_standard_view_try_preview), standard_view);
++ g_signal_connect (G_OBJECT (real_view), "motion-notify-event", G_CALLBACK (thunar_standard_view_try_preview), standard_view);
+#endif
-+ }
+ }
return TRUE;
}
@@ -109,61 +110,73 @@ diff -ru Thunar-1.6.10.orig/thunar/thunar-abstract-icon-view.c Thunar-1.6.10/thu
/* unselect all currently selected items */
exo_icon_view_unselect_all (view);
-@@ -552,6 +568,11 @@
+@@ -635,6 +650,11 @@ thunar_abstract_icon_view_button_press_e
+ /* try to open the path as new window/tab, if possible */
+ _thunar_standard_view_open_on_middle_click (THUNAR_STANDARD_VIEW (abstract_icon_view), path, event->state);
++#ifdef HAVE_GSTREAMER
++ /* we just clicked on a file so let the audio-preview work again */
++ g_signal_connect (G_OBJECT (real_view), "motion-notify-event", G_CALLBACK (thunar_standard_view_try_preview), standard_view);
++#endif
++
/* cleanup */
gtk_tree_path_free (path);
-+
-+#ifdef HAVE_GSTREAMER
-+ /* we just clicked on a file so let the audio-preview work again */
-+ g_signal_connect (G_OBJECT (real_view), "motion-notify-event", G_CALLBACK (thunar_standard_view_try_preview), standard_view);
-+#endif
}
- else if (event->type == GDK_BUTTON_PRESS)
- {
-@@ -583,6 +604,9 @@
- ThunarAbstractIconView *abstract_icon_view)
- {
- GtkAction *action;
-+
-+ ThunarStandardView *standard_view = THUNAR_STANDARD_VIEW (abstract_icon_view);
-+ GtkWidget *real_view = GTK_BIN (standard_view)->child;
+@@ -670,6 +690,9 @@ thunar_abstract_icon_view_button_release
+ const XfceGtkActionEntry *action_entry;
+ GtkWidget *window;
++ ThunarStandardView *standard_view = THUNAR_STANDARD_VIEW (abstract_icon_view);
++ GtkWidget *real_view = gtk_bin_get_child (GTK_BIN (standard_view));
++
_thunar_return_val_if_fail (EXO_IS_ICON_VIEW (view), FALSE);
_thunar_return_val_if_fail (THUNAR_IS_ABSTRACT_ICON_VIEW (abstract_icon_view), FALSE);
-@@ -610,6 +634,11 @@
+ _thunar_return_val_if_fail (abstract_icon_view->priv->gesture_expose_id > 0, FALSE);
+@@ -698,6 +721,11 @@ thunar_abstract_icon_view_button_release
/* redraw the abstract_icon view */
gtk_widget_queue_draw (GTK_WIDGET (view));
-+#ifdef HAVE_GSTREAMER
-+ /* re-allow the audio-preview */
++#ifdef HAVE_GSTREAMER
++ /* re-allow the audio preview */
+ g_signal_connect (G_OBJECT (real_view), "motion-notify-event", G_CALLBACK (thunar_standard_view_try_preview), standard_view);
+#endif
+
return FALSE;
}
-diff -ru Thunar-1.6.10.orig/thunar/thunar-standard-view.c Thunar-1.6.10/thunar/thunar-standard-view.c
---- Thunar-1.6.10.orig/thunar/thunar-standard-view.c 2016-12-05 04:11:30.000000000 -0500
-+++ Thunar-1.6.10/thunar/thunar-standard-view.c 2016-12-05 04:11:39.000000000 -0500
-@@ -31,6 +31,7 @@
+diff -rudp thunar-4.16.10.orig/thunar/thunar-standard-view.c thunar-4.16.10/thunar/thunar-standard-view.c
+--- thunar-4.16.10.orig/thunar/thunar-standard-view.c 2021-10-16 13:53:35.000000000 -0400
++++ thunar-4.16.10/thunar/thunar-standard-view.c 2021-10-16 22:13:23.000000000 -0400
+@@ -57,6 +57,28 @@
+ #include <gdk/gdkx.h>
#endif
- #include <gdk/gdkkeysyms.h>
-+#include <gdk/gdkcursor.h>
-
- #include <thunar/thunar-application.h>
- #include <thunar/thunar-create-dialog.h>
-@@ -59,7 +60,7 @@
- #endif
-
-
--
++static char *music_note[] = {
++"16 16 2 1 0 0",
++" s none m none c none",
++"# s black m black c black",
++" ",
++" ",
++" #### ",
++" ###### ",
++" ## ### ",
++" ## # ",
++" ## ",
++" ## ",
++" ## ",
++" ## ",
++" ####### ",
++" ######## ",
++" ######## ",
++" ####### ",
++" ##### ",
++" "
++};
+#define MUSIC_NOTE { 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x80, 0x1f, 0x80, 0x39, 0x80, 0x21, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0x80, 0x01, 0xfc, 0x01, 0xfe, 0x01, 0xfe, 0x01, 0xfe, 0x00, 0x7c, 0x00, 0x00, 0x00 };
- #define THUNAR_STANDARD_VIEW_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), THUNAR_TYPE_STANDARD_VIEW, ThunarStandardViewPrivate))
-@@ -287,6 +288,7 @@
+ /* Property identifiers */
+@@ -246,6 +268,7 @@ static gboolean thunar_stand
static void thunar_standard_view_drag_scroll_timer_destroy (gpointer user_data);
static gboolean thunar_standard_view_drag_timer (gpointer user_data);
static void thunar_standard_view_drag_timer_destroy (gpointer user_data);
@@ -171,7 +184,7 @@ diff -ru Thunar-1.6.10.orig/thunar/thunar-standard-view.c Thunar-1.6.10/thunar/t
static void thunar_standard_view_finished_thumbnailing (ThunarThumbnailer *thumbnailer,
guint request,
ThunarStandardView *standard_view);
-@@ -780,6 +782,15 @@
+@@ -688,6 +711,15 @@ thunar_standard_view_constructor (GType
/* stay informed about changes to the sort column/order */
g_signal_connect (G_OBJECT (standard_view->model), "sort-column-changed", G_CALLBACK (thunar_standard_view_sort_column_changed), standard_view);
@@ -186,21 +199,21 @@ diff -ru Thunar-1.6.10.orig/thunar/thunar-standard-view.c Thunar-1.6.10/thunar/t
+
/* setup support to navigate using a horizontal mouse wheel and the back and forward buttons */
g_signal_connect (G_OBJECT (view), "scroll-event", G_CALLBACK (thunar_standard_view_scroll_event), object);
- g_signal_connect (G_OBJECT (view), "button-press-event", G_CALLBACK (thunar_standard_view_button_press_event), object);
-@@ -924,6 +935,12 @@
+@@ -835,6 +867,12 @@ thunar_standard_view_finalize (GObject *
/* release the scroll_to_files hash table */
g_hash_table_destroy (standard_view->priv->scroll_to_files);
-+
+
+#ifdef HAVE_GSTREAMER
+ /* stop audio-preview and release the gstreamer reference */
+ gst_element_set_state (standard_view->play, GST_STATE_NULL);
+ gst_object_unref (GST_OBJECT (standard_view->play));
+#endif
-
++
(*G_OBJECT_CLASS (thunar_standard_view_parent_class)->finalize) (object);
}
-@@ -3043,6 +3060,214 @@
+
+@@ -2314,6 +2352,212 @@ thunar_standard_view_motion_notify_event
@@ -224,18 +237,18 @@ diff -ru Thunar-1.6.10.orig/thunar/thunar-standard-view.c Thunar-1.6.10/thunar/t
+ gchar *view_type;
+ gboolean item_found;
+ gboolean wrong_mime = TRUE;
-+
++
+ GtkTreePath *path = NULL;
+ GtkTreeIter iter;
-+
++
+ ThunarFile *file;
+ gchar *mime_type;
+ GList *preview_timer_list = NULL;
-+
++
+ preferences = thunar_preferences_get();
+ g_object_get(G_OBJECT(preferences), "last-view", &view_type, NULL);
+ g_object_unref(preferences);
-+
++
+ if (strncmp(view_type, "ThunarDetailsView", 17) == 0)
+ {
+ item_found = gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(real_view), event->x, event->y, &path, NULL, NULL, NULL);
@@ -244,48 +257,48 @@ diff -ru Thunar-1.6.10.orig/thunar/thunar-standard-view.c Thunar-1.6.10/thunar/t
+ {
+ item_found = exo_icon_view_get_item_at_pos (EXO_ICON_VIEW (real_view), event->x, event->y, &path, NULL);
+ }
-+
++
+ g_free(view_type);
-+
++
+ if (G_LIKELY (item_found))
+ {
+ gtk_tree_model_get_iter (GTK_TREE_MODEL (standard_view->model), &iter, path);
+ file = thunar_list_model_get_file (standard_view->model, &iter);
-+
++
+ if (G_LIKELY (file != NULL))
+ {
-+ mime_type = thunar_file_get_content_type (file);
-+ if (G_LIKELY (mime_type != NULL))
-+ {
-+ wrong_mime = strncmp(mime_type, "audio/", 6);
-+ }
-+ }
-+
++ mime_type = thunar_file_get_content_type (file);
++ if (G_LIKELY (mime_type != NULL))
++ {
++ wrong_mime = strncmp(mime_type, "audio/", 6);
++ }
++ }
++
+ if (G_UNLIKELY (!wrong_mime))
+ {
-+ if (G_LIKELY (path != NULL))
-+ {
-+ preview_timer_list = g_list_append(preview_timer_list, standard_view);
-+ preview_timer_list = g_list_append(preview_timer_list, g_file_get_uri(thunar_file_get_file(file)));
-+
-+ gtk_tree_path_free(path);
-+ g_timeout_add (50, (GtkFunction)thunar_standard_view_preview_timer, preview_timer_list);
-+ g_signal_handlers_disconnect_by_func (real_view, thunar_standard_view_try_preview, standard_view);
-+
-+ return FALSE;
-+ }
-+ }
++ if (G_LIKELY (path != NULL))
++ {
++ preview_timer_list = g_list_append(preview_timer_list, standard_view);
++ preview_timer_list = g_list_append(preview_timer_list, g_file_get_uri(thunar_file_get_file(file)));
++
++ gtk_tree_path_free(path);
++ g_timeout_add (50, (GSourceFunc)thunar_standard_view_preview_timer, preview_timer_list);
++ g_signal_handlers_disconnect_by_func (real_view, thunar_standard_view_try_preview, standard_view);
++
++ return FALSE;
++ }
++ }
+ else
+ {
-+ g_object_unref (G_OBJECT (file));
-+ }
++ g_object_unref (G_OBJECT (file));
++ }
+ }
-+
++
+ if (standard_view->playing)
+ {
-+ gdk_window_set_cursor (GTK_WIDGET (standard_view)->window, NULL);
-+ gst_element_set_state (standard_view->play, GST_STATE_NULL);
-+ standard_view->playing = FALSE;
++ gdk_window_set_cursor (gtk_widget_get_window (GTK_WIDGET (standard_view)), NULL);
++ gst_element_set_state (standard_view->play, GST_STATE_NULL);
++ standard_view->playing = FALSE;
+ }
+ return FALSE;
+}
@@ -297,34 +310,32 @@ diff -ru Thunar-1.6.10.orig/thunar/thunar-standard-view.c Thunar-1.6.10/thunar/t
+{
+ ThunarStandardView *standard_view = user_data->data;
+ gchar *absolute_path = user_data->next->data;
-+
-+ GtkWidget *real_view = GTK_BIN (standard_view)->child;
++
++ GtkWidget *real_view = gtk_bin_get_child (GTK_BIN (standard_view));
+ ThunarPreferences *preferences;
+ gchar *view_type;
+ gboolean item_found;
-+
++
+ GdkCursor *cursor;
-+ GdkPixmap *bitmap;
-+ GdkColor fg = { 0, 0, 0, 0 };
-+ GdkColor bg = { 0, 65535, 65535, 65535 };
-+ static unsigned char music_note_bits[] = MUSIC_NOTE;
-+
++ GdkPixbuf *pixbuf;
++ //static unsigned char music_note_bits[] = MUSIC_NOTE;
++
+ GtkTreePath *new_path = NULL;
+ GtkTreeIter iter;
+ ThunarFile *file;
+ gint x, y;
+ gint wx, wy;
+ gint bx, by;
-+
++
+ static int call_number = 0;
-+
++
+ g_signal_handlers_disconnect_by_func (real_view, thunar_standard_view_try_preview, standard_view);
+ gtk_widget_get_pointer (GTK_WIDGET (standard_view), &wx, &wy);
-+
++
+ preferences = thunar_preferences_get();
+ g_object_get(G_OBJECT(preferences), "last-view", &view_type, NULL);
+ g_object_unref(preferences);
-+
++
+ if (strncmp(view_type, "ThunarDetailsView", 17) == 0)
+ {
+ gtk_tree_view_convert_widget_to_bin_window_coords (GTK_TREE_VIEW(real_view), wx, wy, &bx, &by);
@@ -335,71 +346,71 @@ diff -ru Thunar-1.6.10.orig/thunar/thunar-standard-view.c Thunar-1.6.10/thunar/t
+ exo_icon_view_widget_to_icon_coords(EXO_ICON_VIEW (real_view), wx, wy, &x, &y);
+ item_found = exo_icon_view_get_item_at_pos (EXO_ICON_VIEW (real_view), x, y, &new_path, NULL);
+ }
-+
++
+ g_free(view_type);
-+
++
+ if (standard_view->playing)
+ {
+ if (!item_found)
+ {
-+ gdk_window_set_cursor (GTK_WIDGET (standard_view)->window, NULL);
-+ gst_element_set_state (standard_view->play, GST_STATE_NULL);
-+ standard_view->playing = FALSE;
++ gdk_window_set_cursor (gtk_widget_get_window (GTK_WIDGET (standard_view)), NULL);
++ gst_element_set_state (standard_view->play, GST_STATE_NULL);
++ standard_view->playing = FALSE;
+ }
+ else
+ {
-+ gtk_tree_model_get_iter (GTK_TREE_MODEL (standard_view->model), &iter, new_path);
++ gtk_tree_model_get_iter (GTK_TREE_MODEL (standard_view->model), &iter, new_path);
+ file = thunar_list_model_get_file (standard_view->model, &iter);
-+
++
+ if (strcmp(g_file_get_uri(thunar_file_get_file(file)), absolute_path))
-+ {
-+ gdk_window_set_cursor (GTK_WIDGET (standard_view)->window, NULL);
-+ gst_element_set_state (standard_view->play, GST_STATE_NULL);
-+ standard_view->playing = FALSE;
-+ }
++ {
++ gdk_window_set_cursor (gtk_widget_get_window (GTK_WIDGET (standard_view)), NULL);
++ gst_element_set_state (standard_view->play, GST_STATE_NULL);
++ standard_view->playing = FALSE;
++ }
+ }
+ }
+ else
+ {
+ if (item_found)
+ {
-+ gtk_tree_model_get_iter (GTK_TREE_MODEL (standard_view->model), &iter, new_path);
++ gtk_tree_model_get_iter (GTK_TREE_MODEL (standard_view->model), &iter, new_path);
+ file = thunar_list_model_get_file (standard_view->model, &iter);
-+
++
+ if (!strcmp(g_file_get_uri(thunar_file_get_file(file)), absolute_path))
-+ {
-+ call_number++;
-+
-+ if (call_number == 1)
-+ {
-+ bitmap = gdk_bitmap_create_from_data (NULL, music_note_bits, 16, 16);
-+ cursor = gdk_cursor_new_from_pixmap (bitmap, bitmap, &fg, &bg, 8, 8);
-+ gdk_window_set_cursor (GTK_WIDGET (standard_view)->window, cursor);
-+
-+ g_object_set (G_OBJECT (standard_view->play), "uri", g_file_get_uri(thunar_file_get_file(file)), NULL);
-+ }
-+
-+ if (call_number > 40)
-+ {
-+ gst_element_set_state (standard_view->play, GST_STATE_PLAYING);
-+ standard_view->playing = TRUE;
-+
-+ call_number = 0;
-+ gtk_tree_path_free (new_path);
-+ g_signal_connect (G_OBJECT (real_view), "motion-notify-event", G_CALLBACK (thunar_standard_view_try_preview), standard_view);
-+ return FALSE;
-+ }
-+ return TRUE;
-+ }
-+ else
-+ {
-+ gdk_window_set_cursor (GTK_WIDGET (standard_view)->window, NULL);
-+ }
++ {
++ call_number++;
++
++ if (call_number == 1)
++ {
++ pixbuf = gdk_pixbuf_new_from_xpm_data (music_note);
++ cursor = gdk_cursor_new_from_pixbuf (gdk_display_get_default (), pixbuf, 8, 8);
++ gdk_window_set_cursor (gtk_widget_get_window (GTK_WIDGET (standard_view)), cursor);
++
++ g_object_set (G_OBJECT (standard_view->play), "uri", g_file_get_uri(thunar_file_get_file(file)), NULL);
++ }
++
++ if (call_number > 40)
++ {
++ gst_element_set_state (standard_view->play, GST_STATE_PLAYING);
++ standard_view->playing = TRUE;
++
++ call_number = 0;
++ gtk_tree_path_free (new_path);
++ g_signal_connect (G_OBJECT (real_view), "motion-notify-event", G_CALLBACK (thunar_standard_view_try_preview), standard_view);
++ return FALSE;
++ }
++ return TRUE;
++ }
++ else
++ {
++ gdk_window_set_cursor (gtk_widget_get_window (GTK_WIDGET (standard_view)), NULL);
++ }
+ }
+ else
+ {
-+ gdk_window_set_cursor (GTK_WIDGET (standard_view)->window, NULL);
-+ }
++ gdk_window_set_cursor (gtk_widget_get_window (GTK_WIDGET (standard_view)), NULL);
++ }
+ }
+
+ call_number = 0;
@@ -415,14 +426,14 @@ diff -ru Thunar-1.6.10.orig/thunar/thunar-standard-view.c Thunar-1.6.10/thunar/t
static gboolean
thunar_standard_view_scroll_event (GtkWidget *view,
GdkEventScroll *event,
-@@ -3945,7 +4170,15 @@
+@@ -3182,7 +3426,15 @@ THUNAR_THREADS_LEAVE
static void
thunar_standard_view_drag_scroll_timer_destroy (gpointer user_data)
{
- THUNAR_STANDARD_VIEW (user_data)->priv->drag_scroll_timer_id = 0;
+ ThunarStandardView *standard_view = THUNAR_STANDARD_VIEW (user_data);
-+ GtkWidget *view = GTK_BIN (standard_view)->child;
-+
++ GtkWidget *view = gtk_bin_get_child (GTK_BIN (standard_view));
++
+ standard_view->priv->drag_scroll_timer_id = 0;
+
+#ifdef HAVE_GSTREAMER
@@ -432,9 +443,9 @@ diff -ru Thunar-1.6.10.orig/thunar/thunar-standard-view.c Thunar-1.6.10/thunar/t
}
-diff -ru Thunar-1.6.10.orig/thunar/thunar-standard-view.h Thunar-1.6.10/thunar/thunar-standard-view.h
---- Thunar-1.6.10.orig/thunar/thunar-standard-view.h 2016-12-05 04:11:30.000000000 -0500
-+++ Thunar-1.6.10/thunar/thunar-standard-view.h 2016-12-05 04:11:39.000000000 -0500
+diff -rudp thunar-4.16.10.orig/thunar/thunar-standard-view.h thunar-4.16.10/thunar/thunar-standard-view.h
+--- thunar-4.16.10.orig/thunar/thunar-standard-view.h 2021-10-16 13:53:35.000000000 -0400
++++ thunar-4.16.10/thunar/thunar-standard-view.h 2021-10-16 19:23:03.000000000 -0400
@@ -27,6 +27,10 @@
#include <thunar/thunar-preferences.h>
#include <thunar/thunar-view.h>
@@ -446,26 +457,25 @@ diff -ru Thunar-1.6.10.orig/thunar/thunar-standard-view.h Thunar-1.6.10/thunar/t
G_BEGIN_DECLS;
typedef struct _ThunarStandardViewPrivate ThunarStandardViewPrivate;
-@@ -139,6 +143,11 @@
- ExoBinding *loading_binding;
+@@ -145,6 +149,11 @@ struct _ThunarStandardView
gboolean loading;
+ GtkAccelGroup *accel_group;
+#ifdef HAVE_GSTREAMER
-+ gboolean playing;
-+ GstElement *play;
++ gboolean playing;
++ GstElement *play;
+#endif
+
ThunarStandardViewPrivate *priv;
};
-@@ -159,6 +168,10 @@
-
- ThunarHistory *thunar_standard_view_copy_history (ThunarStandardView *standard_view);
-
-+gboolean thunar_standard_view_try_preview (GtkWidget *real_view,
-+ GdkEventMotion *event,
-+ ThunarStandardView *standard_view);
-+
+@@ -167,6 +176,9 @@ void thunar_standard_view_appe
+ void _thunar_standard_view_open_on_middle_click (ThunarStandardView *standard_view,
+ GtkTreePath *tree_path,
+ guint event_state);
++gboolean thunar_standard_view_try_preview (GtkWidget *real_view,
++ GdkEventMotion *event,
++ ThunarStandardView *standard_view);
G_END_DECLS;
#endif /* !__THUNAR_STANDARD_VIEW_H__ */
diff --git a/split_pane.patch b/split_pane.patch
index 5a290a60ab77..48ec09e5d23a 100644
--- a/split_pane.patch
+++ b/split_pane.patch
@@ -1,8 +1,8 @@
-diff -rupN Thunar-1.6.7/thunar/thunar-standard-view.c Thunar-1.6.7-splitview/thunar/thunar-standard-view.c
---- Thunar-1.6.7/thunar/thunar-standard-view.c 2015-04-18 16:25:18.000000000 +0200
-+++ Thunar-1.6.7-splitview/thunar/thunar-standard-view.c 2015-04-24 02:08:46.234849486 +0200
-@@ -4262,8 +4262,8 @@ thunar_standard_view_queue_popup (Thunar
- standard_view, thunar_standard_view_drag_timer_destroy);
+diff -rudp thunar-4.16.10.orig/thunar/thunar-standard-view.c thunar-4.16.10/thunar/thunar-standard-view.c
+--- thunar-4.16.10.orig/thunar/thunar-standard-view.c 2021-10-16 13:53:35.000000000 -0400
++++ thunar-4.16.10/thunar/thunar-standard-view.c 2021-10-16 14:55:34.000000000 -0400
+@@ -3594,8 +3594,8 @@ thunar_standard_view_queue_popup (Thunar
+ standard_view->priv->drag_timer_event = gtk_get_current_event ();
/* register the motion notify and the button release events on the real view */
- g_signal_connect (G_OBJECT (view), "button-release-event", G_CALLBACK (thunar_standard_view_button_release_event), standard_view);
@@ -12,10 +12,10 @@ diff -rupN Thunar-1.6.7/thunar/thunar-standard-view.c Thunar-1.6.7-splitview/thu
}
}
-diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thunar-window.c
---- Thunar-1.6.7/thunar/thunar-window.c 2015-04-18 16:25:18.000000000 +0200
-+++ Thunar-1.6.7-splitview/thunar/thunar-window.c 2015-04-24 02:28:18.421547235 +0200
-@@ -81,6 +81,7 @@ enum
+diff -rudp thunar-4.16.10.orig/thunar/thunar-window.c thunar-4.16.10/thunar/thunar-window.c
+--- thunar-4.16.10.orig/thunar/thunar-window.c 2021-10-16 13:53:35.000000000 -0400
++++ thunar-4.16.10/thunar/thunar-window.c 2021-10-16 15:10:34.000000000 -0400
+@@ -76,6 +76,7 @@ enum
enum
{
BACK,
@@ -23,33 +23,33 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu
RELOAD,
TOGGLE_SIDEPANE,
TOGGLE_MENUBAR,
-@@ -104,6 +105,7 @@ static void thunar_window_set_proper
+@@ -111,6 +112,7 @@ static void thunar_window_set_prope
+ guint prop_id,
const GValue *value,
GParamSpec *pspec);
- static gboolean thunar_window_back (ThunarWindow *window);
-+static gboolean thunar_window_pane_window (ThunarWindow *window);
- static gboolean thunar_window_reload (ThunarWindow *window,
++static gboolean thunar_window_pane_window (ThunarWindow *window);
+ static gboolean thunar_window_reload (ThunarWindow *window,
gboolean reload_info);
- static gboolean thunar_window_toggle_sidepane (ThunarWindow *window);
-@@ -249,6 +251,9 @@ static gboolean thunar_window_save_geome
- static void thunar_window_save_geometry_timer_destroy (gpointer user_data);
- static void thunar_window_set_zoom_level (ThunarWindow *window,
+ static gboolean thunar_window_toggle_sidepane (ThunarWindow *window);
+@@ -229,6 +231,9 @@ static gboolean thunar_window_save_geom
+ static void thunar_window_save_geometry_timer_destroy(gpointer user_data);
+ static void thunar_window_set_zoom_level (ThunarWindow *window,
ThunarZoomLevel zoom_level);
-+static gboolean thunar_window_notebook_select (GtkWidget *notebook,
-+ GdkEvent *event,
-+ ThunarWindow *window);
-
-
-
-@@ -258,6 +263,7 @@ struct _ThunarWindowClass
++static gboolean thunar_window_notebook_select (GtkWidget *notebook,
++ GdkEvent *event,
++ ThunarWindow *window);
+ static void thunar_window_update_window_icon (ThunarWindow *window);
+ static void thunar_window_create_menu (ThunarWindow *window,
+ ThunarWindowAction action,
+@@ -278,6 +283,7 @@ struct _ThunarWindowClass
+ GtkWindowClass __parent__;
/* internal action signals */
- gboolean (*back) (ThunarWindow *window);
+ gboolean (*pane_window) (ThunarWindow *window);
gboolean (*reload) (ThunarWindow *window,
gboolean reload_info);
- gboolean (*toggle_sidepane) (ThunarWindow *window);
-@@ -311,9 +317,12 @@ struct _ThunarWindow
+ gboolean (*zoom_in) (ThunarWindow *window);
+@@ -312,9 +318,12 @@ struct _ThunarWindow
GtkWidget *menubar;
GtkWidget *spinner;
GtkWidget *paned;
@@ -62,16 +62,24 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu
GtkWidget *view;
GtkWidget *statusbar;
-@@ -420,6 +429,7 @@ thunar_window_class_init (ThunarWindowCl
+@@ -395,6 +404,7 @@ static XfceGtkActionEntry thunar_window_
+ { THUNAR_WINDOW_ACTION_VIEW_AS_ICONS, "<Actions>/ThunarWindow/view-as-icons", "<Primary>1", XFCE_GTK_RADIO_MENU_ITEM, N_ ("_Icon View"), N_ ("Display folder content in an icon view"), NULL, G_CALLBACK (thunar_window_action_icon_view), },
+ { THUNAR_WINDOW_ACTION_VIEW_AS_DETAILED_LIST, "<Actions>/ThunarWindow/view-as-detailed-list", "<Primary>2", XFCE_GTK_RADIO_MENU_ITEM, N_ ("_List View"), N_ ("Display folder content in a detailed list view"), NULL, G_CALLBACK (thunar_window_action_detailed_view), },
+ { THUNAR_WINDOW_ACTION_VIEW_AS_COMPACT_LIST, "<Actions>/ThunarWindow/view-as-compact-list", "<Primary>3", XFCE_GTK_RADIO_MENU_ITEM, N_ ("_Compact View"), N_ ("Display folder content in a compact list view"), NULL, G_CALLBACK (thunar_window_action_compact_view), },
++ { THUNAR_WINDOW_ACTION_PANE_WINDOW, "<Actions>/ThunarWindow/pane-window", "F3", XFCE_GTK_RADIO_MENU_ITEM, NULL, NULL, NULL, G_CALLBACK (thunar_window_pane_window), },
+
+ { THUNAR_WINDOW_ACTION_GO_MENU, "<Actions>/ThunarWindow/go-menu", "", XFCE_GTK_MENU_ITEM, N_ ("_Go"), NULL, NULL, NULL },
+ { THUNAR_WINDOW_ACTION_OPEN_FILE_SYSTEM, "<Actions>/ThunarWindow/open-file-system", "", XFCE_GTK_IMAGE_MENU_ITEM, N_ ("File System"), N_ ("Browse the file system"), "drive-harddisk", G_CALLBACK (thunar_window_action_open_file_system), },
+@@ -453,6 +463,7 @@ thunar_window_class_init (ThunarWindowCl
gtkwidget_class->configure_event = thunar_window_configure_event;
- klass->back = thunar_window_back;
-+ klass->pane_window = thunar_window_pane_window;
klass->reload = thunar_window_reload;
- klass->toggle_sidepane = thunar_window_toggle_sidepane;
- klass->toggle_menubar = thunar_window_toggle_menubar;
-@@ -503,6 +513,23 @@ thunar_window_class_init (ThunarWindowCl
- G_TYPE_BOOLEAN, 0);
++ klass->pane_window = thunar_window_pane_window;
+ klass->zoom_in = thunar_window_zoom_in;
+ klass->zoom_out = thunar_window_zoom_out;
+ klass->zoom_reset = thunar_window_zoom_reset;
+@@ -503,6 +514,23 @@ thunar_window_class_init (ThunarWindowCl
+ EXO_PARAM_READWRITE));
/**
+ * ThunarWindow::pane-window:
@@ -90,35 +98,29 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu
+ _thunar_marshal_BOOLEAN__VOID,
+ G_TYPE_BOOLEAN, 0);
+
-+ /**
++/**
* ThunarWindow::reload:
* @window : a #ThunarWindow instance.
*
-@@ -623,6 +650,7 @@ thunar_window_class_init (ThunarWindowCl
- /* setup the key bindings for the windows */
- binding_set = gtk_binding_set_by_class (klass);
- gtk_binding_entry_add_signal (binding_set, GDK_BackSpace, 0, "back", 0);
-+ gtk_binding_entry_add_signal (binding_set, GDK_F3, 0, "pane-window", 0);
- gtk_binding_entry_add_signal (binding_set, GDK_F5, 0, "reload", 1, G_TYPE_BOOLEAN, TRUE);
- gtk_binding_entry_add_signal (binding_set, GDK_F9, 0, "toggle-sidepane", 0);
- gtk_binding_entry_add_signal (binding_set, GDK_F10, 0, "toggle-menubar", 0);
-@@ -861,31 +889,44 @@ thunar_window_init (ThunarWindow *window
+@@ -757,25 +785,35 @@ thunar_window_init (ThunarWindow *window
g_signal_connect_swapped (window->paned, "button-release-event", G_CALLBACK (thunar_window_save_paned), window);
- window->view_box = gtk_table_new (3, 1, FALSE);
+ window->view_box = gtk_grid_new ();
- gtk_paned_pack2 (GTK_PANED (window->paned), window->view_box, TRUE, FALSE);
+ gtk_paned_add2 (GTK_PANED (window->paned), window->view_box);
gtk_widget_show (window->view_box);
-+ /* Create panes when the notebook will be */
-+ window->panes = gtk_hpaned_new ();
++ /* Create panes where the notebook will be */
++ window->panes = gtk_hpaned_new (); gtk_widget_set_hexpand (window->panes, TRUE); gtk_widget_set_vexpand (window->panes, TRUE);
+ gtk_widget_add_events (window->panes, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_BUTTON_PRESS_MASK);
-+ gtk_table_attach (GTK_TABLE (window->view_box), window->panes, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
++ gtk_grid_attach (GTK_GRID (window->view_box), window->panes, 0, 1, 1, 1);
+ gtk_widget_show (window->panes);
+
/* tabs */
- window->notebook = gtk_notebook_new ();
-- gtk_table_attach (GTK_TABLE (window->view_box), window->notebook, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
+- gtk_widget_set_hexpand (window->notebook, TRUE);
+- gtk_widget_set_vexpand (window->notebook, TRUE);
+- gtk_grid_attach (GTK_GRID (window->view_box), window->notebook, 0, 1, 1, 1);
- g_signal_connect (G_OBJECT (window->notebook), "switch-page", G_CALLBACK (thunar_window_notebook_switch_page), window);
- g_signal_connect (G_OBJECT (window->notebook), "page-added", G_CALLBACK (thunar_window_notebook_page_added), window);
- g_signal_connect (G_OBJECT (window->notebook), "page-removed", G_CALLBACK (thunar_window_notebook_page_removed), window);
@@ -126,12 +128,11 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu
- g_signal_connect (G_OBJECT (window->notebook), "popup-menu", G_CALLBACK (thunar_window_notebook_popup_menu), window);
- g_signal_connect (G_OBJECT (window->notebook), "create-window", G_CALLBACK (thunar_window_notebook_create_window), window);
- gtk_notebook_set_show_border (GTK_NOTEBOOK (window->notebook), FALSE);
-- gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK (window->notebook), TRUE);
- gtk_notebook_set_scrollable (GTK_NOTEBOOK (window->notebook), TRUE);
- gtk_container_set_border_width (GTK_CONTAINER (window->notebook), 0);
- gtk_notebook_set_group_name (GTK_NOTEBOOK (window->notebook), "thunar-tabs");
- gtk_widget_show (window->notebook);
-+ // notebook1
++ /* notebook1 */
+ window->notebook1 = gtk_notebook_new ();
+ gtk_paned_pack1 (GTK_PANED (window->panes), window->notebook1, TRUE, FALSE);
+ g_signal_connect (G_OBJECT (window->notebook1), "switch-page", G_CALLBACK (thunar_window_notebook_switch_page), window);
@@ -141,37 +142,27 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu
+ g_signal_connect (G_OBJECT (window->notebook1), "popup-menu", G_CALLBACK (thunar_window_notebook_popup_menu), window);
+ g_signal_connect (G_OBJECT (window->notebook1), "create-window", G_CALLBACK (thunar_window_notebook_create_window), window);
+ gtk_notebook_set_show_border (GTK_NOTEBOOK (window->notebook1), FALSE);
-+ gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK (window->notebook1), TRUE);
++ //gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK (window->notebook1), TRUE);
+ gtk_notebook_set_scrollable (GTK_NOTEBOOK (window->notebook1), TRUE);
+ gtk_container_set_border_width (GTK_CONTAINER (window->notebook1), 0);
+ gtk_notebook_set_group_name (GTK_NOTEBOOK (window->notebook1), "thunar-tabs");
+ gtk_widget_show (window->notebook1);
-
- /* drop the notebook borders */
- style = gtk_rc_style_new ();
- style->xthickness = style->ythickness = 0;
-- gtk_widget_modify_style (window->notebook, style);
-+ gtk_widget_modify_style (window->notebook1, style);
- g_object_unref (G_OBJECT (style));
-
-+ // notebook2
-+ window->notebook2 = NULL;
+
-+ /* The notebook selected and actived */
++ /* notebook2 */
++ window->notebook2 = NULL;
+ window->notebook = window->notebook1;
-+
- /* determine the selected location selector */
- if (exo_str_is_equal (last_location_bar, g_type_name (THUNAR_TYPE_LOCATION_BUTTONS)))
- type = THUNAR_TYPE_LOCATION_BUTTONS;
-@@ -1392,6 +1433,130 @@ thunar_window_binding_create (ThunarWind
+
+ /* allocate the new location bar widget */
+ window->location_bar = thunar_location_bar_new ();
+@@ -1632,6 +1670,122 @@ thunar_window_binding_create (ThunarWind
+static gboolean
+thunar_window_pane_window (ThunarWindow *window)
+{
++ GType view_type;
+ ThunarFile *directory;
-+ GtkRcStyle *style;
+
+ _thunar_return_val_if_fail (THUNAR_IS_WINDOW (window), FALSE);
+ _thunar_return_val_if_fail (window->view_type != G_TYPE_NONE, FALSE);
@@ -181,16 +172,16 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu
+ {
+ /* notebook1 is the selected notebook so it destroys notebook2 */
+ if (window->notebook == window->notebook1)
-+ {
-+ gtk_widget_destroy (window->notebook2);
-+ window->notebook2 = NULL;
-+ }
++ {
++ gtk_widget_destroy (window->notebook2);
++ window->notebook2 = NULL;
++ }
+ /* notebook2 is the selected notebook so it destroys notebook1 */
+ else
-+ {
-+ gtk_widget_destroy (window->notebook1);
-+ window->notebook1 = NULL;
-+ }
++ {
++ gtk_widget_destroy (window->notebook1);
++ window->notebook1 = NULL;
++ }
+ }
+ /* notebook1 is null so it crates it */
+ else if (window->notebook1 == NULL)
@@ -205,22 +196,18 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu
+ g_signal_connect (G_OBJECT (window->notebook1), "popup-menu", G_CALLBACK (thunar_window_notebook_popup_menu), window);
+ g_signal_connect (G_OBJECT (window->notebook1), "create-window", G_CALLBACK (thunar_window_notebook_create_window), window);
+ gtk_notebook_set_show_border (GTK_NOTEBOOK (window->notebook1), FALSE);
-+ gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK (window->notebook1), TRUE);
++ //gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK (window->notebook1), TRUE);
+ gtk_notebook_set_scrollable (GTK_NOTEBOOK (window->notebook1), TRUE);
+ gtk_container_set_border_width (GTK_CONTAINER (window->notebook1), 0);
+ gtk_notebook_set_group_name (GTK_NOTEBOOK (window->notebook1), "thunar-tabs");
+ gtk_widget_show (window->notebook1);
+
-+ /* drop the notebook borders */
-+ style = gtk_rc_style_new ();
-+ style->xthickness = style->ythickness = 0;
-+ gtk_widget_modify_style (window->notebook1, style);
-+ g_object_unref (G_OBJECT (style));
-+
+ /* set notebook2 to selected notebook */
+ window->notebook = window->notebook1;
+ directory = thunar_window_get_current_directory (window);
-+ thunar_window_notebook_insert (window, directory);
++ view_type = thunar_window_view_type_for_directory (window, directory);
++
++ thunar_window_notebook_insert (window, directory, view_type, 0, NULL);
+ }
+ /* Otherwise notebook2 is null so it creates it */
+ else
@@ -235,22 +222,18 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu
+ g_signal_connect (G_OBJECT (window->notebook2), "popup-menu", G_CALLBACK (thunar_window_notebook_popup_menu), window);
+ g_signal_connect (G_OBJECT (window->notebook2), "create-window", G_CALLBACK (thunar_window_notebook_create_window), window);
+ gtk_notebook_set_show_border (GTK_NOTEBOOK (window->notebook2), FALSE);
-+ gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK (window->notebook2), TRUE);
++ //gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK (window->notebook2), TRUE);
+ gtk_notebook_set_scrollable (GTK_NOTEBOOK (window->notebook2), TRUE);
+ gtk_container_set_border_width (GTK_CONTAINER (window->notebook2), 0);
+ gtk_notebook_set_group_name (GTK_NOTEBOOK (window->notebook2), "thunar-tabs");
+ gtk_widget_show (window->notebook2);
+
-+ /* drop the notebook borders */
-+ style = gtk_rc_style_new ();
-+ style->xthickness = style->ythickness = 0;
-+ gtk_widget_modify_style (window->notebook2, style);
-+ g_object_unref (G_OBJECT (style));
-+
+ /* set notebook2 to selected notebook */
+ window->notebook = window->notebook2;
+ directory = thunar_window_get_current_directory (window);
-+ thunar_window_notebook_insert (window, directory);
++ view_type = thunar_window_view_type_for_directory (window, directory);
++
++ thunar_window_notebook_insert (window, directory, view_type, 0, NULL);
+ }
+
+ return TRUE;
@@ -282,7 +265,7 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu
+ window->notebook = selected_notebook;
+ current_page_n = gtk_notebook_get_current_page (GTK_NOTEBOOK (window->notebook));
+ current_page = gtk_notebook_get_nth_page (GTK_NOTEBOOK (window->notebook), current_page_n);
-+ thunar_component_set_ui_manager (THUNAR_COMPONENT (window->view), NULL);
++ //thunar_component_set_ui_manager (THUNAR_COMPONENT (window->view), NULL);
+ window->view = NULL;
+ thunar_window_notebook_switch_page (window->notebook, current_page, current_page_n, window);
+
@@ -294,18 +277,18 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu
static void
thunar_window_notebook_switch_page (GtkWidget *notebook,
GtkWidget *page,
-@@ -1405,7 +1570,8 @@ thunar_window_notebook_switch_page (GtkW
+@@ -1645,7 +1799,8 @@ thunar_window_notebook_switch_page (GtkW
_thunar_return_if_fail (THUNAR_IS_WINDOW (window));
_thunar_return_if_fail (GTK_IS_NOTEBOOK (notebook));
_thunar_return_if_fail (THUNAR_IS_VIEW (page));
- _thunar_return_if_fail (window->notebook == notebook);
+ _thunar_return_if_fail (window->notebook1 == notebook ||
-+ window->notebook2 == notebook);
++ window->notebook2 == notebook);
/* leave if nothing changed */
if (window->view == page)
-@@ -1553,7 +1719,7 @@ thunar_window_notebook_page_removed (Gtk
- thunar_component_set_ui_manager (THUNAR_COMPONENT (page), NULL);
+@@ -1812,7 +1967,7 @@ thunar_window_notebook_page_removed (Gtk
+ g_signal_handlers_disconnect_matched (page, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, window);
n_pages = gtk_notebook_get_n_pages (GTK_NOTEBOOK (notebook));
- if (n_pages == 0)
@@ -313,15 +296,26 @@ diff -rupN Thunar-1.6.7/thunar/thunar-window.c Thunar-1.6.7-splitview/thunar/thu
{
/* destroy the window */
gtk_widget_destroy (GTK_WIDGET (window));
-@@ -1784,6 +1950,11 @@ thunar_window_notebook_insert (ThunarWin
+@@ -2033,6 +2188,11 @@ thunar_window_notebook_insert (ThunarWin
gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (window->notebook), view, TRUE);
gtk_notebook_set_tab_detachable (GTK_NOTEBOOK (window->notebook), view, TRUE);
+ /* connect signal view */
+ gtk_widget_add_events (GTK_WIDGET (view), GDK_BUTTON_PRESS_MASK);
-+ g_signal_connect (G_OBJECT (GTK_BIN (view)->child), "button-press-event", G_CALLBACK (thunar_window_notebook_select), window);
-+ g_signal_connect (G_OBJECT (GTK_BIN (view)->child), "button-release-event", G_CALLBACK (thunar_window_notebook_select), window);
++ g_signal_connect (G_OBJECT (gtk_bin_get_child (GTK_BIN (view))), "button-press-event", G_CALLBACK (thunar_window_notebook_select), window);
++ g_signal_connect (G_OBJECT (gtk_bin_get_child (GTK_BIN (view))), "button-release-event", G_CALLBACK (thunar_window_notebook_select), window);
+
- /* take focus on the view */
- gtk_widget_grab_focus (view);
+ return view;
}
+
+diff -rudp thunar-4.16.10.orig/thunar/thunar-window.h thunar-4.16.10/thunar/thunar-window.h
+--- thunar-4.16.10.orig/thunar/thunar-window.h 2021-10-16 13:53:35.000000000 -0400
++++ thunar-4.16.10/thunar/thunar-window.h 2021-10-16 14:55:34.000000000 -0400
+@@ -74,6 +74,7 @@ typedef enum
+ THUNAR_WINDOW_ACTION_VIEW_AS_ICONS,
+ THUNAR_WINDOW_ACTION_VIEW_AS_DETAILED_LIST,
+ THUNAR_WINDOW_ACTION_VIEW_AS_COMPACT_LIST,
++ THUNAR_WINDOW_ACTION_PANE_WINDOW,
+ THUNAR_WINDOW_ACTION_GO_MENU,
+ THUNAR_WINDOW_ACTION_OPEN_PARENT,
+ THUNAR_WINDOW_ACTION_BACK,
diff --git a/uca_num_files.patch b/uca_num_files.patch
index 21497fbed6b4..362591c53c81 100644
--- a/uca_num_files.patch
+++ b/uca_num_files.patch
@@ -1,107 +1,57 @@
-diff -ru Thunar-1.6.15.orig/plugins/thunar-uca/thunar-uca-editor.c Thunar-1.6.15/plugins/thunar-uca/thunar-uca-editor.c
---- Thunar-1.6.15.orig/plugins/thunar-uca/thunar-uca-editor.c 2018-04-27 18:34:10.000000000 -0400
-+++ Thunar-1.6.15/plugins/thunar-uca/thunar-uca-editor.c 2018-04-27 18:34:19.000000000 -0400
-@@ -63,6 +63,8 @@
+diff -rudp thunar-4.16.10.orig/plugins/thunar-uca/thunar-uca-editor.c thunar-4.16.10/plugins/thunar-uca/thunar-uca-editor.c
+--- thunar-4.16.10.orig/plugins/thunar-uca/thunar-uca-editor.c 2021-10-16 13:53:35.000000000 -0400
++++ thunar-4.16.10/plugins/thunar-uca/thunar-uca-editor.c 2021-10-16 16:52:44.000000000 -0400
+@@ -69,12 +69,16 @@ struct _ThunarUcaEditor
+ GtkWidget *shortcut_button;
GtkWidget *sn_button;
- GtkWidget *parameter_entry;
GtkWidget *patterns_entry;
+ GtkWidget *upper_button;
+ GtkWidget *lower_button;
GtkWidget *directories_button;
GtkWidget *audio_files_button;
GtkWidget *image_files_button;
-@@ -102,6 +104,8 @@
- GtkWidget *table;
- GtkWidget *hbox;
- GtkWidget *vbox;
-+ GtkWidget *spin;
-+ GtkAdjustment *adj;
+ GtkWidget *text_files_button;
+ GtkWidget *video_files_button;
+ GtkWidget *other_files_button;
++ GtkAdjustment *upper_adjustment;
++ GtkAdjustment *lower_adjustment;
- /* configure the dialog properties */
- gtk_dialog_add_button (GTK_DIALOG (uca_editor), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL);
-@@ -381,6 +385,25 @@
- gtk_label_set_mnemonic_widget (GTK_LABEL (label), uca_editor->patterns_entry);
- gtk_widget_show (uca_editor->patterns_entry);
-
-+ /* widgets for setting the upper and lower bounds */
-+ label = gtk_label_new ("Minimum number of files:");
-+ gtk_widget_show (label);
-+ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
-+ adj = (GtkAdjustment *) gtk_adjustment_new (-1.0, -1.0, 9999.0, 1.0, 1.0, 0.0);
-+ spin = gtk_spin_button_new (adj, 1.0, 0);
-+ gtk_widget_show (spin);
-+ gtk_table_attach (GTK_TABLE (table), spin, 1, 2, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
-+ uca_editor->lower_button = spin;
-+
-+ label = gtk_label_new ("Maximum number of files:");
-+ gtk_widget_show (label);
-+ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
-+ adj = (GtkAdjustment *) gtk_adjustment_new (-1.0, -1.0, 9999.0, 1.0, 1.0, 0.0);
-+ spin = gtk_spin_button_new (adj, 1.0, 0);
-+ gtk_widget_show (spin);
-+ gtk_table_attach (GTK_TABLE (table), spin, 1, 2, 2, 3, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
-+ uca_editor->upper_button = spin;
-+
- /* set Atk label relation for the entry */
- object = gtk_widget_get_accessible (uca_editor->patterns_entry);
- relations = atk_object_ref_relation_set (gtk_widget_get_accessible (label));
-@@ -389,15 +412,15 @@
- g_object_unref (G_OBJECT (relation));
-
- align = g_object_new (GTK_TYPE_ALIGNMENT, "height-request", 0, NULL);
-- gtk_table_attach (GTK_TABLE (table), align, 0, 2, 1, 2, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
-+ gtk_table_attach (GTK_TABLE (table), align, 0, 2, 3, 4, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
- gtk_widget_show (align);
-
- label = g_object_new (GTK_TYPE_LABEL, "label", _("Appears if selection contains:"), "xalign", 0.0f, NULL);
-- gtk_table_attach (GTK_TABLE (table), label, 0, 2, 2, 3, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
-+ gtk_table_attach (GTK_TABLE (table), label, 0, 2, 4, 5, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
- gtk_widget_show (label);
-
- align = g_object_new (GTK_TYPE_ALIGNMENT, "left-padding", 18, NULL);
-- gtk_table_attach (GTK_TABLE (table), align, 0, 2, 3, 4, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
-+ gtk_table_attach (GTK_TABLE (table), align, 0, 2, 5, 6, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
- gtk_widget_show (align);
-
- itable = gtk_table_new (3, 2, TRUE);
-@@ -431,11 +454,11 @@
- gtk_widget_show (uca_editor->other_files_button);
-
- align = g_object_new (GTK_TYPE_ALIGNMENT, "height-request", 12, NULL);
-- gtk_table_attach (GTK_TABLE (table), align, 0, 2, 4, 5, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
-+ gtk_table_attach (GTK_TABLE (table), align, 0, 2, 6, 7, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
- gtk_widget_show (align);
-
- hbox = gtk_hbox_new (FALSE, 6);
-- gtk_table_attach (GTK_TABLE (table), hbox, 0, 2, 5, 6, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
-+ gtk_table_attach (GTK_TABLE (table), hbox, 0, 2, 7, 8, GTK_EXPAND | GTK_FILL, GTK_FILL, 0, 0);
- gtk_widget_show (hbox);
-
- image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DND);
-@@ -746,6 +769,8 @@
- {
+ gchar *accel_path;
+ GdkModifierType accel_mods;
+@@ -116,6 +120,8 @@ thunar_uca_editor_class_init (ThunarUcaE
+ gtk_widget_class_bind_template_child (widget_class, ThunarUcaEditor, shortcut_button);
+ gtk_widget_class_bind_template_child (widget_class, ThunarUcaEditor, sn_button);
+ gtk_widget_class_bind_template_child (widget_class, ThunarUcaEditor, patterns_entry);
++ gtk_widget_class_bind_template_child (widget_class, ThunarUcaEditor, upper_button);
++ gtk_widget_class_bind_template_child (widget_class, ThunarUcaEditor, lower_button);
+ gtk_widget_class_bind_template_child (widget_class, ThunarUcaEditor, directories_button);
+ gtk_widget_class_bind_template_child (widget_class, ThunarUcaEditor, audio_files_button);
+ gtk_widget_class_bind_template_child (widget_class, ThunarUcaEditor, image_files_button);
+@@ -570,6 +576,8 @@ thunar_uca_editor_load (ThunarUcaEditor
ThunarUcaTypes types;
gchar *description;
-+ gchar *upper;
-+ gchar *lower;
gchar *patterns;
++ gchar *upper;
++ gchar *lower;
gchar *command;
gchar *icon_name;
-@@ -759,6 +784,8 @@
+ gchar *name;
+@@ -585,6 +593,8 @@ thunar_uca_editor_load (ThunarUcaEditor
/* determine the current values from the model */
gtk_tree_model_get (GTK_TREE_MODEL (uca_model), iter,
THUNAR_UCA_MODEL_COLUMN_DESCRIPTION, &description,
-+ THUNAR_UCA_MODEL_COLUMN_UPPER, &upper,
-+ THUNAR_UCA_MODEL_COLUMN_LOWER, &lower,
++ THUNAR_UCA_MODEL_COLUMN_UPPER, &upper,
++ THUNAR_UCA_MODEL_COLUMN_LOWER, &lower,
THUNAR_UCA_MODEL_COLUMN_PATTERNS, &patterns,
THUNAR_UCA_MODEL_COLUMN_COMMAND, &command,
THUNAR_UCA_MODEL_COLUMN_TYPES, &types,
-@@ -778,10 +805,14 @@
+@@ -614,11 +624,15 @@ thunar_uca_editor_load (ThunarUcaEditor
gtk_entry_set_text (GTK_ENTRY (uca_editor->patterns_entry), (patterns != NULL) ? patterns : "");
gtk_entry_set_text (GTK_ENTRY (uca_editor->command_entry), (command != NULL) ? command : "");
gtk_entry_set_text (GTK_ENTRY (uca_editor->name_entry), (name != NULL) ? name : "");
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (uca_editor->upper_button), (upper != NULL) ? g_strtod (upper, NULL) : -1.0);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (uca_editor->lower_button), (lower != NULL) ? g_strtod (lower, NULL) : -1.0);
+ gtk_button_set_label (GTK_BUTTON (uca_editor->shortcut_button), (accel_label != NULL) ? accel_label : _("None"));
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (uca_editor->sn_button), startup_notify);
/* cleanup */
@@ -111,13 +61,14 @@ diff -ru Thunar-1.6.15.orig/plugins/thunar-uca/thunar-uca-editor.c Thunar-1.6.15
g_free (patterns);
g_free (command);
g_free (icon_name);
-@@ -804,10 +835,16 @@
- ThunarUcaModel *uca_model,
+@@ -644,12 +658,17 @@ thunar_uca_editor_save (ThunarUcaEditor
GtkTreeIter *iter)
{
-+ gchar *upper_string;
-+ gchar *lower_string;
-+
+ gchar *unique_id;
++ gchar *upper_string;
++ gchar *lower_string;
+ GtkAccelKey key;
+
g_return_if_fail (THUNAR_UCA_IS_EDITOR (uca_editor));
g_return_if_fail (THUNAR_UCA_IS_MODEL (uca_model));
g_return_if_fail (iter != NULL);
@@ -125,22 +76,151 @@ diff -ru Thunar-1.6.15.orig/plugins/thunar-uca/thunar-uca-editor.c Thunar-1.6.15
+ upper_string = g_strdup_printf ("%d", gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (uca_editor->upper_button)));
+ lower_string = g_strdup_printf ("%d", gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (uca_editor->lower_button)));
+
- thunar_uca_model_update (uca_model, iter,
- gtk_entry_get_text (GTK_ENTRY (uca_editor->name_entry)),
- NULL, /* don't touch the unique id */
-@@ -816,6 +853,8 @@
+ gtk_tree_model_get (GTK_TREE_MODEL (uca_model), iter,
+ THUNAR_UCA_MODEL_COLUMN_UNIQUE_ID, &unique_id,
+ -1);
+@@ -666,6 +685,8 @@ thunar_uca_editor_save (ThunarUcaEditor
gtk_entry_get_text (GTK_ENTRY (uca_editor->command_entry)),
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (uca_editor->sn_button)),
gtk_entry_get_text (GTK_ENTRY (uca_editor->patterns_entry)),
-+ upper_string,
-+ lower_string,
- thunar_uca_editor_get_types (uca_editor));
- }
-
-diff -ru Thunar-1.6.15.orig/plugins/thunar-uca/thunar-uca-model.c Thunar-1.6.15/plugins/thunar-uca/thunar-uca-model.c
---- Thunar-1.6.15.orig/plugins/thunar-uca/thunar-uca-model.c 2018-04-27 18:34:10.000000000 -0400
-+++ Thunar-1.6.15/plugins/thunar-uca/thunar-uca-model.c 2018-04-27 18:35:36.000000000 -0400
-@@ -79,6 +79,8 @@
++ upper_string,
++ lower_string,
+ thunar_uca_editor_get_types (uca_editor),
+ uca_editor->accel_key,
+ uca_editor->accel_mods);
+diff -rudp thunar-4.16.10.orig/plugins/thunar-uca/thunar-uca-editor.ui thunar-4.16.10/plugins/thunar-uca/thunar-uca-editor.ui
+--- thunar-4.16.10.orig/plugins/thunar-uca/thunar-uca-editor.ui 2021-10-16 13:53:35.000000000 -0400
++++ thunar-4.16.10/plugins/thunar-uca/thunar-uca-editor.ui 2021-10-16 16:58:17.000000000 -0400
+@@ -17,6 +17,20 @@
+ <child>
+ <placeholder/>
+ </child>
++ <object class="GtkAdjustment" id="upper_adjustment">
++ <property name="lower">-1</property>
++ <property name="upper">9999</property>
++ <property name="value">-1</property>
++ <property name="step_increment">1</property>
++ <property name="page_increment">1</property>
++ </object>
++ <object class="GtkAdjustment" id="lower_adjustment">
++ <property name="lower">-1</property>
++ <property name="upper">9999</property>
++ <property name="value">-1</property>
++ <property name="step_increment">1</property>
++ <property name="page_increment">1</property>
++ </object>
+ <child internal-child="vbox">
+ <object class="GtkBox" id="vbox">
+ <property name="can_focus">False</property>
+@@ -593,6 +607,68 @@
+ </packing>
+ </child>
+ <child>
++ <object class="GtkLabel" id="label98">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="no">_Upper (max) number of files:</property>
++ <property name="use_underline">True</property>
++ <property name="mnemonic_widget">upper_button</property>
++ <property name="xalign">0</property>
++ <accessibility>
++ <relation type="label-for" target="upper_button"/>
++ </accessibility>
++ </object>
++ <packing>
++ <property name="left_attach">0</property>
++ <property name="top_attach">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkSpinButton" id="upper_button">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="hexpand">True</property>
++ <property name="adjustment">upper_adjustment</property>
++ <property name="climb-rate">1.0</property>
++ <property name="digits">0</property>
++ </object>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="top_attach">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkLabel" id="label99">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="no">_Lower (min) number of files:</property>
++ <property name="use_underline">True</property>
++ <property name="mnemonic_widget">lower_button</property>
++ <property name="xalign">0</property>
++ <accessibility>
++ <relation type="label-for" target="lower_button"/>
++ </accessibility>
++ </object>
++ <packing>
++ <property name="left_attach">0</property>
++ <property name="top_attach">2</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkSpinButton" id="lower_button">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="hexpand">True</property>
++ <property name="adjustment">lower_adjustment</property>
++ <property name="climb-rate">1.0</property>
++ <property name="digits">0</property>
++ </object>
++ <packing>
++ <property name="left_attach">1</property>
++ <property name="top_attach">2</property>
++ </packing>
++ </child>
++ <child>
+ <object class="GtkLabel" id="label17">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+@@ -602,7 +678,7 @@
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+- <property name="top_attach">1</property>
++ <property name="top_attach">3</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+@@ -702,7 +778,7 @@
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+- <property name="top_attach">2</property>
++ <property name="top_attach">4</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+@@ -745,7 +821,7 @@
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+- <property name="top_attach">4</property>
++ <property name="top_attach">6</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+@@ -763,7 +839,7 @@
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+- <property name="top_attach">3</property>
++ <property name="top_attach">5</property>
+ <property name="width">2</property>
+ </packing>
+ </child>
+diff -rudp thunar-4.16.10.orig/plugins/thunar-uca/thunar-uca-model.c thunar-4.16.10/plugins/thunar-uca/thunar-uca-model.c
+--- thunar-4.16.10.orig/plugins/thunar-uca/thunar-uca-model.c 2021-10-16 13:53:35.000000000 -0400
++++ thunar-4.16.10/plugins/thunar-uca/thunar-uca-model.c 2021-10-16 16:52:24.000000000 -0400
+@@ -79,6 +79,8 @@ typedef enum
PARSER_COMMAND,
PARSER_STARTUP_NOTIFY,
PARSER_PATTERNS,
@@ -149,57 +229,53 @@ diff -ru Thunar-1.6.15.orig/plugins/thunar-uca/thunar-uca-model.c Thunar-1.6.15/
PARSER_DESCRIPTION,
PARSER_DIRECTORIES,
PARSER_AUDIO_FILES,
-@@ -169,6 +171,8 @@
+@@ -168,6 +170,8 @@ struct _ThunarUcaModelItem
gchar *command;
guint startup_notify : 1;
gchar **patterns;
-+ gchar *upper;
-+ gchar *lower;
++ gchar *upper;
++ gchar *lower;
ThunarUcaTypes types;
/* derived attributes */
-@@ -190,6 +194,8 @@
+@@ -189,6 +193,8 @@ typedef struct
GString *command;
GString *patterns;
GString *description;
-+ GString *upper;
-+ GString *lower;
++ GString *upper;
++ GString *lower;
gboolean startup_notify;
gboolean description_use;
guint description_match;
-@@ -343,7 +349,13 @@
-
+@@ -333,6 +339,12 @@ thunar_uca_model_get_column_type (GtkTre
case THUNAR_UCA_MODEL_COLUMN_PATTERNS:
return G_TYPE_STRING;
--
-+
+
+ case THUNAR_UCA_MODEL_COLUMN_UPPER:
+ return G_TYPE_STRING;
-+
++
+ case THUNAR_UCA_MODEL_COLUMN_LOWER:
+ return G_TYPE_STRING;
-+
++
case THUNAR_UCA_MODEL_COLUMN_TYPES:
return G_TYPE_UINT;
-@@ -452,7 +464,15 @@
- str = g_strjoinv (";", item->patterns);
+@@ -442,6 +454,14 @@ thunar_uca_model_get_value (GtkTreeModel
g_value_take_string (value, str);
break;
--
-+
+
+ case THUNAR_UCA_MODEL_COLUMN_UPPER:
+ g_value_set_static_string (value, item->upper);
+ break;
-+
++
+ case THUNAR_UCA_MODEL_COLUMN_LOWER:
+ g_value_set_static_string (value, item->lower);
+ break;
-+
++
case THUNAR_UCA_MODEL_COLUMN_TYPES:
g_value_set_uint (value, item->types);
break;
-@@ -585,6 +605,8 @@
+@@ -574,6 +594,8 @@ thunar_uca_model_load_from_file (ThunarU
parser.icon_name = g_string_new (NULL);
parser.command = g_string_new (NULL);
parser.patterns = g_string_new (NULL);
@@ -208,16 +284,16 @@ diff -ru Thunar-1.6.15.orig/plugins/thunar-uca/thunar-uca-model.c Thunar-1.6.15/
parser.description = g_string_new (NULL);
parser.startup_notify = FALSE;
parser.unique_id_generated = FALSE;
-@@ -598,6 +620,8 @@
- /* cleanup */
+@@ -588,6 +610,8 @@ thunar_uca_model_load_from_file (ThunarU
g_markup_parse_context_free (context);
g_string_free (parser.description, TRUE);
+ g_string_free (parser.patterns, TRUE);
+ g_string_free (parser.upper, TRUE);
+ g_string_free (parser.lower, TRUE);
- g_string_free (parser.patterns, TRUE);
g_string_free (parser.command, TRUE);
g_string_free (parser.icon_name, TRUE);
-@@ -622,6 +646,8 @@
+ g_string_free (parser.unique_id, TRUE);
+@@ -611,6 +635,8 @@ thunar_uca_model_item_reset (ThunarUcaMo
{
/* release the previous values... */
g_strfreev (item->patterns);
@@ -226,16 +302,16 @@ diff -ru Thunar-1.6.15.orig/plugins/thunar-uca/thunar-uca-model.c Thunar-1.6.15/
g_free (item->description);
g_free (item->command);
g_free (item->name);
-@@ -679,6 +705,8 @@
+@@ -668,6 +694,8 @@ start_element_handler (GMarkupParseConte
g_string_truncate (parser->unique_id, 0);
g_string_truncate (parser->command, 0);
g_string_truncate (parser->patterns, 0);
-+ g_string_truncate (parser->upper, 0);
-+ g_string_truncate (parser->lower, 0);
++ g_string_truncate (parser->upper, 0);
++ g_string_truncate (parser->lower, 0);
g_string_truncate (parser->description, 0);
xfce_stack_push (parser->stack, PARSER_ACTION);
}
-@@ -736,6 +764,16 @@
+@@ -725,6 +753,16 @@ start_element_handler (GMarkupParseConte
g_string_truncate (parser->patterns, 0);
xfce_stack_push (parser->stack, PARSER_PATTERNS);
}
@@ -252,52 +328,48 @@ diff -ru Thunar-1.6.15.orig/plugins/thunar-uca/thunar-uca-model.c Thunar-1.6.15/
else if (strcmp (element_name, "description") == 0)
{
for (n = 0; attribute_names[n] != NULL; ++n)
-@@ -850,6 +888,8 @@
+@@ -833,6 +871,8 @@ end_element_handler (GMarkupParseContext
parser->command->str,
parser->startup_notify,
parser->patterns->str,
-+ parser->upper->str,
-+ parser->lower->str,
- parser->types);
++ parser->upper->str,
++ parser->lower->str,
+ parser->types,
+ 0, 0);
- /* check if a new id should've been generated */
-@@ -884,7 +924,17 @@
- if (strcmp (element_name, "patterns") != 0)
+@@ -869,6 +909,16 @@ end_element_handler (GMarkupParseContext
goto unknown_element;
break;
--
-+
+
+ case PARSER_UPPER:
+ if (strcmp (element_name, "upper") != 0)
+ goto unknown_element;
+ break;
-+
++
+ case PARSER_LOWER:
+ if (strcmp (element_name, "lower") != 0)
+ goto unknown_element;
+ break;
-+
++
case PARSER_DESCRIPTION:
if (strcmp (element_name, "description") != 0)
goto unknown_element;
-@@ -970,7 +1020,15 @@
- case PARSER_PATTERNS:
+@@ -959,6 +1009,14 @@ text_handler (GMarkupParseContext *conte
g_string_append_len (parser->patterns, text, text_len);
break;
--
-+
+
+ case PARSER_UPPER:
+ g_string_append_len (parser->upper, text, text_len);
+ break;
-+
++
+ case PARSER_LOWER:
+ g_string_append_len (parser->lower, text, text_len);
+ break;
-+
++
case PARSER_DESCRIPTION:
if (parser->description_use)
g_string_append_len (parser->description, text, text_len);
-@@ -1099,6 +1157,7 @@
+@@ -1087,6 +1145,7 @@ thunar_uca_model_match (ThunarUcaModel *
GList *lp;
gint n_files;
gint i, m, n;
@@ -305,34 +377,33 @@ diff -ru Thunar-1.6.15.orig/plugins/thunar-uca/thunar-uca-model.c Thunar-1.6.15/
gchar *path_test;
g_return_val_if_fail (THUNAR_UCA_IS_MODEL (uca_model), NULL);
-@@ -1143,7 +1202,16 @@
+@@ -1131,7 +1190,15 @@ thunar_uca_model_match (ThunarUcaModel *
{
/* check if we can just ignore this item */
item = (ThunarUcaModelItem *) lp->data;
- if (!item->multiple_selection && n_files > 1)
-+ upper = g_strtod(item->upper, NULL);
-+ lower = g_strtod(item->lower, NULL);
-+
++ upper = g_strtod (item->upper, NULL);
++ lower = g_strtod (item->lower, NULL);
++
+ if (upper == -1)
+ upper = n_files;
-+
+ if (lower == -1)
+ lower = n_files;
-+
++
+ if (((!item->multiple_selection) && (n_files > 1)) || (n_files > upper) || (n_files < lower))
continue;
/* match the specified files */
-@@ -1319,6 +1387,8 @@
+@@ -1321,6 +1388,8 @@ thunar_uca_model_update (ThunarUcaModel
const gchar *command,
gboolean startup_notify,
const gchar *patterns,
-+ const gchar *upper,
-+ const gchar *lower,
- ThunarUcaTypes types)
- {
- ThunarUcaModelItem *item;
-@@ -1339,6 +1409,10 @@
++ const gchar *upper,
++ const gchar *lower,
+ ThunarUcaTypes types,
+ guint accel_key,
+ GdkModifierType accel_mods)
+@@ -1344,6 +1413,10 @@ thunar_uca_model_update (ThunarUcaModel
item->icon_name = g_strdup (icon);
if (G_LIKELY (command != NULL && *command != '\0'))
item->command = g_strdup (command);
@@ -343,27 +414,27 @@ diff -ru Thunar-1.6.15.orig/plugins/thunar-uca/thunar-uca-model.c Thunar-1.6.15/
if (G_LIKELY (description != NULL && *description != '\0'))
item->description = g_strdup (description);
item->types = types;
-@@ -1439,12 +1513,16 @@
+@@ -1452,12 +1525,16 @@ thunar_uca_model_save (ThunarUcaModel *u
"\t<unique-id>%s</unique-id>\n"
"\t<command>%s</command>\n"
"\t<description>%s</description>\n"
-+ "\t<upper>%s</upper>\n"
-+ "\t<lower>%s</lower>\n"
++ "\t<upper>%s</upper>\n"
++ "\t<lower>%s</lower>\n"
"\t<patterns>%s</patterns>\n",
(item->icon_name != NULL) ? item->icon_name : "",
(item->name != NULL) ? item->name : "",
(item->unique_id != NULL) ? item->unique_id : "",
(item->command != NULL) ? item->command : "",
(item->description != NULL) ? item->description : "",
-+ (item->upper != NULL) ? item->upper : "",
-+ (item->lower != NULL) ? item->lower : "",
++ (item->upper != NULL) ? item->upper : "",
++ (item->lower != NULL) ? item->lower : "",
patterns);
fprintf (fp, "%s", escaped);
g_free (patterns);
-diff -ru Thunar-1.6.15.orig/plugins/thunar-uca/thunar-uca-model.h Thunar-1.6.15/plugins/thunar-uca/thunar-uca-model.h
---- Thunar-1.6.15.orig/plugins/thunar-uca/thunar-uca-model.h 2018-04-27 18:34:10.000000000 -0400
-+++ Thunar-1.6.15/plugins/thunar-uca/thunar-uca-model.h 2018-04-27 18:34:19.000000000 -0400
-@@ -44,6 +44,8 @@
+diff -rudp thunar-4.16.10.orig/plugins/thunar-uca/thunar-uca-model.h thunar-4.16.10/plugins/thunar-uca/thunar-uca-model.h
+--- thunar-4.16.10.orig/plugins/thunar-uca/thunar-uca-model.h 2021-10-16 13:53:35.000000000 -0400
++++ thunar-4.16.10/plugins/thunar-uca/thunar-uca-model.h 2021-10-16 16:52:24.000000000 -0400
+@@ -44,6 +44,8 @@ typedef enum
THUNAR_UCA_MODEL_COLUMN_UNIQUE_ID,
THUNAR_UCA_MODEL_COLUMN_COMMAND,
THUNAR_UCA_MODEL_COLUMN_STARTUP_NOTIFY,
@@ -372,19 +443,19 @@ diff -ru Thunar-1.6.15.orig/plugins/thunar-uca/thunar-uca-model.h Thunar-1.6.15/
THUNAR_UCA_MODEL_COLUMN_PATTERNS,
THUNAR_UCA_MODEL_COLUMN_TYPES,
THUNAR_UCA_MODEL_COLUMN_STOCK_LABEL,
-@@ -96,6 +98,8 @@
+@@ -96,6 +98,8 @@ void thunar_uca_model_update
const gchar *command,
gboolean startup_notify,
const gchar *patterns,
-+ const gchar *upper,
-+ const gchar *lower,
- ThunarUcaTypes types);
-
- gboolean thunar_uca_model_save (ThunarUcaModel *uca_model,
-diff -ru Thunar-1.6.15.orig/plugins/thunar-uca/uca.xml.in Thunar-1.6.15/plugins/thunar-uca/uca.xml.in
---- Thunar-1.6.15.orig/plugins/thunar-uca/uca.xml.in 2018-04-27 18:34:10.000000000 -0400
-+++ Thunar-1.6.15/plugins/thunar-uca/uca.xml.in 2018-04-27 18:34:19.000000000 -0400
-@@ -38,6 +38,8 @@
++ const gchar *upper,
++ const gchar *lower,
+ ThunarUcaTypes types,
+ guint accel_key,
+ GdkModifierType accel_mods);
+diff -rudp thunar-4.16.10.orig/plugins/thunar-uca/uca.xml.in thunar-4.16.10/plugins/thunar-uca/uca.xml.in
+--- thunar-4.16.10.orig/plugins/thunar-uca/uca.xml.in 2021-10-16 13:53:35.000000000 -0400
++++ thunar-4.16.10/plugins/thunar-uca/uca.xml.in 2021-10-16 16:52:24.000000000 -0400
+@@ -38,11 +38,25 @@
<action>
<icon>utilities-terminal</icon>
<patterns>*</patterns>
@@ -393,10 +464,10 @@ diff -ru Thunar-1.6.15.orig/plugins/thunar-uca/uca.xml.in Thunar-1.6.15/plugins/
<_name>Open Terminal Here</_name>
<command>exo-open --working-directory %f --launch TerminalEmulator</command>
<_description>Example for a custom action</_description>
-@@ -45,4 +47,15 @@
+ <startup-notify/>
<directories/>
</action>
-
++
+ <action>
+ <icon>preferences-desktop-wallpaper</icon>
+ <patterns>*</patterns>
@@ -404,8 +475,9 @@ diff -ru Thunar-1.6.15.orig/plugins/thunar-uca/uca.xml.in Thunar-1.6.15/plugins/
+ <upper>1</upper>
+ <_name>Set as wallpaper</_name>
+ <command>xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path --create -t string -s \"%f\"</command>
-+ <_description>Implementing the entire wallpaper plugin with just a bit of XML</_description>
-+ <image-files/>
++ <_description>Implementing the entire wallpaper plugin with just a bit of XML</_description>
++ <startup-notify/>
++ <directories/>
+ </action>
-+
+
</actions>