[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