[packages/xfdesktop] - fix build with thunar 1.8

baggins baggins at pld-linux.org
Sun Jun 10 21:52:47 CEST 2018


commit 4ae9227a4c7e61d92b2b6a6b2cd5ec1bb6d6a145
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Sun Jun 10 19:52:29 2018 +0000

    - fix build with thunar 1.8

 thunarx-3.patch | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 xfdesktop.spec  |   7 ++-
 2 files changed, 136 insertions(+), 2 deletions(-)
---
diff --git a/xfdesktop.spec b/xfdesktop.spec
index a19484f..66f9b4f 100644
--- a/xfdesktop.spec
+++ b/xfdesktop.spec
@@ -8,7 +8,8 @@ Group:		X11/Applications
 Source0:	http://archive.xfce.org/src/xfce/xfdesktop/4.13/%{name}-%{version}.tar.bz2
 # Source0-md5:	9e7d04e79053cf9ec077f55425f234c6
 URL:		http://www.xfce.org/projects/xfdesktop
-BuildRequires:	Thunar-devel >= 1.6.6
+Patch0:		thunarx-3.patch
+BuildRequires:	Thunar-devel >= 1.8.0
 BuildRequires:	autoconf >= 2.60
 BuildRequires:	automake >= 1:1.8
 BuildRequires:	dbus-glib-devel >= 0.84
@@ -29,7 +30,7 @@ BuildRequires:	xfce4-dev-tools >= 4.12.0
 BuildRequires:	xfconf-devel >= 4.12.1
 BuildRequires:	xorg-lib-libSM-devel
 BuildRequires:	xorg-lib-libX11-devel
-Requires:	Thunar-libs >= 1.6.6
+Requires:	Thunar-libs >= 1.8.0
 Requires:	dbus-glib >= 0.84
 Requires:	exo >= 0.12.0
 Requires:	garcon >= 0.6.0
@@ -50,6 +51,8 @@ xfdesktop zawiera zarządcę pulpitu dla środowiska Xfce.
 
 %prep
 %setup -q
+%patch0 -p1
+
 
 %build
 %configure \
