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

 
 

You are not allowed to post comments on this tracker with your current authentication level.

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

Submitted by:  Gregory John Casamento <gcasa>
Submitted on:  Tue 26 Jun 2007 10:47:36 PM UTC  
 
Category: GormSeverity: 3 - Normal
Item Group: BugStatus: Fixed
Privacy: PublicAssigned to: Gregory John Casamento <gcasa>
Open/Closed: Closed

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>
Project AdministratorIn charge of this item.
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>
Project AdministratorIn charge of this item.
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>
Project 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>
Project AdministratorIn charge of this item.

 

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

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

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 7 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Thu 28 Jun 2007 04:05:06 AM UTCgcasaStatusConfirmed=>Fixed
      Open/ClosedIn Test=>Closed
    Wed 27 Jun 2007 01:59:13 PM UTCgcasaAssigned toNone=>gcasa
      Open/ClosedOpen=>In Test
    Wed 27 Jun 2007 08:33:35 AM UTCFredKieferCategoryGui/AppKit=>Gorm
      Item GroupNone=>Bug
      StatusNone=>Confirmed

    Back to the top


    Powered by Savane 3.1-cleanup1