Mercurial > dwindows
comparison mac/dw.m @ 706:79b38b1f3346
Scrollbar event fixes... scale was wrong... not sure it is correct but it is better.
Don't send resize events when size is negative which happens with hidden notebook pages.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Fri, 11 Mar 2011 21:53:01 +0000 |
parents | 7087f3a294e5 |
children | 86d76fc09237 |
comparison
equal
deleted
inserted
replaced
705:7087f3a294e5 | 706:79b38b1f3346 |
---|---|
132 }; | 132 }; |
133 | 133 |
134 int _event_handler(id object, NSEvent *event, int message) | 134 int _event_handler(id object, NSEvent *event, int message) |
135 { | 135 { |
136 SignalHandler *handler = _get_handler(object, message); | 136 SignalHandler *handler = _get_handler(object, message); |
137 NSLog(@"Event handler - type %d\n", message); | 137 /* NSLog(@"Event handler - type %d\n", message); */ |
138 | 138 |
139 if(handler) | 139 if(handler) |
140 { | 140 { |
141 switch(message) | 141 switch(message) |
142 { | 142 { |
164 { | 164 { |
165 NSView *view = object; | 165 NSView *view = object; |
166 size = [view frame].size; | 166 size = [view frame].size; |
167 } | 167 } |
168 | 168 |
169 return sizefunc(object, size.width, size.height, handler->data); | 169 if(size.width > 0 && size.height > 0) |
170 { | |
171 return sizefunc(object, size.width, size.height, handler->data); | |
172 } | |
173 return 0; | |
170 } | 174 } |
171 /* Button press and release event */ | 175 /* Button press and release event */ |
172 case 3: | 176 case 3: |
173 case 4: | 177 case 4: |
174 { | 178 { |
693 -(void *)userdata { return userdata; } | 697 -(void *)userdata { return userdata; } |
694 -(void)setUserdata:(void *)input { userdata = input; } | 698 -(void)setUserdata:(void *)input { userdata = input; } |
695 -(float)range { return range; } | 699 -(float)range { return range; } |
696 -(float)visible { return visible; } | 700 -(float)visible { return visible; } |
697 -(void)setRange:(float)input1 andVisible:(float)input2 { range = input1; visible = input2; } | 701 -(void)setRange:(float)input1 andVisible:(float)input2 { range = input1; visible = input2; } |
698 -(void)scrollerChanged:(id)sender { NSNumber *num = [NSNumber numberWithDouble:[self floatValue]]; _event_handler(self, (void *)[num integerValue], 14); } | 702 -(void)scrollerChanged:(id)sender { int result = (int)([self doubleValue] * [self range]); _event_handler(self, (void *)result, 14); } |
699 -(void)dealloc { UserData *root = userdata; _remove_userdata(&root, NULL, TRUE); [super dealloc]; } | 703 -(void)dealloc { UserData *root = userdata; _remove_userdata(&root, NULL, TRUE); [super dealloc]; } |
700 @end | 704 @end |
701 | 705 |
702 /* Subclass for a render area type */ | 706 /* Subclass for a render area type */ |
703 @interface DWRender : NSView | 707 @interface DWRender : NSView |