--- branches/KDE/3.5/kdebase/kicker/taskmanager/taskmanager.cpp #505029:505030 @@ -378,9 +378,8 @@ } // check if any state we are interested in is marked dirty - if (!(dirty & (NET::WMVisibleName | NET::WMVisibleIconName | NET::WMName | - NET::WMIconName | NET::WMState | NET::WMIcon | - NET::XAWMState | NET::WMDesktop) || + if (!(dirty & (NET::WMVisibleName | NET::WMName | NET::WMIcon | + NET::WMState | NET::XAWMState | NET::WMDesktop) || (m_trackGeometry && dirty & NET::WMGeometry))) { return; @@ -404,9 +403,12 @@ if (dirty & NET::WMIcon) { t->refreshIcon(); + + // we're done with the icon processing, don't pass this on anymore + dirty ^= NET::WMIcon; } - if (dirty != NET::WMIcon) + if (dirty) { // only refresh this stuff if we have other changes besides icons t->refresh(dirty); @@ -725,10 +727,10 @@ void Task::refresh(unsigned int dirty) { - QString name = visibleIconicName(); + QString name = visibleName(); _info = KWin::windowInfo(_win, 0, NET::WM2AllowedActions); - if (dirty != NET::WMName || name != visibleIconicName()) + if (dirty != NET::WMName || name != visibleName()) { emit changed(); }