# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1301592162 0 # Node ID 5b663261b76c63608f4768e2587dc30750b7219d # Parent 1a7c8d210b18648558374f74ac538c003b86db1a Added code to prevent configure events from being sent with the same size. diff -r 1a7c8d210b18 -r 5b663261b76c mac/dw.m --- a/mac/dw.m Thu Mar 31 03:35:31 2011 +0000 +++ b/mac/dw.m Thu Mar 31 17:22:42 2011 +0000 @@ -985,11 +985,14 @@ { void *userdata; NSFont *font; + NSSize size; } -(void *)userdata; -(void)setUserdata:(void *)input; -(void)setFont:(NSFont *)input; -(NSFont *)font; +-(void)setSize:(NSSize)input; +-(NSSize)size; -(void)mouseDown:(NSEvent *)theEvent; -(void)mouseUp:(NSEvent *)theEvent; -(NSMenu *)menuForEvent:(NSEvent *)theEvent; @@ -1006,6 +1009,8 @@ -(void)setUserdata:(void *)input { userdata = input; } -(void)setFont:(NSFont *)input { [font release]; font = input; [font retain]; } -(NSFont *)font { return font; } +-(void)setSize:(NSSize)input { size = input; } +-(NSSize)size { return size; } -(void)mouseDown:(NSEvent *)theEvent { _event_handler(self, (void *)1, 3); } -(void)mouseUp:(NSEvent *)theEvent { _event_handler(self, (void *)1, 4); } -(NSMenu *)menuForEvent:(NSEvent *)theEvent { _event_handler(self, (void *)2, 3); return nil; } @@ -2097,7 +2102,16 @@ } else if([handle isMemberOfClass:[DWRender class]]) { - _event_handler(handle, nil, 1); + DWRender *render = (DWRender *)handle; + NSSize oldsize = [render size]; + NSSize newsize = [render frame].size; + + /* Eliminate duplicate configure requests */ + if(oldsize.width != newsize.width || oldsize.height != newsize.height) + { + [render setSize:newsize]; + _event_handler(handle, nil, 1); + } } else if([handle isMemberOfClass:[DWSplitBar class]] && size.width > 20 && size.height > 20) {