Added a patch to fix erratic icon behavior. See http://bugzilla.xfce.org/show_bug...
authorJoshua Nichols <nichoj@gentoo.org>
Sat, 30 Dec 2006 19:04:27 +0000 (19:04 +0000)
committerJoshua Nichols <nichoj@gentoo.org>
Sat, 30 Dec 2006 19:04:27 +0000 (19:04 +0000)
Package-Manager: portage-2.1.2_rc4-r1

xfce-base/xfdesktop/ChangeLog
xfce-base/xfdesktop/Manifest
xfce-base/xfdesktop/files/digest-xfdesktop-4.3.99.2-r1 [new file with mode: 0644]
xfce-base/xfdesktop/files/xfdesktop-4.3.99.2-icons.patch [new file with mode: 0644]
xfce-base/xfdesktop/xfdesktop-4.3.99.2-r1.ebuild [new file with mode: 0644]

index 785d68d5a551465d1c900035220f2742e6379c2e..0ba82d636c689bae30c14ac59c9403556a04a59e 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for xfce-base/xfdesktop
 # Copyright 2000-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/xfce-base/xfdesktop/ChangeLog,v 1.72 2006/12/07 04:08:08 nichoj Exp $
+# $Header: /var/cvsroot/gentoo-x86/xfce-base/xfdesktop/ChangeLog,v 1.73 2006/12/30 19:04:27 nichoj Exp $
+
+*xfdesktop-4.3.99.2-r1 (30 Dec 2006)
+
+  30 Dec 2006; Joshua Nichols <nichoj@gentoo.org>
+  +files/xfdesktop-4.3.99.2-icons.patch, +xfdesktop-4.3.99.2-r1.ebuild:
+  Added a patch to fix erratic icon behavior. See
+  http://bugzilla.xfce.org/show_bug.cgi?id=1546 for details.
 
   07 Dec 2006; Joshua Nichols <nichoj@gentoo.org> -xfdesktop-4.2.1.ebuild,
   -xfdesktop-4.2.2.ebuild, -xfdesktop-4.2.2-r1.ebuild,
index 70d0e1505537c4531f6091a50ab9efd75089a217..abbdd34e3c9fd078302e3e64c4c5c005febccf07 100644 (file)
@@ -1,17 +1,25 @@
+AUX xfdesktop-4.3.99.2-icons.patch 11399 RMD160 e068cc82944aaccd130268c1145ff139a3f49f46 SHA1 1eae46ace7483b66d47526ba22615f349aa29bfa SHA256 19b4bdae29015df79a03152b442a7eeb41f3deb167c8e9c8286d40b5d33ce84a
+MD5 4b45cdb4faa7ccfd6672eada83913032 files/xfdesktop-4.3.99.2-icons.patch 11399
+RMD160 e068cc82944aaccd130268c1145ff139a3f49f46 files/xfdesktop-4.3.99.2-icons.patch 11399
+SHA256 19b4bdae29015df79a03152b442a7eeb41f3deb167c8e9c8286d40b5d33ce84a files/xfdesktop-4.3.99.2-icons.patch 11399
 DIST xfdesktop-4.2.3.tar.gz 3169283 RMD160 da0adb637503f85d38651953560916ebc141b3ec SHA1 d4b1285947e6f42e6aa1b95a9e7bed645a1f596d SHA256 5e0ede22e6c9441ba3642580c1768995069e8de1536013b65f9394b32152d1e6
 DIST xfdesktop-4.3.99.2.tar.bz2 3087043 RMD160 b9b7ffbad30df8b6d7dcda1a87930798bfa62167 SHA1 0b8bd2b3fcc861b7c589060ced8a1aae6f5bad17 SHA256 427df09a88f9b4a38fbed68d8154090bf0c11fbdc132c26247dc5568ee5ae910
 EBUILD xfdesktop-4.2.3.ebuild 536 RMD160 3cbc0bde908999faf2cd23462272d6e3679167f4 SHA1 0ca116d5d520da6bf0f83dce4996d25408f53024 SHA256 59737fecf5b51541b24e2df491b9bed5c4fa262bc883884e81f5bd7993bc6f92
 MD5 562a292f1add2002fb6e90aa725bb577 xfdesktop-4.2.3.ebuild 536
 RMD160 3cbc0bde908999faf2cd23462272d6e3679167f4 xfdesktop-4.2.3.ebuild 536
 SHA256 59737fecf5b51541b24e2df491b9bed5c4fa262bc883884e81f5bd7993bc6f92 xfdesktop-4.2.3.ebuild 536
