mirror of
https://github.com/macvim-dev/macvim.git
synced 2026-06-07 15:37:14 +02:00
Merge pull request #292 from macvim-dev/fullscreen-fade-control
Implement fullscreen fade control.
This commit is contained in:
@@ -183,39 +183,40 @@ fsEventCallback(ConstFSEventStreamRef streamRef,
|
||||
kCFPreferencesCurrentApplication);
|
||||
|
||||
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
|
||||
[NSNumber numberWithBool:NO], MMNoWindowKey,
|
||||
[NSNumber numberWithInt:64], MMTabMinWidthKey,
|
||||
[NSNumber numberWithInt:6*64], MMTabMaxWidthKey,
|
||||
[NSNumber numberWithInt:132], MMTabOptimumWidthKey,
|
||||
[NSNumber numberWithBool:YES], MMShowAddTabButtonKey,
|
||||
[NSNumber numberWithInt:2], MMTextInsetLeftKey,
|
||||
[NSNumber numberWithInt:1], MMTextInsetRightKey,
|
||||
[NSNumber numberWithInt:1], MMTextInsetTopKey,
|
||||
[NSNumber numberWithInt:1], MMTextInsetBottomKey,
|
||||
@"MMTypesetter", MMTypesetterKey,
|
||||
[NSNumber numberWithFloat:1], MMCellWidthMultiplierKey,
|
||||
[NSNumber numberWithFloat:-1], MMBaselineOffsetKey,
|
||||
[NSNumber numberWithBool:YES], MMTranslateCtrlClickKey,
|
||||
[NSNumber numberWithInt:0], MMOpenInCurrentWindowKey,
|
||||
[NSNumber numberWithBool:NO], MMNoFontSubstitutionKey,
|
||||
[NSNumber numberWithBool:YES], MMLoginShellKey,
|
||||
[NSNumber numberWithBool:NO], MMNoWindowKey,
|
||||
[NSNumber numberWithInt:64], MMTabMinWidthKey,
|
||||
[NSNumber numberWithInt:6*64], MMTabMaxWidthKey,
|
||||
[NSNumber numberWithInt:132], MMTabOptimumWidthKey,
|
||||
[NSNumber numberWithBool:YES], MMShowAddTabButtonKey,
|
||||
[NSNumber numberWithInt:2], MMTextInsetLeftKey,
|
||||
[NSNumber numberWithInt:1], MMTextInsetRightKey,
|
||||
[NSNumber numberWithInt:1], MMTextInsetTopKey,
|
||||
[NSNumber numberWithInt:1], MMTextInsetBottomKey,
|
||||
@"MMTypesetter", MMTypesetterKey,
|
||||
[NSNumber numberWithFloat:1], MMCellWidthMultiplierKey,
|
||||
[NSNumber numberWithFloat:-1], MMBaselineOffsetKey,
|
||||
[NSNumber numberWithBool:YES], MMTranslateCtrlClickKey,
|
||||
[NSNumber numberWithInt:0], MMOpenInCurrentWindowKey,
|
||||
[NSNumber numberWithBool:NO], MMNoFontSubstitutionKey,
|
||||
[NSNumber numberWithBool:YES], MMLoginShellKey,
|
||||
[NSNumber numberWithInt:MMRendererCoreText],
|
||||
MMRendererKey,
|
||||
MMRendererKey,
|
||||
[NSNumber numberWithInt:MMUntitledWindowAlways],
|
||||
MMUntitledWindowKey,
|
||||
[NSNumber numberWithBool:NO], MMZoomBothKey,
|
||||
@"", MMLoginShellCommandKey,
|
||||
@"", MMLoginShellArgumentKey,
|
||||
[NSNumber numberWithBool:YES], MMDialogsTrackPwdKey,
|
||||
[NSNumber numberWithInt:3], MMOpenLayoutKey,
|
||||
[NSNumber numberWithBool:NO], MMVerticalSplitKey,
|
||||
[NSNumber numberWithInt:0], MMPreloadCacheSizeKey,
|
||||
[NSNumber numberWithInt:0], MMLastWindowClosedBehaviorKey,
|
||||
MMUntitledWindowKey,
|
||||
[NSNumber numberWithBool:NO], MMZoomBothKey,
|
||||
@"", MMLoginShellCommandKey,
|
||||
@"", MMLoginShellArgumentKey,
|
||||
[NSNumber numberWithBool:YES], MMDialogsTrackPwdKey,
|
||||
[NSNumber numberWithInt:3], MMOpenLayoutKey,
|
||||
[NSNumber numberWithBool:NO], MMVerticalSplitKey,
|
||||
[NSNumber numberWithInt:0], MMPreloadCacheSizeKey,
|
||||
[NSNumber numberWithInt:0], MMLastWindowClosedBehaviorKey,
|
||||
#ifdef INCLUDE_OLD_IM_CODE
|
||||
[NSNumber numberWithBool:YES], MMUseInlineImKey,
|
||||
[NSNumber numberWithBool:YES], MMUseInlineImKey,
|
||||
#endif // INCLUDE_OLD_IM_CODE
|
||||
[NSNumber numberWithBool:NO], MMSuppressTerminationAlertKey,
|
||||
[NSNumber numberWithBool:YES], MMNativeFullScreenKey,
|
||||
[NSNumber numberWithBool:NO], MMSuppressTerminationAlertKey,
|
||||
[NSNumber numberWithBool:YES], MMNativeFullScreenKey,
|
||||
[NSNumber numberWithDouble:0.25], MMFullScreenFadeTimeKey,
|
||||
nil];
|
||||
|
||||
[[NSUserDefaults standardUserDefaults] registerDefaults:dict];
|
||||
|
||||
@@ -30,6 +30,10 @@
|
||||
|
||||
// This stores the contents of fuoptions_flags at fu start time
|
||||
int startFuFlags;
|
||||
|
||||
// Controls the speed of the fade in and out.
|
||||
double fadeTime;
|
||||
double fadeReservationTime;
|
||||
}
|
||||
|
||||
- (MMFullScreenWindow *)initWithWindow:(NSWindow *)t view:(MMVimView *)v
|
||||
|
||||
@@ -104,7 +104,15 @@ enum {
|
||||
|
||||
// NOTE: Vim needs to process mouse moved events, so enable them here.
|
||||
[self setAcceptsMouseMovedEvents:YES];
|
||||
|
||||
fadeTime = [[NSUserDefaults standardUserDefaults] doubleForKey:MMFullScreenFadeTimeKey];
|
||||
|
||||
// Each fade goes in and then out, so the fade hardware must be reserved accordingly and the
|
||||
// actual fade time can't exceed half the allowable reservation time... plus some slack to
|
||||
// prevent visual artifacts caused by defaulting on the fade hardware lease.
|
||||
fadeTime = MIN(fadeTime, 0.45 * kCGMaxDisplayReservationInterval);
|
||||
fadeReservationTime = 2.0 * fadeTime + 0.1;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
@@ -137,8 +145,8 @@ enum {
|
||||
// fade to black
|
||||
Boolean didBlend = NO;
|
||||
CGDisplayFadeReservationToken token;
|
||||
if (CGAcquireDisplayFadeReservation(.5, &token) == kCGErrorSuccess) {
|
||||
CGDisplayFade(token, .25, kCGDisplayBlendNormal,
|
||||
if (CGAcquireDisplayFadeReservation(fadeReservationTime, &token) == kCGErrorSuccess) {
|
||||
CGDisplayFade(token, fadeTime, kCGDisplayBlendNormal,
|
||||
kCGDisplayBlendSolidColor, .0, .0, .0, true);
|
||||
didBlend = YES;
|
||||
}
|
||||
@@ -212,7 +220,7 @@ enum {
|
||||
|
||||
// fade back in
|
||||
if (didBlend) {
|
||||
CGDisplayFade(token, .25, kCGDisplayBlendSolidColor,
|
||||
CGDisplayFade(token, fadeTime, kCGDisplayBlendSolidColor,
|
||||
kCGDisplayBlendNormal, .0, .0, .0, false);
|
||||
CGReleaseDisplayFadeReservation(token);
|
||||
}
|
||||
@@ -225,8 +233,8 @@ enum {
|
||||
// fade to black
|
||||
Boolean didBlend = NO;
|
||||
CGDisplayFadeReservationToken token;
|
||||
if (CGAcquireDisplayFadeReservation(.5, &token) == kCGErrorSuccess) {
|
||||
CGDisplayFade(token, .25, kCGDisplayBlendNormal,
|
||||
if (CGAcquireDisplayFadeReservation(fadeReservationTime, &token) == kCGErrorSuccess) {
|
||||
CGDisplayFade(token, fadeTime, kCGDisplayBlendNormal,
|
||||
kCGDisplayBlendSolidColor, .0, .0, .0, true);
|
||||
didBlend = YES;
|
||||
}
|
||||
@@ -320,7 +328,7 @@ enum {
|
||||
|
||||
// fade back in
|
||||
if (didBlend) {
|
||||
CGDisplayFade(token, .25, kCGDisplayBlendSolidColor,
|
||||
CGDisplayFade(token, fadeTime, kCGDisplayBlendSolidColor,
|
||||
kCGDisplayBlendNormal, .0, .0, .0, false);
|
||||
CGReleaseDisplayFadeReservation(token);
|
||||
}
|
||||
|
||||
@@ -51,6 +51,7 @@ extern NSString *MMUseInlineImKey;
|
||||
extern NSString *MMSuppressTerminationAlertKey;
|
||||
extern NSString *MMNativeFullScreenKey;
|
||||
extern NSString *MMUseMouseTimeKey;
|
||||
extern NSString *MMFullScreenFadeTimeKey;
|
||||
|
||||
|
||||
// Enum for MMUntitledWindowKey
|
||||
|
||||
@@ -47,6 +47,7 @@ NSString *MMUseInlineImKey = @"MMUseInlineIm";
|
||||
NSString *MMSuppressTerminationAlertKey = @"MMSuppressTerminationAlert";
|
||||
NSString *MMNativeFullScreenKey = @"MMNativeFullScreen";
|
||||
NSString *MMUseMouseTimeKey = @"MMUseMouseTime";
|
||||
NSString *MMFullScreenFadeTimeKey = @"MMFullScreenFadeTime";
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user