diff options
author | Connor Behan | 2021-10-16 23:14:27 -0400 |
---|---|---|
committer | Connor Behan | 2021-10-16 23:14:27 -0400 |
commit | 983cd6281660c4be4c3f6c36650504cb95548c14 (patch) | |
tree | eef9c09f46756190df88ce0f22d1c08a8bc3c8cf | |
parent | ed72a289fb7220b07f0e70137a7417e61c199547 (diff) | |
download | aur-983cd6281660c4be4c3f6c36650504cb95548c14.tar.gz |
Update to 4.16.10-1
-rw-r--r-- | .SRCINFO | 24 | ||||
-rw-r--r-- | PKGBUILD | 40 | ||||
-rw-r--r-- | notrash.patch | 109 | ||||
-rw-r--r-- | preview.patch | 362 | ||||
-rw-r--r-- | split_pane.patch | 200 | ||||
-rw-r--r-- | uca_num_files.patch | 432 |
6 files changed, 605 insertions, 562 deletions
@@ -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 - @@ -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> |