--- a/plugins/tasklist/tasklist-widget.c +++ b/plugins/tasklist/tasklist-widget.c @@ -2173,6 +2173,10 @@ if (!xfce_tasklist_geometry_has_point (tasklist, x, y)) return FALSE; } + + /* show urgent windows on all workspaces and if they are minimized or not */ + if(wnck_window_or_transient_needs_attention (child->window)) + return TRUE; if (tasklist->all_workspaces || (active_ws != NULL @@ -2449,6 +2453,12 @@ blink = wnck_window_or_transient_needs_attention (window); if (!blink || (blink && !wnck_window_is_active (window))) xfce_arrow_button_set_blinking (XFCE_ARROW_BUTTON (child->button), blink); + + screen = wnck_window_get_screen (window); + if (xfce_tasklist_button_visible (child, wnck_screen_get_active_workspace (screen))) + gtk_widget_show (child->button); + else + gtk_widget_hide (child->button); } } @@ -2728,10 +2738,8 @@ } else { - /* we only change worksapces/viewports for non-pinned windows - * and if all workspaces/viewports are shown */ - if (child->tasklist->all_workspaces - && !wnck_window_is_pinned (child->window)) + /* we only change worksapces/viewports for non-pinned windows */ + if (!wnck_window_is_pinned (child->window)) { workspace = wnck_window_get_workspace (child->window);