aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/devdraw/cocoa-screen-metal.m
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/devdraw/cocoa-screen-metal.m')
-rw-r--r--src/cmd/devdraw/cocoa-screen-metal.m15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/cmd/devdraw/cocoa-screen-metal.m b/src/cmd/devdraw/cocoa-screen-metal.m
index 09b34635..984ede03 100644
--- a/src/cmd/devdraw/cocoa-screen-metal.m
+++ b/src/cmd/devdraw/cocoa-screen-metal.m
@@ -212,12 +212,19 @@ threadmain(int argc, char **argv)
+ (void)callsetNeedsDisplayInRect:(NSValue *)v
{
NSRect r;
+ dispatch_time_t time;
r = [v rectValue];
LOG(@"callsetNeedsDisplayInRect(%g, %g, %g, %g)", r.origin.x, r.origin.y, r.size.width, r.size.height);
r = [win convertRectFromBacking:r];
LOG(@"setNeedsDisplayInRect(%g, %g, %g, %g)", r.origin.x, r.origin.y, r.size.width, r.size.height);
[layer setNeedsDisplayInRect:r];
+
+ time = dispatch_time(DISPATCH_TIME_NOW, 16 * NSEC_PER_MSEC);
+ dispatch_after(time, dispatch_get_main_queue(), ^(void){
+ [layer setNeedsDisplayInRect:r];
+ });
+
[myContent enlargeLastInputRect:r];
}
@@ -342,6 +349,13 @@ struct Cursors {
return YES;
}
+- (void)windowDidResize:(NSNotification *)notification
+{
+ if(![myContent inLiveResize] && img) {
+ resizeimg();
+ }
+}
+
- (void)windowDidBecomeKey:(id)arg
{
[myContent sendmouse:0];
@@ -1112,7 +1126,6 @@ resizewindow(Rectangle r)
s = [myContent convertSizeFromBacking:NSMakeSize(Dx(r), Dy(r))];
[win setContentSize:s];
- resizeimg();
});
}