diffstat for xfdesktop4-4.13.3 xfdesktop4-4.13.3 changelog | 306 ++++++++++++++++++++++++++++++++++++++++++++++ control | 3 patches/series | 1 patches/xfce-15198.patch | 311 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 620 insertions(+), 1 deletion(-) diff -Nru xfdesktop4-4.13.3/debian/changelog xfdesktop4-4.13.3/debian/changelog --- xfdesktop4-4.13.3/debian/changelog 2019-03-21 07:17:06.000000000 +0000 +++ xfdesktop4-4.13.3/debian/changelog 2019-05-10 23:16:27.000000000 +0000 @@ -1,3 +1,11 @@ +xfdesktop4 (4.13.3-1ubuntu1) devel; urgency=medium + + * Merge from Debian experimental. Remaining changes: + - d/p/xfce-15198.patch: + + Upstream git patch to fix moving icons to other displays + + -- Unit 193 Fri, 10 May 2019 19:16:27 -0400 + xfdesktop4 (4.13.3-1) experimental; urgency=medium * New upstream version 4.13.3 @@ -31,6 +39,40 @@ -- Yves-Alexis Perez Mon, 09 Jul 2018 21:50:31 +0200 +xfdesktop4 (4.13.3-0ubuntu2) devel; urgency=medium + + * debian/patches/xfce-15198.patch: + - Upstream git patch to fix moving icons to other displays + + -- Sean Davis Mon, 25 Mar 2019 21:05:14 -0400 + +xfdesktop4 (4.13.3-0ubuntu1) devel; urgency=medium + + * New upstream development release. + - Drop patch applied upstream + + -- Unit 193 Mon, 11 Mar 2019 20:29:11 -0400 + +xfdesktop4 (4.13.2-0ubuntu1) devel; urgency=medium + + [ Unit 193 ] + * New upstream development release. + * Merge from Debian experimental. Remaining changes: + - d/p/xubuntu_set-accountsservice-user-bg.patch: update the + user background property of Accountsservice on backdrop change. + * Dropped changes that have been applied upstream: + - d/p/xubuntu_improve-nautilus-interactions.patch: added, + should prevent nautilus from taking over the desktop if xfdesktop is + running (and vice-versa). + * d/control: Swap libthunarx-2-dev B-D for libthunarx-3-dev. + + [ Sean Davis ] + * d/p/xubuntu_set-accountsservice-user-bg.patch: + - Updated to support new AccountsService method of setting + background file + + -- Unit 193 Thu, 28 Jun 2018 04:08:53 -0400 + xfdesktop4 (4.13.1-1) experimental; urgency=medium [ Yves-Alexis Perez ] @@ -76,6 +118,17 @@ -- Yves-Alexis Perez Sun, 15 Oct 2017 15:34:39 +0200 +xfdesktop4 (4.12.3-4ubuntu1) devel; urgency=medium + + * Merge from Debian unstable. Remaining changes: + - debian/patches/xubuntu_improve-nautilus-interactions.patch: added, + should prevent nautilus from taking over the desktop if xfdesktop is + running (and vice-versa). + - debian/patches/xubuntu_set-accountsservice-user-bg.patch: update the + user background property of Accountsservice on backdrop change. + + -- Unit 193 Sat, 29 Apr 2017 14:00:17 -0400 + xfdesktop4 (4.12.3-4) unstable; urgency=medium * debian/patches @@ -97,6 +150,26 @@ -- Yves-Alexis Perez Tue, 30 Aug 2016 22:52:48 +0200 +xfdesktop4 (4.12.3-2ubuntu2) devel; urgency=medium + + * d/p/01_Allow-directories-to-be-selected.patch: Add upstream patch. + - Desktop settings: Allow directories to be selected. This fixes a bug + where one could only select images, and not browse directories when + selecting the background image. + + -- Unit 193 Wed, 15 Feb 2017 17:44:58 -0500 + +xfdesktop4 (4.12.3-2ubuntu1) xenial; urgency=low + + * Merge from Debian unstable. (LP: #1524474) Remaining changes: + - debian/patches/xubuntu_improve-nautilus-interactions.patch: added, + should prevent nautilus from taking over the desktop if xfdesktop is + running (and vice-versa). + - debian/patches/xubuntu_set-accountsservice-user-bg.patch: update the + user background property of Accountsservice on backdrop change. + + -- Jackson Doak Thu, 10 Dec 2015 06:33:09 +1100 + xfdesktop4 (4.12.3-2) unstable; urgency=medium * debian/rules: @@ -111,6 +184,23 @@ -- Yves-Alexis Perez Sat, 19 Sep 2015 15:45:40 +0200 +xfdesktop4 (4.12.3-0ubuntu1) wily; urgency=medium + + * New upstream bugfix release. + + -- Unit 193 Sat, 05 Sep 2015 07:11:00 -0400 + +xfdesktop4 (4.12.2-1ubuntu1) wily; urgency=low + + * Merge from Debian unstable. Remaining changes: + - debian/patches/xubuntu_improve-nautilus-interactions.patch: added, + should prevent nautilus from taking over the desktop if xfdesktop is + running (and vice-versa). + - debian/patches/xubuntu_set-accountsservice-user-bg.patch: update the + user background property of Accountsservice on backdrop change. + + -- Sean Davis Mon, 25 May 2015 16:16:56 -0400 + xfdesktop4 (4.12.2-1) unstable; urgency=medium * debian/xfdesktop4.postinst dropped, 4.4.2 migration is long gone. @@ -118,6 +208,17 @@ -- Yves-Alexis Perez Sun, 17 May 2015 14:59:25 +0200 +xfdesktop4 (4.12.1-2ubuntu1) wily; urgency=low + + * Merge from Debian unstable. Remaining changes: + - debian/patches/xubuntu_improve-nautilus-interactions.patch: added, + should prevent nautilus from taking over the desktop if xfdesktop is + running (and vice-versa). + - debian/patches/xubuntu_set-accountsservice-user-bg.patch: update the + user background property of Accountsservice on backdrop change. + + -- Sean Davis Wed, 13 May 2015 19:47:09 -0400 + xfdesktop4 (4.12.1-2) unstable; urgency=medium * Upload to unstable. @@ -130,6 +231,17 @@ -- Yves-Alexis Perez Sun, 22 Mar 2015 15:27:01 +0100 +xfdesktop4 (4.12.0-1ubuntu1) vivid; urgency=medium + + * Merge from Debian experimental, remaining changes: + - debian/patches/xubuntu_improve-nautilus-interactions.patch: added, + should prevent nautilus from taking over the desktop if xfdesktop is + running (and vice-versa). + - debian/patches/xubuntu_set-accountsservice-user-bg.patch: update the + user background property of Accountsservice on backdrop change. + + -- Unit 193 Sun, 15 Mar 2015 22:08:51 -0400 + xfdesktop4 (4.12.0-1) experimental; urgency=medium [ Mateusz Łukasik ] @@ -138,6 +250,18 @@ -- Yves-Alexis Perez Sun, 08 Mar 2015 21:14:01 +0100 +xfdesktop4 (4.12.0-0ubuntu2) vivid; urgency=medium + + * No change rebuild for libxfce4util7 + + -- Sean Davis Mon, 02 Mar 2015 19:55:34 -0500 + +xfdesktop4 (4.12.0-0ubuntu1) vivid; urgency=medium + + * New upstream release. LP: #1424887 + + -- Jackson Doak Sun, 01 Mar 2015 12:39:58 +1100 + xfdesktop4 (4.11.8-1) experimental; urgency=medium [ Jackson Doak ] @@ -151,18 +275,90 @@ -- Yves-Alexis Perez Mon, 15 Sep 2014 19:04:46 +0200 +xfdesktop4 (4.11.8-0ubuntu1) utopic; urgency=medium + + * New upstream development release + * Bugs fixed: + - Infobar in desktop settings for <2 desktops (LP: #1365382) + - Background color resets when starting settings (LP: #1313728) + - Wallpaper spans multiple screens on reload (LP #1312577) + + -- Sean Davis Mon, 15 Sep 2014 06:24:44 -0400 + +xfdesktop4 (4.11.7-0ubuntu1) utopic; urgency=medium + + * New upstream development release + * debian/patches/xubuntu_set-accountsservice-user-bg.patch: update + patch to only update on first workspace filename change (LP: #1318307) + + -- Sean Davis Mon, 11 Aug 2014 22:25:48 -0400 + +xfdesktop4 (4.11.6-1ubuntu1) trusty; urgency=medium + + * Merge from Debian experimental. Remaining changes: + - debian/patches/xubuntu_improve-nautilus-interactions.patch: added, + should prevent nautilus from taking over the desktop if xfdesktop is + running (and vice-versa). + - debian/patches/xubuntu_set-accountsservice-user-bg.patch: update the + user background property of Accountsservice on backdrop change. + + -- Jackson Doak Wed, 09 Apr 2014 15:55:54 +1000 + xfdesktop4 (4.11.6-1) experimental; urgency=medium * New upstream development release. -- Yves-Alexis Perez Tue, 08 Apr 2014 07:49:31 +0200 +xfdesktop4 (4.11.5-1ubuntu1) trusty; urgency=medium + + * Merge from Debian experimental. Remaining changes: + - debian/patches/xubuntu_improve-nautilus-interactions.patch: added, + should prevent nautilus from taking over the desktop if xfdesktop is + running (and vice-versa). + - debian/patches/xubuntu_set-accountsservice-user-bg.patch: update the + user background property of Accountsservice on backdrop change. + + -- Logan Rosen Mon, 07 Apr 2014 15:39:01 -0400 + xfdesktop4 (4.11.5-1) experimental; urgency=medium * New upstream development release. -- Yves-Alexis Perez Tue, 01 Apr 2014 23:20:47 +0200 +xfdesktop4 (4.11.5-0ubuntu1) trusty; urgency=medium + + * New upstream release. LP: #1294209 + * Drop patches taken from git, fixed upstream. + + -- Jackson Doak Wed, 02 Apr 2014 06:58:37 +1100 + +xfdesktop4 (4.11.4-1ubuntu2) trusty; urgency=medium + + * Add patches from upstream git: + - git-desktop-icons-have-background.patch. LP: #1270261 + Makes desktop icons not have their own background + - git-missing-images-in-settings-app.patch. LP: #1282227 + Fixes some images not appearing in xfdesktop settings + - git-fix-default-icon-size.patch. LP: #1272057 + Explicitly define the desktop icon size + * Refresh xubuntu_set-accountsservice-user-bg.patch to fix + a memory leak. LP: #1295614 + + -- Jackson Doak Fri, 28 Mar 2014 07:16:04 +1100 + +xfdesktop4 (4.11.4-1ubuntu1) trusty; urgency=medium + + * Merge from debian. Remaining changes: + - debian/patches/xubuntu_improve-nautilus-interactions.patch: added, + should prevent nautilus from taking over the desktop if xfdesktop is + running (and vice-versa). + - debian/patches/xubuntu_set-accountsservice-user-bg.patch: update the + user background property of Accountsservice on backdrop change. + + -- Jackson Doak Wed, 19 Mar 2014 16:33:54 +1100 + xfdesktop4 (4.11.4-1) experimental; urgency=medium [ Jackson Doak ] @@ -171,6 +367,17 @@ -- Yves-Alexis Perez Tue, 18 Mar 2014 22:01:11 +0100 +xfdesktop4 (4.11.3-2ubuntu1) trusty; urgency=medium + + * Merge from debian. Remaining changes: + - debian/patches/xubuntu_improve-nautilus-interactions.patch: added, + should prevent nautilus from taking over the desktop if xfdesktop is + running (and vice-versa). + - debian/patches/xubuntu_set-accountsservice-user-bg.patch: update the + user background property of Accountsservice on backdrop change. + + -- Jackson Doak Sat, 01 Mar 2014 16:02:38 +1100 + xfdesktop4 (4.11.3-2) experimental; urgency=medium [ Jackson Doak ] @@ -178,12 +385,47 @@ -- Yves-Alexis Perez Fri, 28 Feb 2014 21:52:55 +0100 +xfdesktop4 (4.11.3-1ubuntu1) trusty; urgency=medium + + * Merge from debian. Remaining changes: + - debian/patches/xubuntu_improve-nautilus-interactions.patch: added, + should prevent nautilus from taking over the desktop if xfdesktop is + running (and vice-versa). + - debian/patches/xubuntu_set-accountsservice-user-bg.patch: update the + user background property of Accountsservice on backdrop change. + + -- Jackson Doak Thu, 20 Feb 2014 15:59:49 +1100 + xfdesktop4 (4.11.3-1) experimental; urgency=medium * New upstream development release. -- Yves-Alexis Perez Wed, 19 Feb 2014 20:34:01 +0100 +xfdesktop4 (4.11.2-1ubuntu1) trusty; urgency=medium + + * Merge from debian. Remaining changes: + - debian/patches/xubuntu_improve-nautilus-interactions.patch: added, + should prevent nautilus from taking over the desktop if xfdesktop is + running (and vice-versa). + - debian/patches/xubuntu_set-accountsservice-user-bg.patch: update the + user background property of Accountsservice on backdrop change. + * Improve existing xubuntu patches + + -- Jackson Doak Wed, 22 Jan 2014 11:02:26 +1100 + +xfdesktop4 (4.11.2-0ubuntu1) trusty; urgency=medium + + * Merged from debian unreleased SVN. Remaining changes: + - debian/patches/xubuntu_improve-nautilus-interactions.patch: added, + should prevent nautilus from taking over the desktop if xfdesktop is + running (and vice-versa). + - debian/patches/xubuntu_set-accountsservice-user-bg.patch: update the + user background property of Accountsservice on backdrop change. + * Drop debian/patches/xubuntu_fix-duplicate-volumes.patch, no longer needed + + -- Jackson Doak Tue, 14 Jan 2014 11:47:53 +1100 + xfdesktop4 (4.11.2-1) experimental; urgency=low [ Evgeni Golov ] @@ -222,6 +464,20 @@ -- Jackson Doak Mon, 19 Aug 2013 07:29:17 +1000 +xfdesktop4 (4.10.2-3ubuntu1) saucy; urgency=low + + * Merged from debian. Remaining changes: + - debian/patches/xubuntu_improve-nautilus-interactions.patch: added, + should prevent nautilus from taking over the desktop if xfdesktop is + running (and vice-versa). + - debian/patches/xubuntu_fix-duplicate-volumes.patch: fix duplicate + volumes appearing randomly on the desktop. + - debian/patches/xubuntu_set-accountsservice-user-bg.patch: update the + user background property of Accountsservice on backdrop change. + - debian/control: recommends tumbler for thumbnailing support + + -- Jackson Doak Mon, 12 Aug 2013 08:07:42 +1000 + xfdesktop4 (4.10.2-3) unstable; urgency=low * debian/control: @@ -242,6 +498,25 @@ -- Lionel Le Folgoc Sun, 07 Apr 2013 15:17:13 +0200 +xfdesktop4 (4.10.2-0ubuntu1) raring; urgency=low + + * New upstream bugfix release. + + -- Lionel Le Folgoc Sun, 10 Mar 2013 12:45:38 +0100 + +xfdesktop4 (4.10.1-1ubuntu1) raring; urgency=low + + * Merge from Debian experimental. Remaining changes: + - debian/patches/xubuntu_improve-nautilus-interactions.patch: added, + should prevent nautilus from taking over the desktop if xfdesktop is + running (and vice-versa). + - debian/patches/xubuntu_fix-duplicate-volumes.patch: fix duplicate + volumes appearing randomly on the desktop. + - debian/patches/xubuntu_set-accountsservice-user-bg.patch: update the + user background property of Accountsservice on backdrop change. + + -- Logan Rosen Mon, 04 Mar 2013 15:43:27 -0500 + xfdesktop4 (4.10.1-1) experimental; urgency=low * New upstream release. @@ -250,6 +525,12 @@ -- Yves-Alexis Perez Sun, 03 Mar 2013 15:35:09 +0100 +xfdesktop4 (4.10.1-0ubuntu1) raring; urgency=low + + * New upstream release. + + -- Lionel Le Folgoc Sun, 03 Mar 2013 11:58:50 +0100 + xfdesktop4 (4.10.0-2) experimental; urgency=low * debian/control: @@ -257,6 +538,31 @@ -- Yves-Alexis Perez Mon, 21 May 2012 07:04:47 +0200 +xfdesktop4 (4.10.0-1ubuntu3) raring; urgency=low + + * debian/patches: + - xubuntu_set-accountsservice-user-bg.patch: update the user background + property of Accountsservice on backdrop change. + + -- Lionel Le Folgoc Sat, 03 Nov 2012 12:57:19 +0100 + +xfdesktop4 (4.10.0-1ubuntu2) raring; urgency=low + + * debian/patches: + - xubuntu_fix-duplicate-volumes.patch: fix duplicate volumes appearing + randomly on the desktop. lp: #1072137 + + -- Lionel Le Folgoc Mon, 29 Oct 2012 12:00:16 +0100 + +xfdesktop4 (4.10.0-1ubuntu1) quantal; urgency=low + + * Merge from Debian experimental, remaining Ubuntu change: + - debian/patches/xubuntu_improve-nautilus-interactions.patch: added, + should prevent nautilus from taking over the desktop if xfdesktop is + running (and vice-versa). + + -- Lionel Le Folgoc Fri, 18 May 2012 22:18:02 +0200 + xfdesktop4 (4.10.0-1) experimental; urgency=low * New upstream stable release. diff -Nru xfdesktop4-4.13.3/debian/control xfdesktop4-4.13.3/debian/control --- xfdesktop4-4.13.3/debian/control 2019-03-21 07:17:06.000000000 +0000 +++ xfdesktop4-4.13.3/debian/control 2019-05-10 23:14:24.000000000 +0000 @@ -1,7 +1,8 @@ Source: xfdesktop4 Section: xfce Priority: optional -Maintainer: Debian Xfce Maintainers +Maintainer: Xubuntu Developers +XSBC-Original-Maintainer: Debian Xfce Maintainers Uploaders: Yves-Alexis Perez , Lionel Le Folgoc Build-Depends: debhelper (>= 11), diff -Nru xfdesktop4-4.13.3/debian/patches/series xfdesktop4-4.13.3/debian/patches/series --- xfdesktop4-4.13.3/debian/patches/series 1970-01-01 00:00:00.000000000 +0000 +++ xfdesktop4-4.13.3/debian/patches/series 2019-05-10 23:14:24.000000000 +0000 @@ -0,0 +1 @@ +xfce-15198.patch diff -Nru xfdesktop4-4.13.3/debian/patches/xfce-15198.patch xfdesktop4-4.13.3/debian/patches/xfce-15198.patch --- xfdesktop4-4.13.3/debian/patches/xfce-15198.patch 1970-01-01 00:00:00.000000000 +0000 +++ xfdesktop4-4.13.3/debian/patches/xfce-15198.patch 2019-05-10 23:14:24.000000000 +0000 @@ -0,0 +1,311 @@ +From 2d9a081c0ff88cb2c2061beb345d1eb8ec3c070b Mon Sep 17 00:00:00 2001 +From: Simon Steinbeiss +Date: Sat, 16 Mar 2019 22:39:02 +0100 +Subject: Re-introduce ability to move icons to other displays (Bug #15198) + +This feature was accidentally removed as part of +8331081ac2191733b4093ee163812eb0706748d7. +--- + src/xfdesktop-file-icon-manager.c | 65 +++++++++++++------ + src/xfdesktop-icon-view.c | 133 +++++++++++++++++++++++++++++++++----- + src/xfdesktop-icon-view.h | 8 +++ + 3 files changed, 171 insertions(+), 35 deletions(-) + +diff --git a/src/xfdesktop-file-icon-manager.c b/src/xfdesktop-file-icon-manager.c +index 7a73dba9..807c9bc6 100644 +--- a/src/xfdesktop-file-icon-manager.c ++++ b/src/xfdesktop-file-icon-manager.c +@@ -1903,22 +1903,35 @@ xfdesktop_file_icon_manager_save_icons(gpointer user_data) + XfdesktopFileIconManager *fmanager = XFDESKTOP_FILE_ICON_MANAGER(user_data); + gchar relpath[PATH_MAX], *tmppath, *path; + XfceRc *rcfile; +- GdkScreen *screen; +- GdkDisplay *display; +- GdkMonitor *monitor; +- GdkRectangle rectangle; ++ gint x = 0, y = 0, width = 0, height = 0; + + fmanager->priv->save_icons_id = 0; + +- screen = gtk_widget_get_screen (GTK_WIDGET (fmanager->priv->icon_view)); +- display = gdk_screen_get_display (screen); +- monitor = gdk_display_get_monitor_at_window (display, gtk_widget_get_parent_window(GTK_WIDGET(fmanager->priv->icon_view))); +- gdk_monitor_get_workarea (monitor, &rectangle); ++ if (!xfdesktop_get_workarea_single(fmanager->priv->icon_view, ++ 0, ++ &x, ++ &y, ++ &width, ++ &height)) ++ { ++ GdkScreen *screen; ++ GdkDisplay *display; ++ GdkMonitor *monitor; ++ GdkRectangle rectangle; ++ ++ screen = gtk_widget_get_screen (GTK_WIDGET (fmanager->priv->icon_view)); ++ display = gdk_screen_get_display (screen); ++ monitor = gdk_display_get_monitor_at_window (display, gtk_widget_get_parent_window(GTK_WIDGET(fmanager->priv->icon_view))); ++ gdk_monitor_get_workarea (monitor, &rectangle); ++ width = rectangle.width; ++ height = rectangle.height; ++ } ++ + + g_snprintf(relpath, PATH_MAX, "xfce4/desktop/icons.screen%d-%dx%d.rc", + 0, +- rectangle.width, +- rectangle.height); ++ width, ++ height); + + path = xfce_resource_save_location(XFCE_RESOURCE_CONFIG, relpath, TRUE); + if(!path) +@@ -2004,23 +2017,35 @@ xfdesktop_file_icon_manager_get_cached_icon_position(XfdesktopFileIconManager *f + gchar relpath[PATH_MAX]; + gchar *filename = NULL; + gboolean ret = FALSE; +- GdkScreen *screen; +- GdkDisplay *display; +- GdkMonitor *monitor; +- GdkRectangle rectangle; ++ gint x = 0, y = 0, width = 0, height = 0; + + if(!fmanager || !fmanager->priv) + return FALSE; + +- screen = gtk_widget_get_screen (GTK_WIDGET (fmanager->priv->icon_view)); +- display = gdk_screen_get_display (screen); +- monitor = gdk_display_get_monitor_at_window (display, gtk_widget_get_parent_window(GTK_WIDGET(fmanager->priv->icon_view))); +- gdk_monitor_get_workarea (monitor, &rectangle); ++ if (!xfdesktop_get_workarea_single(fmanager->priv->icon_view, ++ 0, ++ &x, ++ &y, ++ &width, ++ &height)) ++ { ++ GdkScreen *screen; ++ GdkDisplay *display; ++ GdkMonitor *monitor; ++ GdkRectangle rectangle; ++ ++ screen = gtk_widget_get_screen (GTK_WIDGET (fmanager->priv->icon_view)); ++ display = gdk_screen_get_display (screen); ++ monitor = gdk_display_get_monitor_at_window (display, gtk_widget_get_parent_window(GTK_WIDGET(fmanager->priv->icon_view))); ++ gdk_monitor_get_workarea (monitor, &rectangle); ++ width = rectangle.width; ++ height = rectangle.height; ++ } + + g_snprintf(relpath, PATH_MAX, "xfce4/desktop/icons.screen%d-%dx%d.rc", + 0, +- rectangle.width, +- rectangle.height); ++ width, ++ height); + + filename = xfce_resource_lookup(XFCE_RESOURCE_CONFIG, relpath); + +diff --git a/src/xfdesktop-icon-view.c b/src/xfdesktop-icon-view.c +index 11c8dba5..a8335f9f 100644 +--- a/src/xfdesktop-icon-view.c ++++ b/src/xfdesktop-icon-view.c +@@ -2617,7 +2617,7 @@ xfdesktop_icon_view_setup_grids_xinerama(XfdesktopIconView *icon_view) + static void + xfdesktop_setup_grids(XfdesktopIconView *icon_view) + { +- gint xrest = 0, yrest = 0; ++ gint xorigin = 0, yorigin = 0, xrest = 0, yrest = 0, width = 0, height = 0; + gsize old_size, new_size; + GdkScreen *screen; + GdkDisplay *display; +@@ -2632,16 +2632,25 @@ xfdesktop_setup_grids(XfdesktopIconView *icon_view) + if (icon_view->priv->primary) + { + monitor = gdk_display_get_primary_monitor (display); ++ gdk_monitor_get_workarea (monitor, &rectangle); ++ width = rectangle.width; ++ height = rectangle.height; ++ xorigin = rectangle.x; ++ yorigin = rectangle.y; + } +- else { ++ else if (!xfdesktop_get_workarea_single(icon_view, 0, ++ &xorigin, &yorigin, ++ &width, &height)) { + monitor = gdk_display_get_monitor_at_window (display, gtk_widget_get_parent_window(GTK_WIDGET(icon_view))); ++ width = gdk_screen_get_width(screen); ++ height = gdk_screen_get_height(screen); ++ xorigin = yorigin = 0; + } +- gdk_monitor_get_workarea (monitor, &rectangle); + +- icon_view->priv->xorigin = rectangle.x; +- icon_view->priv->yorigin = rectangle.y; +- icon_view->priv->width = rectangle.width; +- icon_view->priv->height = rectangle.height; ++ icon_view->priv->xorigin = xorigin; ++ icon_view->priv->yorigin = yorigin; ++ icon_view->priv->width = width; ++ icon_view->priv->height = height; + + icon_view->priv->nrows = MAX((icon_view->priv->height - MIN_MARGIN * 2) / CELL_SIZE, 0); + icon_view->priv->ncols = MAX((icon_view->priv->width - MIN_MARGIN * 2) / CELL_SIZE, 0); +@@ -3284,12 +3293,10 @@ xfdesktop_move_all_pending_icons_to_desktop(XfdesktopIconView *icon_view) + static void + xfdesktop_grid_do_resize(XfdesktopIconView *icon_view) + { ++ gint xorigin = 0, yorigin = 0, width = 0, height = 0; + gint16 new_rows, new_cols; + gsize old_size, new_size; + GdkScreen *screen; +- GdkDisplay *display; +- GdkMonitor *monitor; +- GdkRectangle rectangle; + + /* First check to see if the grid actually did change. This way + * we don't remove all the icons just to put them back again */ +@@ -3297,12 +3304,29 @@ xfdesktop_grid_do_resize(XfdesktopIconView *icon_view) + * sizeof(XfdesktopIcon *); + + screen = gtk_widget_get_screen (GTK_WIDGET (icon_view)); +- display = gdk_screen_get_display (screen); +- monitor = gdk_display_get_monitor_at_window (display, gtk_widget_get_parent_window(GTK_WIDGET(icon_view))); +- gdk_monitor_get_workarea (monitor, &rectangle); + +- new_rows = (rectangle.width - MIN_MARGIN * 2) / CELL_SIZE; +- new_cols = (rectangle.height - MIN_MARGIN * 2) / CELL_SIZE; ++ if (icon_view->priv->primary) ++ { ++ GdkDisplay *display; ++ GdkMonitor *monitor; ++ GdkRectangle rectangle; ++ ++ display = gdk_screen_get_display (screen); ++ monitor = gdk_display_get_monitor_at_window (display, gtk_widget_get_parent_window(GTK_WIDGET(icon_view))); ++ gdk_monitor_get_workarea (monitor, &rectangle); ++ width = rectangle.width; ++ height = rectangle.height; ++ } ++ else if(!xfdesktop_get_workarea_single(icon_view, 0, ++ &xorigin, &yorigin, ++ &width, &height)) ++ { ++ width = gdk_screen_get_width(screen); ++ height = gdk_screen_get_height(screen); ++ } ++ ++ new_rows = (width - MIN_MARGIN * 2) / CELL_SIZE; ++ new_cols = (height - MIN_MARGIN * 2) / CELL_SIZE; + + new_size = (guint)new_rows * new_cols * sizeof(XfdesktopIcon *); + +@@ -3342,6 +3366,85 @@ xfdesktop_grid_resize_timeout(gpointer user_data) + return FALSE; + } + ++gboolean ++xfdesktop_get_workarea_single(XfdesktopIconView *icon_view, ++ guint ws_num, ++ gint *xorigin, ++ gint *yorigin, ++ gint *width, ++ gint *height) ++{ ++ gboolean ret = FALSE; ++ GdkScreen *gscreen; ++ Display *dpy; ++ Window root; ++ Atom property, actual_type = None; ++ gint actual_format = 0, first_id; ++ gulong nitems = 0, bytes_after = 0, offset = 0, tmp_size = 0; ++ unsigned char *data_p = NULL; ++ ++ g_return_val_if_fail(xorigin && yorigin ++ && width && height, FALSE); ++ ++ gscreen = gtk_widget_get_screen(GTK_WIDGET(icon_view)); ++ dpy = GDK_DISPLAY_XDISPLAY(gdk_screen_get_display(gscreen)); ++ root = GDK_WINDOW_XID(gdk_screen_get_root_window(gscreen)); ++ property = XInternAtom(dpy, "_NET_WORKAREA", False); ++ ++ first_id = ws_num * 4; ++ ++ gdk_error_trap_push(); ++ ++ do { ++ if(Success == XGetWindowProperty(dpy, root, property, offset, ++ G_MAXULONG, False, XA_CARDINAL, ++ &actual_type, &actual_format, &nitems, ++ &bytes_after, &data_p)) ++ { ++ gint i; ++ gulong *data; ++ ++ if(actual_format != 32 || actual_type != XA_CARDINAL) { ++ XFree(data_p); ++ break; ++ } ++ ++ tmp_size = (actual_format / 8) * nitems; ++ if(actual_format == 32) { ++ tmp_size *= sizeof(long)/4; ++ } ++ ++ data = g_malloc(tmp_size); ++ memcpy(data, data_p, tmp_size); ++ ++ i = offset / 32; /* first element id in this batch */ ++ ++ /* there's probably a better way to do this. */ ++ if(i + (glong)nitems >= first_id && first_id - (glong)offset >= 0) ++ *xorigin = data[first_id - offset] + MIN_MARGIN; ++ if(i + (glong)nitems >= first_id + 1 && first_id - (glong)offset + 1 >= 0) ++ *yorigin = data[first_id - offset + 1] + MIN_MARGIN; ++ if(i + (glong)nitems >= first_id + 2 && first_id - (glong)offset + 2 >= 0) ++ *width = data[first_id - offset + 2] - 2 * MIN_MARGIN; ++ if(i + (glong)nitems >= first_id + 3 && first_id - (glong)offset + 3 >= 0) { ++ *height = data[first_id - offset + 3] - 2 * MIN_MARGIN; ++ ret = TRUE; ++ XFree(data_p); ++ g_free(data); ++ break; ++ } ++ ++ offset += actual_format * nitems; ++ XFree(data_p); ++ g_free(data); ++ } else ++ break; ++ } while(bytes_after > 0); ++ ++ gdk_error_trap_pop_ignored(); ++ ++ return ret; ++} + + static inline gboolean + xfdesktop_grid_is_free_position(XfdesktopIconView *icon_view, +diff --git a/src/xfdesktop-icon-view.h b/src/xfdesktop-icon-view.h +index 3e7d17eb..95f398b8 100644 +--- a/src/xfdesktop-icon-view.h ++++ b/src/xfdesktop-icon-view.h +@@ -125,6 +125,14 @@ void xfdesktop_icon_view_set_center_text (XfdesktopIconView *icon_view, + + GtkWidget *xfdesktop_icon_view_get_window_widget(XfdesktopIconView *icon_view); + ++gboolean ++xfdesktop_get_workarea_single(XfdesktopIconView *icon_view, ++ guint ws_num, ++ gint *xorigin, ++ gint *yorigin, ++ gint *width, ++ gint *height); ++ + void xfdesktop_icon_view_sort_icons(XfdesktopIconView *icon_view); + + #if defined(DEBUG) && DEBUG > 0 +-- +cgit v1.2.1 +