--- xfdesktop4-4.11.6.orig/src/xfdesktop-file-icon-manager.c +++ xfdesktop4-4.11.6/src/xfdesktop-file-icon-manager.c @@ -76,7 +76,7 @@ #include #include -#define SAVE_DELAY 7000 +#define SAVE_DELAY 1000 #define BORDER 8 typedef enum @@ -1828,6 +1828,12 @@ xfdesktop_file_icon_position_changed(Xfd /* ***** */ +void +xfdesktop_file_icon_save(gpointer user_data) +{ + xfdesktop_file_icon_position_changed(NULL, user_data); +} + gboolean xfdesktop_file_icon_manager_get_cached_icon_position(XfdesktopFileIconManager *fmanager, const gchar *name, --- xfdesktop4-4.11.6.orig/src/xfdesktop-file-icon-manager.h +++ xfdesktop4-4.11.6/src/xfdesktop-file-icon-manager.h @@ -55,6 +55,8 @@ GType xfdesktop_file_icon_manager_get_ty XfdesktopIconViewManager *xfdesktop_file_icon_manager_new(GFile *folder, XfconfChannel *channel); +void xfdesktop_file_icon_save(gpointer user_data); + gboolean xfdesktop_file_icon_manager_get_cached_icon_position( XfdesktopFileIconManager *fmanager, const gchar *name, --- xfdesktop4-4.11.6.orig/src/xfdesktop-icon-view.c +++ xfdesktop4-4.11.6/src/xfdesktop-icon-view.c @@ -2558,7 +2558,7 @@ xfdesktop_screen_size_changed_cb(GdkScre gpointer user_data) { XfdesktopIconView *icon_view = XFDESKTOP_ICON_VIEW(user_data); - + /* this is kinda icky. we want to use _NET_WORKAREA to reset the size of * the grid, but we can never be sure it'll actually change. so let's * give it 7 seconds, and then fix it manually */ @@ -3252,8 +3252,12 @@ xfdesktop_move_all_cached_icons_to_deskt TRACE("entering"); - if(XFDESKTOP_IS_FILE_ICON_MANAGER(icon_view->priv->manager)) + if(XFDESKTOP_IS_FILE_ICON_MANAGER(icon_view->priv->manager)) + { fmanager = XFDESKTOP_FILE_ICON_MANAGER(icon_view->priv->manager); + if (fmanager != NULL) + xfdesktop_file_icon_save(fmanager); + } if(fmanager == NULL) return;