I had a deeper look into the problem behind the bug 100250 and found that it is created by a view that is moved to another window, while the view needs display. In that specific constellation the method [NSView setNeedsDisplayInRect:] does not work correct. As the whole area of the view is already invalid the new window (and the super views) is not marked as needing display. There are multiple ways to resolve this problem and I am not sure which is the best. Currently I would prefer to flag the view when moving it to a new superview first as not to need display and than as needing display. That way the invalid area is first cleared and than everything works as expected. This would require changes to the methods [addSubview:], [replaceSubview:with:] and [addSubview:positioned:relativeTo:]. Another way to do it would be to flag a view as not needing display in the [removeFromSuperview:] and [removeFromSuperviewWithoutNeedingDisplay:] methods. Or to try to handle this case in [setNeedsDisplayInRect:], but this would need a lot of extra checks.
There is another smaller problem here in the method [NSWindow orderWindow:relativeTo:]. Here the sending of needs display calls from the runloops to the window is only started when the window does not need display. This seem to be the wrong way round. Could anybody with more insight in this matter propose the correct solution (And perhaps also submit it). I send much more time to find the problem than I expected and now just want to get rid of it. Cheers Fred _______________________________________________ Bug-gnustep mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-gnustep