Skip to content
Snippets Groups Projects
Commit f40610e0 authored by Jeremy Huddleston Sequoia's avatar Jeremy Huddleston Sequoia
Browse files

xquartz: Fold spaces related preferences into NSUserDefaults+XQuartzDefaults

parent 6134c73a
No related branches found
No related tags found
Loading
......@@ -42,6 +42,8 @@ extern NSString * const XQuartzPrefKeySyncPrimaryOnSelect;
@interface NSUserDefaults (XQuartzDefaults)
+ (NSUserDefaults *)globalDefaults;
+ (NSUserDefaults *)dockDefaults;
+ (NSUserDefaults *)xquartzDefaults;
@end
......@@ -44,6 +44,44 @@ NSString * const XQuartzPrefKeySyncPrimaryOnSelect = @"sync_primary_on_select";
@implementation NSUserDefaults (XQuartzDefaults)
+ (NSUserDefaults *)globalDefaults
{
static dispatch_once_t once;
static NSUserDefaults *defaults;
dispatch_once(&once, ^{
NSString * const defaultsDomain = @".GlobalPreferences";
defaults = [[[NSUserDefaults alloc] initWithSuiteName:defaultsDomain] retain];
NSDictionary<NSString *, id> * const defaultDefaultsDict = @{
@"AppleSpacesSwitchOnActivate" : @(YES),
};
[defaults registerDefaults:defaultDefaultsDict];
});
return defaults;
}
+ (NSUserDefaults *)dockDefaults
{
static dispatch_once_t once;
static NSUserDefaults *defaults;
dispatch_once(&once, ^{
NSString * const defaultsDomain = @"com.apple.dock";
defaults = [[[NSUserDefaults alloc] initWithSuiteName:defaultsDomain] retain];
NSDictionary<NSString *, id> * const defaultDefaultsDict = @{
@"workspaces" : @(NO),
};
[defaults registerDefaults:defaultDefaultsDict];
});
return defaults;
}
+ (NSUserDefaults *)xquartzDefaults
{
static dispatch_once_t once;
......
......@@ -417,7 +417,7 @@ QuartzModeBundleInit(void);
case NSApplicationActivatedEventType:
for_x = NO;
if ([e window] == nil && x_was_active) {
BOOL order_all_windows = YES, workspaces, ok;
BOOL order_all_windows = YES;
for_appkit = NO;
#if APPKIT_APPFLAGS_HACK
......@@ -430,26 +430,9 @@ QuartzModeBundleInit(void);
[self set_front_process:nil];
/* Get the Spaces preference for SwitchOnActivate */
(void)CFPreferencesAppSynchronize(CFSTR("com.apple.dock"));
workspaces =
CFPreferencesGetAppBooleanValue(CFSTR("workspaces"),
CFSTR(
"com.apple.dock"),
&ok);
if (!ok)
workspaces = NO;
BOOL const workspaces = [NSUserDefaults.dockDefaults boolForKey:@"workspaces"];
if (workspaces) {
(void)CFPreferencesAppSynchronize(CFSTR(
".GlobalPreferences"));
order_all_windows =
CFPreferencesGetAppBooleanValue(CFSTR(
"AppleSpacesSwitchOnActivate"),
CFSTR(
".GlobalPreferences"),
&ok);
if (!ok)
order_all_windows = YES;
order_all_windows = [NSUserDefaults.globalDefaults boolForKey:@"AppleSpacesSwitchOnActivate"];
}
/* TODO: In the workspaces && !AppleSpacesSwitchOnActivate case, the windows are ordered
......@@ -460,8 +443,7 @@ QuartzModeBundleInit(void);
* be restoring one of them.
*/
if ([e data2] & 0x10) { // 0x10 (bfCPSOrderAllWindowsForward) is set when we use cmd-tab or the dock icon
DarwinSendDDXEvent(kXquartzBringAllToFront, 1,
order_all_windows);
DarwinSendDDXEvent(kXquartzBringAllToFront, 1, order_all_windows);
}
}
break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment