Index: tasklist.c
===================================================================
RCS file: /cvs/gnome/gnome-panel/applets/gen_util/tasklist.c,v
retrieving revision 1.32
diff -u -r1.32 tasklist.c
--- tasklist.c	29 May 2002 05:52:54 -0000	1.32
+++ tasklist.c	6 Jun 2002 21:02:00 -0000
@@ -36,6 +36,7 @@
 
 	gboolean include_all_workspaces;
 	WnckTasklistGroupingType grouping;
+	gboolean include_only_minimized;
 	gboolean move_unminimized_windows;
   
 	GtkOrientation orientation;
@@ -46,6 +47,7 @@
 	GtkWidget *properties_dialog;
 	GtkWidget *show_current_radio;
 	GtkWidget *show_all_radio;
+	GtkWidget *show_only_minimized_checkbox;
 	GtkWidget *never_group_radio;
 	GtkWidget *auto_group_radio;
 	GtkWidget *always_group_radio;
@@ -84,6 +86,8 @@
 				    tasklist->grouping);
 	wnck_tasklist_set_include_all_workspaces (WNCK_TASKLIST (tasklist->tasklist),
 						  tasklist->include_all_workspaces);
+	wnck_tasklist_set_include_only_minimized (WNCK_TASKLIST (tasklist->tasklist),
+						  tasklist->include_only_minimized);
 	wnck_tasklist_set_switch_workspace_on_unminimize (WNCK_TASKLIST (tasklist->tasklist),
 							  tasklist->move_unminimized_windows);
 }
@@ -245,6 +249,11 @@
 		button = tasklist->show_current_radio;
 	}
 	
+	if (tasklist->include_only_minimized) {
+		if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (tasklist->show_only_minimized_checkbox)))
+			gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tasklist->show_only_minimized_checkbox), TRUE);
+	}
+	
         if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)))
 		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
 }
@@ -268,6 +277,25 @@
 	tasklist_properties_update_content_radio (tasklist);
 }
 
+static void
+show_only_minimized_changed (GConfClient  *client,
+				guint         cnxn_id,
+				GConfEntry   *entry,
+				TasklistData *tasklist)
+{
+	gboolean value;
+
+	if (!entry->value || entry->value->type != GCONF_VALUE_BOOL)
+		return;
+	
+	value = gconf_value_get_bool (entry->value);
+	
+	tasklist->include_only_minimized = (value != 0);
+	tasklist_update (tasklist);
+
+	tasklist_properties_update_content_radio (tasklist);
+}
+
 static WnckTasklistGroupingType
 get_grouping_type (GConfValue *value)
 {
@@ -436,6 +464,14 @@
 	g_free (key);
 
 	key = panel_applet_gconf_get_full_key (PANEL_APPLET (tasklist->applet),
+					       "show_only_minimized");
+	tasklist->listeners[0] = gconf_client_notify_add(client, key,
+				(GConfClientNotifyFunc)show_only_minimized_changed,
+				tasklist,
+				NULL, NULL);
+	g_free (key);
+
+	key = panel_applet_gconf_get_full_key (PANEL_APPLET (tasklist->applet),
 					       "group_windows");
 	tasklist->listeners[1] = gconf_client_notify_add(client, key,
 				(GConfClientNotifyFunc)group_windows_changed,
@@ -539,6 +575,13 @@
 		g_error_free (error);
 		tasklist->include_all_workspaces = FALSE; /* Default value */
 	}
+	
+	error = NULL;
+	tasklist->include_only_minimized = panel_applet_gconf_get_bool (applet, "show_only_minimized", &error);
+	if (error) {
+		g_error_free (error);
+		tasklist->include_only_minimized = FALSE; /* Default value */
+	}
 
 	error = NULL;
 	tasklist->grouping = -1;
@@ -753,6 +796,16 @@
 				     NULL);
 }
 static void
+show_only_minimized_toggled (GtkToggleButton *button,
+			TasklistData    *tasklist)
+{
+	panel_applet_gconf_set_bool (PANEL_APPLET (tasklist->applet),
+				     "show_only_minimized",
+				     gtk_toggle_button_get_active (button),
+				     NULL);
+}
+
+static void
 display_all_workspaces_toggled (GtkToggleButton *button,
 				TasklistData    *tasklist)
 {
@@ -815,6 +868,7 @@
 
 	tasklist->show_current_radio = WID ("show_current_radio");
 	tasklist->show_all_radio = WID ("show_all_radio");
+	tasklist->show_only_minimized_checkbox = WID ("show_only_minimized_checkbox");
 	tasklist->never_group_radio = WID ("never_group_radio");
 	tasklist->auto_group_radio = WID ("auto_group_radio");
 	tasklist->always_group_radio = WID ("always_group_radio");
@@ -858,6 +912,8 @@
 	tasklist_properties_update_content_radio (tasklist);
 	g_signal_connect (G_OBJECT (tasklist->show_all_radio), "toggled",
 			  (GCallback) display_all_workspaces_toggled, tasklist);
+	g_signal_connect (G_OBJECT (tasklist->show_only_minimized_checkbox), "toggled",
+			  (GCallback) show_only_minimized_toggled, tasklist);
 
 	g_signal_connect (G_OBJECT (tasklist->minimum_size_spin), 
 		          "value_changed", 
Index: tasklist.glade
===================================================================
RCS file: /cvs/gnome/gnome-panel/applets/gen_util/tasklist.glade,v
retrieving revision 1.10
diff -u -r1.10 tasklist.glade
--- tasklist.glade	29 May 2002 05:53:24 -0000	1.10
+++ tasklist.glade	6 Jun 2002 21:02:00 -0000
@@ -207,6 +207,24 @@
 			  <property name="fill">False</property>
 			</packing>
 		      </child>
+
+		      <child>
+			<widget class="GtkCheckButton" id="show_only_minimized_checkbox">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">Show only _minimized windows</property>
+			  <property name="use_underline">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="active">False</property>
+			  <property name="inconsistent">False</property>
+			  <property name="draw_indicator">True</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
 		    </widget>
 		  </child>
 		</widget>
Index: tasklist.schemas.in
===================================================================
RCS file: /cvs/gnome/gnome-panel/applets/gen_util/tasklist.schemas.in,v
retrieving revision 1.6
diff -u -r1.6 tasklist.schemas.in
--- tasklist.schemas.in	1 Jun 2002 10:25:30 -0000	1.6
+++ tasklist.schemas.in	6 Jun 2002 21:02:00 -0000
@@ -13,6 +13,19 @@
 	  </long>
         </locale>
       </schema>
+      
+      <schema>
+        <key>/schemas/apps/tasklist_applet/prefs/show_only_minimized</key>
+	<owner>tasklist-applet</owner>
+	<type>bool</type>
+	<default>false</default>
+	<locale name="C">
+	  <short>Show only minimized windows</short>
+	  <long>If this is true, the tasklist will show only minimized windows,
+	        otherwise it will display all windows.
+	  </long>
+	</locale>
+      </schema>
 
       <schema>
         <key>/schemas/apps/tasklist_applet/prefs/group_windows</key>
