> Am 13.08.2023 um 22:40 schrieb [email protected]: > > Nice! Maybe even just drawSwitchInRect:dirtyRect:forState:enabled: Though, > with your way, you could get more information from the control without having > to enlarge method arguments every time we wanted to add something else. > > So maybe -(void) drawSwitch:(NSSwitch*)switch inRect:(CGRect)rect > dirtyRect:(CGRect)dirtyRect {}
I am not sure if passing the dirtyRect is necessary and useful. The idea is that -drawRect: is usually called after setting a clipping rect within -display so that drawing with bounds size is correct but will be clipped away. > >> On Aug 13, 2023, at 1:10 PM, Fred Kiefer <[email protected]> wrote: >> >> This is a common problem in our drawing code, especially in GSTheme. In the >> better cases we hand on the view/controller to be drawn along with the >> requested rectangle. That way the drawing code could still optimise the >> process, by only drawing components that are actually visible. >> >> I will change the code as suggested by you. >> >> Cheers, >> Fred >> >>> Am 11.08.2023 um 21:23 schrieb Austin Clow <[email protected]>: >>> >>> In NSSwitch.m, the method for drawRect is as follows: >>> >>> - (void) drawRect: (NSRect)rect >>> { >>> [[GSTheme theme] drawSwitchInRect: rect >>> forState: _state >>> enabled: [self isEnabled]]; >>> } >>> >>> I believe it should be >>> >>> - (void) drawRect: (NSRect)rect >>> { >>> [[GSTheme theme] drawSwitchInRect: [self bounds] >>> forState: _state >>> enabled: [self isEnabled]]; >>> } >>> >>> As it is right now, when it redrawing a rect, it will redraw it within rect >>> causing it to draw bigger and smaller depending not he redraw area. I'm not >>> comfortable yet doing pull requests for a library I am largely unfamiliar >>> with. >>> >>> I know the drawing method is kinda ugly right now. I am thinking about >>> rewriting it. >> >
