solution for #48194, BUT...

John Firebaugh jfirebaugh at kde.org
Sat Jun 28 22:36:40 BST 2003


> for ( module = modules.first(); module; module = modules.next() )
> emit module->currentDesktopChanged( currentDesktop() );
> 
> The loop is not fully executed, it "breaks" after the first "emit". The first
> emit causes Kicker to show because PanelContainer connects to
> currentDesktopChanged(). To show Kicker PanelContainer::autoHide(false) is
> called which in turn calls qApp->processEvents(). And that is apparently the
> reason the loop above is not fully executed.

That doesn't make sense to me. What exactly do you mean by "breaks"?
Obviously it doesn't break in the usual sense, so either the iteration is
failing, or the problem is actually somewhere else. I notice that the unsafe
method of QPtrList iteration is used, which makes me suspect that some
nested iteration over 'modules' is happening. Does replacing all the uses of
first()/next() with a QPtrListIterator help?

-John





More information about the kde-core-devel mailing list