[Top][All Lists]
[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)