diff -ur xfwm4-4.6.1-orig/defaults/defaults xfwm4-4.6.1/defaults/defaults --- xfwm4-4.6.1-orig/defaults/defaults 2009-04-15 09:59:02.000000000 +0200 +++ xfwm4-4.6.1/defaults/defaults 2009-06-14 00:42:20.000000000 +0200 @@ -8,6 +8,7 @@ click_to_focus=true cycle_draw_frame=true cycle_hidden=true +cycle_hidden_last=true cycle_minimum=true cycle_workspaces=false dbl_click_time=400 Only in xfwm4-4.6.1-orig/settings-dialogs: monitor-icon.h diff -ur xfwm4-4.6.1-orig/settings-dialogs/tweaks-settings.c xfwm4-4.6.1/settings-dialogs/tweaks-settings.c --- xfwm4-4.6.1-orig/settings-dialogs/tweaks-settings.c 2009-04-15 09:58:52.000000000 +0200 +++ xfwm4-4.6.1/settings-dialogs/tweaks-settings.c 2009-06-14 00:45:12.000000000 +0200 @@ -159,6 +159,7 @@ /* Cycling tab */ GtkWidget *cycle_workspaces_check = glade_xml_get_widget (gxml, "cycle_workspaces_check"); GtkWidget *cycle_hidden_check = glade_xml_get_widget (gxml, "cycle_hidden_check"); + GtkWidget *cycle_hidden_last_check = glade_xml_get_widget (gxml, "cycle_hidden_last_check"); GtkWidget *cycle_minimum_check = glade_xml_get_widget (gxml, "cycle_minimum_check"); GtkWidget *cycle_draw_frame = glade_xml_get_widget (gxml, "cycle_draw_frame"); @@ -297,6 +298,10 @@ G_TYPE_BOOLEAN, (GObject *)cycle_hidden_check, "active"); xfconf_g_property_bind (xfwm4_channel, + "/general/cycle_hidden_last", + G_TYPE_BOOLEAN, + (GObject *)cycle_hidden_last_check, "active"); + xfconf_g_property_bind (xfwm4_channel, "/general/cycle_workspaces", G_TYPE_BOOLEAN, (GObject *)cycle_workspaces_check, "active"); diff -ur xfwm4-4.6.1-orig/settings-dialogs/xfwm4-tweaks-dialog.glade xfwm4-4.6.1/settings-dialogs/xfwm4-tweaks-dialog.glade --- xfwm4-4.6.1-orig/settings-dialogs/xfwm4-tweaks-dialog.glade 2009-04-15 09:58:52.000000000 +0200 +++ xfwm4-4.6.1/settings-dialogs/xfwm4-tweaks-dialog.glade 2009-06-14 02:54:50.000000000 +0200 @@ -55,6 +55,21 @@ + + True + True + _Hidden windows are shown last in cycle list + True + 0 + True + + + False + False + 2 + + + True True @@ -66,7 +81,7 @@ False False - 2 + 3 @@ -81,7 +96,7 @@ False False - 3 + 4 Only in xfwm4-4.6.1/settings-dialogs: xfwm4-tweaks-dialog.glade.orig diff -ur xfwm4-4.6.1-orig/src/client.c xfwm4-4.6.1/src/client.c --- xfwm4-4.6.1-orig/src/client.c 2009-04-15 09:58:59.000000000 +0200 +++ xfwm4-4.6.1/src/client.c 2009-06-14 00:54:52.000000000 +0200 @@ -2399,7 +2399,7 @@ { FLAG_SET (c->flags, CLIENT_FLAG_ICONIFIED); setWMState (display_info, c->window, IconicState); - if (!screen_info->show_desktop) + if (!screen_info->show_desktop && screen_info->params->cycle_hidden_last) { clientSetLast (c); } diff -ur xfwm4-4.6.1-orig/src/settings.c xfwm4-4.6.1/src/settings.c --- xfwm4-4.6.1-orig/src/settings.c 2009-04-15 09:58:59.000000000 +0200 +++ xfwm4-4.6.1/src/settings.c 2009-06-14 00:39:47.000000000 +0200 @@ -663,6 +663,7 @@ {"focus_delay", NULL, G_TYPE_INT, TRUE}, {"cycle_draw_frame", NULL, G_TYPE_BOOLEAN, TRUE}, {"cycle_hidden", NULL, G_TYPE_BOOLEAN, TRUE}, + {"cycle_hidden_last", NULL, G_TYPE_BOOLEAN, TRUE}, {"cycle_minimum", NULL, G_TYPE_BOOLEAN, TRUE}, {"cycle_workspaces", NULL, G_TYPE_BOOLEAN, TRUE}, {"dbl_click_time", NULL, G_TYPE_INT, TRUE}, @@ -748,6 +749,8 @@ getBoolValue ("cycle_draw_frame", rc); screen_info->params->cycle_hidden = getBoolValue ("cycle_hidden", rc); + screen_info->params->cycle_hidden_last = + getBoolValue ("cycle_hidden_last", rc); screen_info->params->cycle_workspaces = getBoolValue ("cycle_workspaces", rc); screen_info->params->focus_hint = @@ -1255,6 +1258,10 @@ { screen_info->params->cycle_hidden = g_value_get_boolean (value); } + else if (!strcmp (name, "cycle_hidden_last")) + { + screen_info->params->cycle_hidden_last = g_value_get_boolean (value); + } else if (!strcmp (name, "cycle_workspaces")) { screen_info->params->cycle_workspaces = g_value_get_boolean (value); diff -ur xfwm4-4.6.1-orig/src/settings.h xfwm4-4.6.1/src/settings.h --- xfwm4-4.6.1-orig/src/settings.h 2009-04-15 09:58:59.000000000 +0200 +++ xfwm4-4.6.1/src/settings.h 2009-06-14 00:40:05.000000000 +0200 @@ -196,6 +196,7 @@ gboolean click_to_focus; gboolean cycle_draw_frame; gboolean cycle_hidden; + gboolean cycle_hidden_last; gboolean cycle_minimum; gboolean cycle_workspaces; gboolean focus_hint; Only in xfwm4-4.6.1-orig/: xfwm4.spec