diff -Nru xfdesktop-4.8.3.old/common/xfdesktop-common.h xfdesktop-4.8.3/common/xfdesktop-common.h --- xfdesktop-4.8.3.old/common/xfdesktop-common.h 2011-09-13 18:23:29.000000000 +0200 +++ xfdesktop-4.8.3/common/xfdesktop-common.h 2011-11-12 19:23:55.593450518 +0100 @@ -48,6 +48,8 @@ #define MENU_MESSAGE "menu" #define WINDOWLIST_MESSAGE "windowlist" #define QUIT_MESSAGE "quit" +#define RESIZE_MESSAGE "resizeyes" +#define NORESIZE_MESSAGE "resizeno" /** * File information namespaces queried for #GFileInfo objects. diff -Nru xfdesktop-4.8.3.old/src/main.c xfdesktop-4.8.3/src/main.c --- xfdesktop-4.8.3.old/src/main.c 2011-09-13 18:23:29.000000000 +0200 +++ xfdesktop-4.8.3/src/main.c 2011-11-12 19:27:59.895450541 +0100 @@ -71,6 +71,7 @@ #endif static XfceSMClient *sm_client = NULL; +gboolean xfdesktop_noresize = FALSE; static void session_logout(void) @@ -194,6 +195,12 @@ XFCE_SM_CLIENT_RESTART_NORMAL); gtk_main_quit(); return TRUE; + } else if(!strcmp(RESIZE_MESSAGE, evt->data.b)) { + xfdesktop_noresize = FALSE; + return TRUE; + } else if(!strcmp(NORESIZE_MESSAGE, evt->data.b)) { + xfdesktop_noresize = TRUE; + return TRUE; } } @@ -233,6 +240,7 @@ GError *error = NULL; gboolean opt_version = FALSE, opt_reload = FALSE; gboolean opt_menu = FALSE, opt_windowlist = FALSE; + gboolean opt_resize = FALSE, opt_noresize = FALSE; gboolean opt_quit = FALSE; const GOptionEntry main_entries[] = { { "version", 'V', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &opt_version, N_("Display version information"), NULL }, @@ -240,6 +248,8 @@ { "menu", 0, G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &opt_menu, N_("Pop up the menu (at the current mouse position)"), NULL }, { "windowlist", 0, G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &opt_windowlist, N_("Pop up the window list (at the current mouse position)"), NULL }, { "quit", 0, G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &opt_quit, N_("Cause xfdesktop to quit"), NULL }, + { "resize", 0, G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &opt_resize, N_("Enable icon grid resizing on resolution change"), NULL }, + { "noresize", 0, G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &opt_noresize, N_("Disable icon grid resizing on resolution change"), NULL }, { NULL, 0, 0, 0, NULL, NULL, NULL } }; @@ -305,6 +315,10 @@ message = WINDOWLIST_MESSAGE; else if(opt_quit) message = QUIT_MESSAGE; + else if(opt_resize) + message = RESIZE_MESSAGE; + else if(opt_noresize) + message = NORESIZE_MESSAGE; signal(SIGPIPE, SIG_IGN); diff -Nru xfdesktop-4.8.3.old/src/xfdesktop-icon-view.c xfdesktop-4.8.3/src/xfdesktop-icon-view.c --- xfdesktop-4.8.3.old/src/xfdesktop-icon-view.c 2011-09-13 18:23:29.000000000 +0200 +++ xfdesktop-4.8.3/src/xfdesktop-icon-view.c 2011-11-12 19:29:05.836450543 +0100 @@ -2780,6 +2780,9 @@ static void xfdesktop_grid_do_resize(XfdesktopIconView *icon_view) { + /* If we disabled resizing, short-circuit the whole thing. */ + if(xfdesktop_noresize) return; + GList *l, *leftovers = NULL; /* move all icons into the pending_icons list */ diff -Nru xfdesktop-4.8.3.old/src/xfdesktop-icon-view.h xfdesktop-4.8.3/src/xfdesktop-icon-view.h --- xfdesktop-4.8.3.old/src/xfdesktop-icon-view.h 2011-09-13 18:23:29.000000000 +0200 +++ xfdesktop-4.8.3/src/xfdesktop-icon-view.h 2011-11-12 19:29:42.381450561 +0100 @@ -68,6 +68,8 @@ gint count); }; +extern gboolean xfdesktop_noresize; + GType xfdesktop_icon_view_get_type(void) G_GNUC_CONST; GtkWidget *xfdesktop_icon_view_new(XfdesktopIconViewManager *manager);