summaryrefslogtreecommitdiff
path: root/extra/xfdesktop
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2011-08-21 23:14:35 +0000
committerroot <root@rshg054.dnsready.net>2011-08-21 23:14:35 +0000
commite9a5c646563c984f362db1777f8c6bc7da63a4ab (patch)
tree709694a1605c0b60dc9c0c57718e7fd661924646 /extra/xfdesktop
parent839141249778baa4dba0f0511c52b5eded3cd934 (diff)
Sun Aug 21 23:14:34 UTC 2011
Diffstat (limited to 'extra/xfdesktop')
-rw-r--r--extra/xfdesktop/PKGBUILD11
-rw-r--r--extra/xfdesktop/fix-desktop-drag-and-drop.patch57
2 files changed, 64 insertions, 4 deletions
diff --git a/extra/xfdesktop/PKGBUILD b/extra/xfdesktop/PKGBUILD
index 08901285f..b0a502474 100644
--- a/extra/xfdesktop/PKGBUILD
+++ b/extra/xfdesktop/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 125789 2011-05-29 16:59:08Z andyrtr $
+# $Id: PKGBUILD 135949 2011-08-20 21:30:39Z eric $
# Maintainer: AndyRTR <andyrtr@archlinux.org>
# Contributor: tobias <tobias funnychar archlinux.org>
pkgname=xfdesktop
pkgver=4.8.2
-pkgrel=2
+pkgrel=3
pkgdesc="A desktop manager for Xfce"
arch=('i686' 'x86_64')
license=('GPL2')
@@ -17,11 +17,14 @@ conflicts=('xfce4-menueditor')
replaces=('xfce4-menueditor')
options=('!libtool')
install=xfdesktop.install
-source=(http://archive.xfce.org/src/xfce/${pkgname}/4.8/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('ed25d59f478afda552d121e96657d16f')
+source=(http://archive.xfce.org/src/xfce/${pkgname}/4.8/${pkgname}-${pkgver}.tar.bz2
+ fix-desktop-drag-and-drop.patch)
+md5sums=('ed25d59f478afda552d121e96657d16f'
+ '86d464bcd8ffae9f048454f49603658a')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i ../fix-desktop-drag-and-drop.patch
./configure --prefix=/usr \
--sysconfdir=/etc \
--libexecdir=/usr/lib \
diff --git a/extra/xfdesktop/fix-desktop-drag-and-drop.patch b/extra/xfdesktop/fix-desktop-drag-and-drop.patch
new file mode 100644
index 000000000..8c0c4bcc8
--- /dev/null
+++ b/extra/xfdesktop/fix-desktop-drag-and-drop.patch
@@ -0,0 +1,57 @@
+diff --git a/src/xfdesktop-file-icon-manager.c b/src/xfdesktop-file-icon-manager.c
+index 2711646..d3ca2eb 100644
+--- a/src/xfdesktop-file-icon-manager.c
++++ b/src/xfdesktop-file-icon-manager.c
+@@ -2794,7 +2794,7 @@ xfdesktop_file_icon_manager_drag_data_received(XfdesktopIconViewManager *manager
+ GFile *tfile = NULL;
+ gboolean copy_only = TRUE, drop_ok = FALSE;
+ GList *file_list;
+-
++
+ if(info == TARGET_XDND_DIRECT_SAVE0) {
+ /* we don't suppose XdndDirectSave stage 3, result F, i.e., the app
+ * has to save the data itself given the filename we provided in
+@@ -2816,7 +2816,7 @@ xfdesktop_file_icon_manager_drag_data_received(XfdesktopIconViewManager *manager
+ /* data is "URL\nTITLE" */
+ GFile *source_file = NULL;
+ gchar *exo_desktop_item_edit = g_find_program_in_path("exo-desktop-item-edit");
+-
++
+ if(drop_icon) {
+ GFileInfo *finfo = xfdesktop_file_icon_peek_file_info(XFDESKTOP_FILE_ICON(drop_icon));
+ if(g_file_info_get_file_type(finfo) == G_FILE_TYPE_DIRECTORY)
+@@ -2911,8 +2911,15 @@ xfdesktop_file_icon_manager_drag_data_received(XfdesktopIconViewManager *manager
+ gchar *dest_basename = g_file_get_basename(l->data);
+
+ if(dest_basename && *dest_basename != '\0') {
+- GFile *dest_file = g_file_get_child(base_dest_file, dest_basename);
+- dest_file_list = g_list_prepend(dest_file_list, dest_file);
++ /* If we copy a file, we need to use the new absolute filename
++ * as the destination. If we move, we need to use the destination
++ * directory. */
++ if(copy_only) {
++ GFile *dest_file = g_file_get_child(base_dest_file, dest_basename);
++ dest_file_list = g_list_prepend(dest_file_list, dest_file);
++ } else {
++ dest_file_list = g_list_prepend(dest_file_list, base_dest_file);
++ }
+ }
+
+ g_free(dest_basename);
+@@ -2923,10 +2930,10 @@ xfdesktop_file_icon_manager_drag_data_received(XfdesktopIconViewManager *manager
+ if(dest_file_list) {
+ dest_file_list = g_list_reverse(dest_file_list);
+
+- drop_ok =xfdesktop_file_utils_transfer_files(context->action,
+- file_list,
+- dest_file_list,
+- fmanager->priv->gscreen);
++ drop_ok = xfdesktop_file_utils_transfer_files(context->action,
++ file_list,
++ dest_file_list,
++ fmanager->priv->gscreen);
+ }
+
+ xfdesktop_file_utils_file_list_free(dest_file_list);
+
+