Ken Thomases : winemac: Stop the display link after 2 seconds of idleness, not the first time it's idle.
Alexandre Julliard
julliard at winehq.org
Fri Dec 8 13:51:29 CST 2017
Module: wine
Branch: master
Commit: 5f80cc43bfe3e741bdcbed744812472d5edd27c9
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5f80cc43bfe3e741bdcbed744812472d5edd27c9
Author: Ken Thomases <ken at codeweavers.com>
Date: Fri Dec 8 02:54:08 2017 -0600
winemac: Stop the display link after 2 seconds of idleness, not the first time it's idle.
Signed-off-by: Ken Thomases <ken at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/winemac.drv/cocoa_window.m | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/dlls/winemac.drv/cocoa_window.m b/dlls/winemac.drv/cocoa_window.m
index 03a9e78..991db57 100644
--- a/dlls/winemac.drv/cocoa_window.m
+++ b/dlls/winemac.drv/cocoa_window.m
@@ -166,6 +166,8 @@ static inline NSUInteger adjusted_modifiers_for_option_behavior(NSUInteger modif
NSTimeInterval _actualRefreshPeriod;
NSTimeInterval _nominalRefreshPeriod;
+
+ NSTimeInterval _lastDisplayTime;
}
- (id) initWithDisplayID:(CGDirectDisplayID)displayID;
@@ -224,7 +226,7 @@ static CVReturn WineDisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTi
[_windows addObject:window];
}
if (firstWindow || !CVDisplayLinkIsRunning(_link))
- CVDisplayLinkStart(_link);
+ [self start];
}
- (void) removeWindow:(WineWindow*)window
@@ -256,7 +258,11 @@ static CVReturn WineDisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTi
anyDisplayed = YES;
}
}
- if (!anyDisplayed)
+
+ NSTimeInterval now = [[NSProcessInfo processInfo] systemUptime];
+ if (anyDisplayed)
+ _lastDisplayTime = now;
+ else if (_lastDisplayTime + 2.0 < now)
CVDisplayLinkStop(_link);
});
[windows release];
@@ -279,6 +285,7 @@ static CVReturn WineDisplayLinkCallback(CVDisplayLinkRef displayLink, const CVTi
- (void) start
{
+ _lastDisplayTime = [[NSProcessInfo processInfo] systemUptime];
CVDisplayLinkStart(_link);
}
More information about the wine-cvs
mailing list