[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #20274] Gorm goes into an infinite recursion when selecting a contr
From: |
Fred Kiefer |
Subject: |
[bug #20274] Gorm goes into an infinite recursion when selecting a control after recent NSView changes.... |
Date: |
Wed, 27 Jun 2007 08:33:36 +0000 |
User-agent: |
Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) |
Update of bug #20274 (project gnustep):
Category: Gui/AppKit => Gorm
Item Group: None => Bug
Status: None => Confirmed
_______________________________________________________
Follow-up Comment #1:
Thank you for pointing out this problem. I think that in this specific case
the error lies with Gorm. What happens is that the
displayRectIgnoringOpacity: method in GormViewEditor calls the super
implementation of displayIfNeededInRectIgnoringOpacity:. This method on
NSView now calls displayRectIgnoringOpacity:, which isn't a too strange
behaviour, but now Gorm ends up in an infinite loop. It is surprising that
the code there has ever worked. This was due to a specific implementation in
NSView; I wouldn't be to surprised to see that Gorm wont work on Cocoa.
The solution is obvious. Replace the super call to
displayIfNeededInRectIgnoringOpacity: with one to
displayRectIgnoringOpacity:. With the new code in NSView in place you wont
even need the displayIfNeededInRectIgnoringOpacity: method, as now
all display operations go through displayRectIgnoringOpacity:. And I am even
wondering if it isn't possible to move all this code into drawRect:, but I
might have missed the point here. I also don't understand the idea behind the
currently_displaying variable. Is this really needed?
Are you going to change the Grom code, or should I do it? I would prefer that
you look at the code, as I don't want to break Gorm.
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?20274>
_______________________________________________
Nachricht geschickt von/durch Savannah
http://savannah.gnu.org/