bugGNUstep - Bugs: bug #20274, Gorm goes into an infinite...

Group
 
 

bug #20274: Gorm goes into an infinite recursion when selecting a control after recent NSView changes....

Submitter:  Gregory John Casamento <gcasa>
Submitted:  Tue 26 Jun 2007 10:47:36 PM UTC
   
 
Category:  Gorm Severity:  3 - Normal
Item Group:  Bug Status:  Fixed
Privacy:  Public Assigned to:  gcasa
Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Thu 28 Jun 2007 04:05:06 AM UTC, comment #3: 

Comitted the change suggested in Fred's comment.   It now works properly.

Gregory John Casamento <gcasa>
Group administrator
Wed 27 Jun 2007 01:59:13 PM UTC, comment #2: 

Fred,

You were correct.  I replaced the call with the one you suggested and it now works properly.   I'm going to test it a bit more to see if there are any other issues.

Thanks, GJC

Gregory John Casamento <gcasa>
Group administrator
Wed 27 Jun 2007 08:33:35 AM UTC, 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.

Fred Kiefer <FredKiefer>
Group Member
Tue 26 Jun 2007 10:47:36 PM UTC, original submission:  

Steps to reproduce...

1) open -a Gorm (or start Gorm from the dock)
2) Select New Application
3) Drag a button into the window
4) Try to select the button

RESULT: The application freezes and eventually dies...
EXPECTED: The button should be properly selected.


Gregory John Casamento <gcasa>
Group administrator

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by FredKiefer (Posted a comment)
  • -email is unavailable- added by gcasa (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 7 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2007-06-28 gcasa StatusConfirmed Fixed
        Open/ClosedIn Test Closed
    2007-06-27 gcasa Assigned toNone gcasa
        Open/ClosedOpen In Test
    2007-06-27 FredKiefer CategoryGui/AppKit Gorm
        Item GroupNone Bug
        StatusNone Confirmed

    Back to the top

    Powered by Savane 3.13-3230.
    Corresponding source code