--- src/xfce4-4.3.90.2/xfce4-panel/plugins/iconbox/iconbox.c.orig Wed Jul 26 20:19:45 2006 +++ src/xfce4-4.3.90.2/xfce4-panel/plugins/iconbox/iconbox.c Wed Jul 26 20:40:56 2006 @@ -52,6 +52,7 @@ int icon_size; guint only_hidden:1; + guint all_workspaces:1; } Iconbox; @@ -112,7 +113,8 @@ } if (ws == netk_window_get_workspace (icon->window) || - netk_window_is_sticky (icon->window)) + netk_window_is_sticky (icon->window) || + icon->ib->all_workspaces) { gtk_widget_show (icon->button); } @@ -594,6 +596,7 @@ char *file; XfceRc *rc; int only_hidden = 0; + int all_workspaces = 0; if ((file = xfce_panel_plugin_lookup_rc_file (plugin)) != NULL) { @@ -603,12 +606,14 @@ if (rc != NULL) { only_hidden = xfce_rc_read_int_entry (rc, "only_hidden", 0); + all_workspaces = xfce_rc_read_int_entry (rc, "all_workspaces", 0); xfce_rc_close (rc); } } iconbox->only_hidden = (only_hidden == 1); + iconbox->all_workspaces = (all_workspaces == 1); } static void @@ -627,6 +632,7 @@ return; xfce_rc_write_int_entry (rc, "only_hidden", iconbox->only_hidden); + xfce_rc_write_int_entry (rc, "all_workspaces", iconbox->all_workspaces); xfce_rc_close (rc); } @@ -766,6 +772,22 @@ } static void +all_workspaces_toggled (GtkToggleButton *tb, Iconbox *ib) +{ + GSList *l; + + ib->all_workspaces = gtk_toggle_button_get_active (tb); + + for (l = ib->iconlist; l != NULL; l = l->next) + { + Icon *icon = l->data; + + update_visibility (icon, NULL); + } +} + + +static void iconbox_dialog_response (GtkWidget *dlg, int reponse, Iconbox *ib) { @@ -813,7 +835,16 @@ iconbox->only_hidden); g_signal_connect (cb, "toggled", G_CALLBACK (only_hidden_toggled), iconbox); - + + cb = gtk_check_button_new_with_mnemonic ( + _("Show applications of all workspaces")); + gtk_widget_show (cb); + gtk_box_pack_start (GTK_BOX (vbox), cb, FALSE, FALSE, 0); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cb), + iconbox->all_workspaces); + g_signal_connect (cb, "toggled", G_CALLBACK (all_workspaces_toggled), + iconbox); + gtk_widget_show (dlg); }