gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnustep-cvs] gnustep/core/gui ChangeLog Source/NSTableView.m


From: Matt Rice
Subject: Re: [Gnustep-cvs] gnustep/core/gui ChangeLog Source/NSTableView.m
Date: Fri, 27 May 2005 20:34:22 -0700 (PDT)

--- Enrico Sersale <address@hidden> wrote:
> On 2005-05-26 16:38:12 +0300 Fred Kiefer
> <address@hidden> wrote:
> 
> > CVSROOT:    /cvsroot/gnustep
> > Module name:        gnustep
> > Branch:     
> > Changes by: Fred Kiefer
> <address@hidden>      05/05/26 13:38:11
> > 
> > Modified files:
> >     core/gui       : ChangeLog      core/gui/Source:
> NSTableView.m
> > Log message:
> >     Improved mouseDown call handling for table view.
> > 
> > CVSWeb URLs:
> >
>
http://savannah.gnu.org/cgi-bin/viewcvs/gnustep/gnustep/core/gui/ChangeLog.diff?tr1=1.2528&tr2=1.2529&r1=text&r2=text
> >
>
http://savannah.gnu.org/cgi-bin/viewcvs/gnustep/gnustep/core/gui/Source/NSTableView.m.diff?tr1=1.116&tr2=1.117&r1=text&r2=text
> 
> I think that it would be a good habit to try to run
> one or two of the (few) GNUstep applications before
> committing changes that can break things...
> 

just to elaborate.. this breaks (at least)
gworkspace's
view->list segfaults when selecting a row.

anyhow the culprit being cell copy, which was added
because NSComboBoxCell caches the cellFrame so it can
pop up the window through a NSButtonCell's action...

though it was causing multiple drawWithFrame: calls
for the combobox cells with its setNeedsDisplay: then
popping up in the wrong place...

anyhow this seems to work in both cases..

matt


                
__________________________________ 
Do you Yahoo!? 
Yahoo! Small Business - Try our new Resources site
http://smallbusiness.yahoo.com/resources/
Index: NSTableView.m
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/gui/Source/NSTableView.m,v
retrieving revision 1.117
diff -u -r1.117 NSTableView.m
--- NSTableView.m       26 May 2005 13:38:11 -0000      1.117
+++ NSTableView.m       28 May 2005 03:16:39 -0000
@@ -3460,7 +3460,7 @@
 
          // Prepare the cell
          tb = [_tableColumns objectAtIndex: _clickedColumn];
-         cell = [[tb dataCellForRow: _clickedRow] copy];
+         cell = [tb dataCellForRow: _clickedRow];
          originalValue = RETAIN([self _objectValueForTableColumn:tb 
row:_clickedRow]);
          [cell setObjectValue: originalValue]; 
          cellFrame = [self frameOfCellAtColumn: _clickedColumn 
@@ -3497,7 +3497,6 @@
            }
          RELEASE(originalValue);    
          [cell setHighlighted: NO];
-         RELEASE(cell);
          [self setNeedsDisplayInRect: cellFrame];
          lastEvent = [NSApp currentEvent];
        }
Index: NSComboBoxCell.m
===================================================================
RCS file: /cvsroot/gnustep/gnustep/core/gui/Source/NSComboBoxCell.m,v
retrieving revision 1.38
diff -u -r1.38 NSComboBoxCell.m
--- NSComboBoxCell.m    26 May 2005 02:52:43 -0000      1.38
+++ NSComboBoxCell.m    28 May 2005 03:16:42 -0000
@@ -1603,7 +1603,7 @@
           if (NSMouseInRect(location, buttonRect, isFlipped))
            {
              [_buttonCell setHighlighted: YES];
-             [controlView setNeedsDisplay: YES];
+             [controlView setNeedsDisplayInRect: cellFrame];
                
              result = [_buttonCell trackMouse: e
                                        inRect: buttonRect
@@ -1612,7 +1612,7 @@
               isMouseUp = result;
 
              [_buttonCell setHighlighted: NO];
-             [controlView setNeedsDisplay: YES];
+             [controlView setNeedsDisplayInRect: cellFrame];
             }
                
           if (isMouseUp == NO)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]