+EBUILD xfdesktop-4.3.99.2-r1.ebuild 1277 RMD160 661858a1507d5be339f84a40484feac415f8a932 SHA1 27eb021b2ac83231ab3e188b1feb217356211b81 SHA256 1f029c8b232aa3d3dcb205c1749c80fd865a2d5cfdeed45ca89799bf9f2e5fd6
+MD5 ab90762eff1854d05ea5d173458b09af xfdesktop-4.3.99.2-r1.ebuild 1277
+RMD160 661858a1507d5be339f84a40484feac415f8a932 xfdesktop-4.3.99.2-r1.ebuild 1277
+SHA256 1f029c8b232aa3d3dcb205c1749c80fd865a2d5cfdeed45ca89799bf9f2e5fd6 xfdesktop-4.3.99.2-r1.ebuild 1277
 EBUILD xfdesktop-4.3.99.2.ebuild 1102 RMD160 661a07f9e426570e944035c1ee30c026ecd55f50 SHA1 57908ae54cf24c66c5eafd8284690d5a5ac2c533 SHA256 d3584b322f2851b1dbae914c00691c7201f9e8d1c58e22e47c0eaae9352bd62f
 MD5 cda6feb19068a28b67254d0b853f6967 xfdesktop-4.3.99.2.ebuild 1102
 RMD160 661a07f9e426570e944035c1ee30c026ecd55f50 xfdesktop-4.3.99.2.ebuild 1102
 SHA256 d3584b322f2851b1dbae914c00691c7201f9e8d1c58e22e47c0eaae9352bd62f xfdesktop-4.3.99.2.ebuild 1102
-MISC ChangeLog 8680 RMD160 dad51385a99f81a84113ee4d4ba099aff3a3d870 SHA1 adb087f23fbb76772dd4f3660fe91d718304fa84 SHA256 680ebbb7c09d31feb40e6b28d6abcdd0e9cd1092e17446aef5dc9fd7c576ad58
-MD5 5db0980c0eac18bce4e0c90b8ef571e0 ChangeLog 8680
-RMD160 dad51385a99f81a84113ee4d4ba099aff3a3d870 ChangeLog 8680
-SHA256 680ebbb7c09d31feb40e6b28d6abcdd0e9cd1092e17446aef5dc9fd7c576ad58 ChangeLog 8680
+MISC ChangeLog 8952 RMD160 7320f2cec268713578bcf8a6f3382bb3a1aa0daf SHA1 2c13a234613f2dd9083352e4aa4cb3c173b21fec SHA256 0fceee99377494667bf69365b9c0c659c3cc2eddd02e59a8134bd9aeae909145
+MD5 313018bbf904b256a485a41b94f034ec ChangeLog 8952
+RMD160 7320f2cec268713578bcf8a6f3382bb3a1aa0daf ChangeLog 8952
+SHA256 0fceee99377494667bf69365b9c0c659c3cc2eddd02e59a8134bd9aeae909145 ChangeLog 8952
 MISC metadata.xml 157 RMD160 d7470fe88d1b96f3a7f1ef26fb7dc646b4a1b907 SHA1 7eae91f2588bdae8667d37a98fb3090d539eeca1 SHA256 44350daa7594842894d676413708d8ea77ccb0017bed24711af5b256281f5e61
 MD5 c390804e060ffd11a5bbb143434b2b2d metadata.xml 157
 RMD160 d7470fe88d1b96f3a7f1ef26fb7dc646b4a1b907 metadata.xml 157
@@ -22,3 +30,6 @@ SHA256 0abc1a60e474611597ea185162b39f17032fc3b807b228ac58972ec4b10b4c3f files/di
 MD5 cf06f9d264489fc7e114855b084d4fec files/digest-xfdesktop-4.3.99.2 262
 RMD160 9cec74462c0752b9c034df2de2f766938a34d7c1 files/digest-xfdesktop-4.3.99.2 262
 SHA256 8d2d565dc1a1f3671e8b80b6bedbff692d823b9bf9f16ec9d4db283c9ecc229e files/digest-xfdesktop-4.3.99.2 262