diff --git a/thunarx-3.patch b/thunarx-3.patch
new file mode 100644
index 0000000..e2bbd95
--- /dev/null
+++ b/thunarx-3.patch
@@ -0,0 +1,131 @@
+From 4c77522252500818869654832594a2d38c3dc291 Mon Sep 17 00:00:00 2001
+From: Andre Miranda <andreldm at xfce.org>
+Date: Fri, 3 Nov 2017 15:39:17 +0300
+Subject: Use the new Thunarx-3 API
+
+Signed-off-by: Eric Koegel <eric.koegel at gmail.com>
+---
+ src/xfdesktop-file-icon-manager.c | 80 ++++++++++++++++++++++++++++-----------
+ 1 file changed, 58 insertions(+), 22 deletions(-)
+
+diff --git a/src/xfdesktop-file-icon-manager.c b/src/xfdesktop-file-icon-manager.c
+index fa8cbe3..48045c1 100644
+--- a/src/xfdesktop-file-icon-manager.c
++++ b/src/xfdesktop-file-icon-manager.c
+@@ -1269,19 +1269,55 @@ xfdesktop_file_icon_menu_fill_template_menu(GtkWidget *menu,
+ }
+ 
+ #ifdef HAVE_THUNARX
++static void
++thunarx_action_callback (GtkAction *action,
++                         gpointer callback_data)
++{
++    thunarx_menu_item_activate (THUNARX_MENU_ITEM (callback_data));
++}
++
++
++
++static GtkWidget*
++xfdesktop_menu_create_menu_item_from_thunarx_menu_item (GObject *item)
++{
++    gchar *label, *icon_name;
++    GtkWidget *mi, *img;
++
++    g_return_val_if_fail (THUNARX_IS_MENU_ITEM (item), NULL);
++
++    g_object_get (G_OBJECT (item),
++                  "label", &label,
++                  "icon", &icon_name,
++                  NULL);
++
++    img = gtk_image_new_from_icon_name(icon_name, GTK_ICON_SIZE_MENU);
++    mi = xfdesktop_menu_create_menu_item_with_mnemonic (label, img);
++
++    g_signal_connect_data (mi, "activate",
++                           G_CALLBACK (thunarx_action_callback),
++                           g_object_ref (item),
++                           (GClosureNotify) g_object_unref, 0);
++
++    g_free (label);
++    g_free (icon_name);
++
++    return mi;
++}
++
++
++
+ static inline void
+-xfdesktop_menu_shell_append_action_list(GtkMenuShell *menu_shell,
+-                                        GList *actions)
++xfdesktop_menu_shell_append_thunarx_menu_item_list(GtkMenuShell *menu_shell,
++                                                   GList *items)
+ {
+     GList *l;
+-    GtkAction *action;
+     GtkWidget *mi;
+-    
+-    for(l = actions; l; l = l->next) {
+-        action = GTK_ACTION(l->data);
+-        mi = gtk_action_create_menu_item(action);
++
++    for(l = items; l; l = l->next) {
++        mi = xfdesktop_menu_create_menu_item_from_thunarx_menu_item (l->data);
+         gtk_widget_show(mi);
+-        gtk_menu_shell_append(menu_shell, mi);    
++        gtk_menu_shell_append(menu_shell, mi);
+     }
+ }
+ #endif
+@@ -1751,35 +1787,35 @@ xfdesktop_file_icon_manager_populate_context_menu(XfceDesktop *desktop,
+ 
+ #ifdef HAVE_THUNARX
+         if(!multi_sel_special && fmanager->priv->thunarx_menu_providers) {
+-            GList *menu_actions = NULL;
++            GList *menu_items = NULL;
+             ThunarxMenuProvider *provider;
+ 
+             if(selected->data == fmanager->priv->desktop_icon) {
+                 /* click on the desktop itself, only show folder actions */
+                 for(l = fmanager->priv->thunarx_menu_providers; l; l = l->next) {
+                     provider = THUNARX_MENU_PROVIDER(l->data);
+-                    menu_actions = g_list_concat(menu_actions,
+-                                                 thunarx_menu_provider_get_folder_actions(provider,
+-                                                                                          toplevel,
+-                                                                                          THUNARX_FILE_INFO(file_icon)));
++                    menu_items = g_list_concat(menu_items,
++                                                 thunarx_menu_provider_get_folder_menu_items(provider,
++                                                                                             toplevel,
++                                                                                             THUNARX_FILE_INFO(file_icon)));
+                 }
+             } else {
+                 /* thunar file specific actions (allows them to operate on folders
+                  * that are on the desktop as well) */
+                 for(l = fmanager->priv->thunarx_menu_providers; l; l = l->next) {
+                     provider = THUNARX_MENU_PROVIDER(l->data);
+-                    menu_actions = g_list_concat(menu_actions,
+-                                                 thunarx_menu_provider_get_file_actions(provider,
+-                                                                                        toplevel,
+-                                                                                        selected));
++                    menu_items = g_list_concat(menu_items,
++                                                 thunarx_menu_provider_get_file_menu_items(provider,
++                                                                                           toplevel,
++                                                                                           selected));
+                 }
+             }
+ 
+-            if(menu_actions) {
+-                xfdesktop_menu_shell_append_action_list(GTK_MENU_SHELL(menu),
+-                                                        menu_actions);
+-                g_list_foreach(menu_actions, (GFunc)g_object_unref, NULL);
+-                g_list_free(menu_actions);
++            if(menu_items) {
++                xfdesktop_menu_shell_append_thunarx_menu_item_list(GTK_MENU_SHELL(menu),
++                                                        menu_items);
++                g_list_foreach(menu_items, (GFunc)g_object_unref, NULL);
++                g_list_free(menu_items);
+ 
+                 mi = gtk_separator_menu_item_new();
+                 gtk_widget_show(mi);
+-- 
+cgit v1.1
+
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/xfdesktop.git/commitdiff/4ae9227a4c7e61d92b2b6a6b2cd5ec1bb6d6a145



More information about the pld-cvs-commit mailing list