+MD5 cf06f9d264489fc7e114855b084d4fec files/digest-xfdesktop-4.3.99.2-r1 262
+RMD160 9cec74462c0752b9c034df2de2f766938a34d7c1 files/digest-xfdesktop-4.3.99.2-r1 262
+SHA256 8d2d565dc1a1f3671e8b80b6bedbff692d823b9bf9f16ec9d4db283c9ecc229e files/digest-xfdesktop-4.3.99.2-r1 262
diff --git a/xfce-base/xfdesktop/files/digest-xfdesktop-4.3.99.2-r1 b/xfce-base/xfdesktop/files/digest-xfdesktop-4.3.99.2-r1
new file mode 100644 (file)
index 0000000..f11fc46
--- /dev/null
@@ -0,0 +1,3 @@
+MD5 d44a81b9da9598425d9dd8dcd1cd5485 xfdesktop-4.3.99.2.tar.bz2 3087043
+RMD160 b9b7ffbad30df8b6d7dcda1a87930798bfa62167 xfdesktop-4.3.99.2.tar.bz2 3087043
+SHA256 427df09a88f9b4a38fbed68d8154090bf0c11fbdc132c26247dc5568ee5ae910 xfdesktop-4.3.99.2.tar.bz2 3087043
diff --git a/xfce-base/xfdesktop/files/xfdesktop-4.3.99.2-icons.patch b/xfce-base/xfdesktop/files/xfdesktop-4.3.99.2-icons.patch
new file mode 100644 (file)
index 0000000..89bcc1c
--- /dev/null
@@ -0,0 +1,281 @@
+Index: src/xfdesktop-icon-view.c
+===================================================================
+--- src/xfdesktop-icon-view.c  (revision 23748)
++++ src/xfdesktop-icon-view.c  (working copy)
+@@ -45,8 +45,8 @@
+ #define DEFAULT_ICON_SIZE  32
+ #define ICON_SIZE         (icon_view->priv->icon_size)
+-#define TEXT_WIDTH        (icon_view->priv->font_size * 9)
+-#define CELL_PADDING      4
++#define TEXT_WIDTH        ((ICON_SIZE << 1) + (ICON_SIZE >> 1))  /* aka 2.5x */
++#define CELL_PADDING      6
+ #define CELL_SIZE         (TEXT_WIDTH + CELL_PADDING * 2)
+ #define SPACING           6
+ #define SCREEN_MARGIN     8
+@@ -277,7 +277,12 @@
+ static void xfdesktop_icon_view_modify_font_size(XfdesktopIconView *icon_view,
+                                                  gint size);
+ static void xfdesktop_ird_free(XfdesktopIdleRepaintData *ird);
++static void xfdesktop_icon_view_add_item_internal(XfdesktopIconView *icon_view,
++                                                  XfdesktopIcon *icon);
++static gboolean xfdesktop_icon_view_icon_find_position(XfdesktopIconView *icon_view,
++                                                       XfdesktopIcon *icon);
++
+ enum
+ {
+     TARGET_XFDESKTOP_ICON = 9999,
+@@ -1323,7 +1328,7 @@
+     PangoContext *pctx;
+     GdkScreen *gscreen;
+     GdkWindow *groot;
+-    GList *l;
++    GList *l, *leftovers = NULL;
+     
+     icon_view->priv->parent_window = gtk_widget_get_toplevel(widget);
+     g_return_if_fail(icon_view->priv->parent_window);
+@@ -1399,12 +1404,14 @@
+                            icon_view);
+     
+     for(l = icon_view->priv->pending_icons; l; l = l->next) {
+-        g_object_set_data(G_OBJECT(l->data), "--xfdesktop-icon-view", NULL);
+-        xfdesktop_icon_view_add_item(icon_view, XFDESKTOP_ICON(l->data));
+-        g_object_unref(G_OBJECT(l->data));
++        XfdesktopIcon *icon = XFDESKTOP_ICON(l->data);
++        if(xfdesktop_icon_view_icon_find_position(icon_view, icon))
++            xfdesktop_icon_view_add_item_internal(icon_view, icon);
++        else
++            leftovers = g_list_prepend(leftovers, icon);
+     }
+     g_list_free(icon_view->priv->pending_icons);
+-    icon_view->priv->pending_icons = NULL;
++    icon_view->priv->pending_icons = g_list_reverse(leftovers);
+ }
+ static void
+@@ -1458,10 +1465,9 @@
+         g_signal_handlers_disconnect_by_func(G_OBJECT(l->data),
+                                              G_CALLBACK(xfdesktop_icon_view_clear_icon_extents),
+                                              icon_view);
+-        icon_view->priv->pending_icons = g_list_prepend(icon_view->priv->pending_icons,
+-                                                        l->data);
+     }
+-    g_list_free(icon_view->priv->icons);
++    icon_view->priv->pending_icons = g_list_concat(icon_view->priv->icons,
++                                                   icon_view->priv->pending_icons);
+     icon_view->priv->icons = NULL;
+     
+     g_free(icon_view->priv->grid_layout);
+@@ -2046,17 +2052,16 @@
+ static void
+ xfdesktop_grid_do_resize(XfdesktopIconView *icon_view)
+ {
+-    GList *l;
++    GList *l, *leftovers = NULL;
+     
+     /* move all icons into the pending_icons list */
+     for(l = icon_view->priv->icons; l; l = l->next) {
+         g_signal_handlers_disconnect_by_func(G_OBJECT(l->data),
+                                              G_CALLBACK(xfdesktop_icon_view_clear_icon_extents),
+                                              icon_view);
+-        icon_view->priv->pending_icons = g_list_prepend(icon_view->priv->pending_icons,
+-                                                        l->data);
+     }
+-    g_list_free(icon_view->priv->icons);
++    icon_view->priv->pending_icons = g_list_concat(icon_view->priv->icons,
++                                                   icon_view->priv->pending_icons);
+     icon_view->priv->icons = NULL;
+     
+     DUMP_GRID_LAYOUT(icon_view);
+@@ -2071,12 +2076,14 @@
+     
+     /* add all icons back */
+     for(l = icon_view->priv->pending_icons; l; l = l->next) {
+-        g_object_set_data(G_OBJECT(l->data), "--xfdesktop-icon-view", NULL);
+-        xfdesktop_icon_view_add_item(icon_view, XFDESKTOP_ICON(l->data));
+-        g_object_unref(G_OBJECT(l->data));
++        XfdesktopIcon *icon = XFDESKTOP_ICON(l->data);
++        if(xfdesktop_icon_view_icon_find_position(icon_view, icon))
++            xfdesktop_icon_view_add_item_internal(icon_view, icon);
++        else
++            leftovers = g_list_prepend(leftovers, icon);
+     }
+     g_list_free(icon_view->priv->pending_icons);
+-    icon_view->priv->pending_icons = NULL;
++    icon_view->priv->pending_icons = g_list_reverse(leftovers);
+     
+     gtk_widget_queue_draw(GTK_WIDGET(icon_view));
+ }
+@@ -2168,8 +2175,11 @@
+                                 guint16 row,
+                                 guint16 col)
+ {
+-    g_return_val_if_fail(row < icon_view->priv->nrows
+-                         && col < icon_view->priv->ncols, FALSE);
++    if(row >= icon_view->priv->nrows
++       || col >= icon_view->priv->ncols)
++    {
++        return FALSE;
++    }
+     
+     return !icon_view->priv->grid_layout[col * icon_view->priv->nrows + row];
+ }
+@@ -2484,63 +2494,89 @@
+     return GTK_WIDGET(icon_view);
+ }
++static void
++xfdesktop_icon_view_add_item_internal(XfdesktopIconView *icon_view,
++                                      XfdesktopIcon *icon)
++{
++    guint16 row, col;
++    GdkRectangle fake_area;
++    
++    /* sanity check: at this point this should be taken care of */
++    g_return_if_fail(xfdesktop_icon_get_position(icon, &row, &col));
++    
++    xfdesktop_grid_unset_position_free(icon_view, icon);
++    
++    icon_view->priv->icons = g_list_prepend(icon_view->priv->icons, icon);
++    
++    g_signal_connect_swapped(G_OBJECT(icon), "pixbuf-changed",
++                             G_CALLBACK(xfdesktop_icon_view_clear_icon_extents),
++                             icon_view);
++    g_signal_connect_swapped(G_OBJECT(icon), "label-changed",
++                             G_CALLBACK(xfdesktop_icon_view_clear_icon_extents),
++                             icon_view);
++    
++    fake_area.x = SCREEN_MARGIN + icon_view->priv->xorigin + col * CELL_SIZE;
++    fake_area.y = SCREEN_MARGIN + icon_view->priv->yorigin + row * CELL_SIZE;
++    fake_area.width = fake_area.height = CELL_SIZE;
++    xfdesktop_icon_view_paint_icon(icon_view, icon, &fake_area);
++}
++
++static gboolean
++xfdesktop_icon_view_icon_find_position(XfdesktopIconView *icon_view,
++                                       XfdesktopIcon *icon)
++{
++    guint16 row, col;
++    
++    if(!xfdesktop_icon_get_position(icon, &row, &col)
++       || !xfdesktop_grid_is_free_position(icon_view, row, col))
++    {
++        if(xfdesktop_grid_get_next_free_position(icon_view, &row, &col)) {
++            DBG("old position didn't exist or isn't free, got (%d,%d) instead",
++                row, col);
++            xfdesktop_icon_set_position(icon, row, col);
++        } else {
++            DBG("can't fit icon on screen");
++            return FALSE;
++        }
++    }
++    
++    return TRUE;
++}
++
+ void
+ xfdesktop_icon_view_add_item(XfdesktopIconView *icon_view,
+                              XfdesktopIcon *icon)
+ {
+-    gboolean icon_has_pos;
+     guint16 row, col;
+-    GdkRectangle fake_area;
+     
+     g_return_if_fail(XFDESKTOP_IS_ICON_VIEW(icon_view)
+                      && XFDESKTOP_IS_ICON(icon));
+     
+-    icon_has_pos = xfdesktop_icon_get_position(icon, &row, &col);
+-    
+     /* ensure the icon isn't already in an icon view */
+     g_return_if_fail(!g_object_get_data(G_OBJECT(icon),
+                                         "--xfdesktop-icon-view"));
+     
+     g_object_set_data(G_OBJECT(icon), "--xfdesktop-icon-view", icon_view);
++    g_object_ref(G_OBJECT(icon));
+     
+     if(!GTK_WIDGET_REALIZED(GTK_WIDGET(icon_view))) {
+-        if(icon_has_pos) {
++        /* if we aren't realized, we don't know what our grid looks like, so
++         * just hang onto the icon for later */
++        if(xfdesktop_icon_get_position(icon, &row, &col)) {
+             icon_view->priv->pending_icons = g_list_prepend(icon_view->priv->pending_icons,
+-                                                            g_object_ref(G_OBJECT(icon)));
++                                                            icon);
+         } else {
+             icon_view->priv->pending_icons = g_list_append(icon_view->priv->pending_icons,
+-                                                           g_object_ref(G_OBJECT(icon)));
++                                                           icon);
+         }
+-        return;
++    } else {
++        if(xfdesktop_icon_view_icon_find_position(icon_view, icon))
++            xfdesktop_icon_view_add_item_internal(icon_view, icon);
++        else {
++            icon_view->priv->pending_icons = g_list_append(icon_view->priv->pending_icons,
++                                                           icon);
++        }
+     }
+-    
+-    if(!icon_has_pos || !xfdesktop_grid_is_free_position(icon_view, row, col)) {
+-        if(xfdesktop_grid_get_next_free_position(icon_view, &row, &col)) {
+-            DBG("old position didn't exist or isn't free, got (%d,%d) instead",
+-                row, col);
+-            xfdesktop_icon_set_position(icon, row, col);
+-        } else {
+-            DBG("can't fit icon on screen");
+-            return;
+-        }
+-    } 
+-    
+-    xfdesktop_grid_unset_position_free(icon_view, icon);
+-    
+-    icon_view->priv->icons = g_list_prepend(icon_view->priv->icons,
+-                                            g_object_ref(G_OBJECT(icon)));
+-    
+-    g_signal_connect_swapped(G_OBJECT(icon), "pixbuf-changed",
+-                             G_CALLBACK(xfdesktop_icon_view_clear_icon_extents),
+-                             icon_view);
+-    g_signal_connect_swapped(G_OBJECT(icon), "label-changed",
+-                             G_CALLBACK(xfdesktop_icon_view_clear_icon_extents),
+-                             icon_view);
+-    
+-    fake_area.x = SCREEN_MARGIN + icon_view->priv->xorigin + col * CELL_SIZE;
+-    fake_area.y = SCREEN_MARGIN + icon_view->priv->yorigin + row * CELL_SIZE;
+-    fake_area.width = fake_area.height = CELL_SIZE;
+-    xfdesktop_icon_view_paint_icon(icon_view, icon, &fake_area);
+ }
+ void
+@@ -2592,7 +2628,6 @@
+ xfdesktop_icon_view_remove_all(XfdesktopIconView *icon_view)
+ {
+     GList *l;
+-    gboolean realized;
+     guint16 row, col;
+     
+     g_return_if_fail(XFDESKTOP_IS_ICON_VIEW(icon_view));
+@@ -2607,12 +2642,9 @@
+         icon_view->priv->pending_icons = NULL;
+     }
+     
+-    realized = GTK_WIDGET_REALIZED(GTK_WIDGET(icon_view));
+     for(l = icon_view->priv->icons; l; l = l->next) {
+-        if(realized) {
+-            if(xfdesktop_icon_get_position(XFDESKTOP_ICON(l->data), &row, &col))
+-                xfdesktop_grid_set_position_free(icon_view, row, col);
+-        }
++        if(xfdesktop_icon_get_position(XFDESKTOP_ICON(l->data), &row, &col))
++            xfdesktop_grid_set_position_free(icon_view, row, col);
+         
+         g_signal_handlers_disconnect_by_func(G_OBJECT(l->data),
+                                              G_CALLBACK(xfdesktop_icon_view_clear_icon_extents),
+@@ -2635,7 +2667,7 @@
+     icon_view->priv->last_clicked_item = NULL;
+     icon_view->priv->first_clicked_item = NULL;
+     
+-    if(realized)
++    if(GTK_WIDGET_REALIZED(icon_view))
+         gtk_widget_queue_draw(GTK_WIDGET(icon_view));
+ }
diff --git a/xfce-base/xfdesktop/xfdesktop-4.3.99.2-r1.ebuild b/xfce-base/xfdesktop/xfdesktop-4.3.99.2-r1.ebuild
new file mode 100644 (file)
index 0000000..9e22855
--- /dev/null
@@ -0,0 +1,52 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/xfce-base/xfdesktop/xfdesktop-4.3.99.2-r1.ebuild,v 1.1 2006/12/30 19:04:27 nichoj Exp $
+
+inherit xfce44 eutils
+
+xfce44_beta
+
+DESCRIPTION="Xfce 4 desktop manager"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+
+IUSE="exo panel-plugin thunar-vfs"
+
+DEPEND="sys-apps/dbus"
+RDEPEND="|| ( (
+                       x11-libs/libX11
+                       x11-libs/libICE
+                       x11-libs/libSM )
+               virtual/x11 )
+       >=dev-libs/glib-2.2
+       >=x11-libs/gtk+-2.2
+       ~xfce-base/libxfce4mcs-${PV}
+       ~xfce-base/libxfce4util-${PV}
+       ~xfce-base/libxfcegui4-${PV}
+       thunar-vfs? ( ~xfce-base/thunar-0.5.0_rc2 )
+       panel-plugin? ( ~xfce-base/xfce4-panel-${PV} )
+       ~xfce-base/xfce-mcs-manager-${PV}
+       media-libs/libpng
+       exo? ( >=xfce-extra/exo-0.3.1.12_rc2 )
+       ${DEPEND}"
+
+if ! use thunar-vfs; then
+       XFCE_CONFIG="--disable-thunar-vfs --disable-thunarx"
+fi
+
+if ! use exo; then
+       XFCE_CONFIG="${XFCE_CONFIG} --disable-exo"
+fi
+
+if ! use panel-plugin; then
+       XFCE_CONFIG="${XFCE_CONFIG} --disable-panel-plugin"
+fi
+
+xfce44_core_package
+
+src_unpack() {
+       unpack ${A}
+       cd ${S}
+       # fixes erratic icon behavior, see
+       # http://bugzilla.xfce.org/show_bug.cgi?id=1546
+       epatch ${FILESDIR}/${P}-icons.patch
+}