xquartz pbproxy: Adopt NSUserDefaults+XQuartzDefaults for preferences
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
This commit is contained in:
parent
963ba6d9ad
commit
6134c73aeb
|
@ -31,13 +31,6 @@
|
||||||
#include "pbproxy.h"
|
#include "pbproxy.h"
|
||||||
#import "x-selection.h"
|
#import "x-selection.h"
|
||||||
|
|
||||||
#include <pthread.h>
|
|
||||||
#include <unistd.h> /*for getpid*/
|
|
||||||
#include <Cocoa/Cocoa.h>
|
|
||||||
|
|
||||||
static const char *app_prefs_domain = BUNDLE_ID_PREFIX ".xpbproxy";
|
|
||||||
CFStringRef app_prefs_domain_cfstr;
|
|
||||||
|
|
||||||
/* Stubs */
|
/* Stubs */
|
||||||
char *display = NULL;
|
char *display = NULL;
|
||||||
|
|
||||||
|
@ -82,41 +75,8 @@ xq_asl_log(int level, const char *subsystem, const char *file,
|
||||||
int
|
int
|
||||||
main(int argc, const char *argv[])
|
main(int argc, const char *argv[])
|
||||||
{
|
{
|
||||||
const char *s;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
ErrorF("pid: %u\n", getpid());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
xpbproxy_is_standalone = YES;
|
xpbproxy_is_standalone = YES;
|
||||||
|
|
||||||
if ((s = getenv("X11_PREFS_DOMAIN")))
|
|
||||||
app_prefs_domain = s;
|
|
||||||
|
|
||||||
for (i = 1; i < argc; i++) {
|
|
||||||
if (strcmp(argv[i], "--prefs-domain") == 0 && i + 1 < argc) {
|
|
||||||
app_prefs_domain = argv[++i];
|
|
||||||
}
|
|
||||||
else if (strcmp(argv[i], "--help") == 0) {
|
|
||||||
ErrorF(
|
|
||||||
"usage: xpbproxy OPTIONS\n"
|
|
||||||
"Pasteboard proxying for X11.\n\n"
|
|
||||||
"--prefs-domain <domain> Change the domain used for reading preferences\n"
|
|
||||||
" (default: %s)\n",
|
|
||||||
app_prefs_domain);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
ErrorF("usage: xpbproxy OPTIONS...\n"
|
|
||||||
"Try 'xpbproxy --help' for more information.\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
app_prefs_domain_cfstr = CFStringCreateWithCString(NULL, app_prefs_domain,
|
|
||||||
kCFStringEncodingUTF8);
|
|
||||||
|
|
||||||
signal(SIGINT, signal_handler);
|
signal(SIGINT, signal_handler);
|
||||||
signal(SIGTERM, signal_handler);
|
signal(SIGTERM, signal_handler);
|
||||||
signal(SIGHUP, signal_handler);
|
signal(SIGHUP, signal_handler);
|
||||||
|
|
|
@ -8,9 +8,11 @@ endif
|
||||||
libapplewm_dep = dependency('applewm', version: '>=1.4')
|
libapplewm_dep = dependency('applewm', version: '>=1.4')
|
||||||
|
|
||||||
libxpbproxy = static_library('xpbproxy',
|
libxpbproxy = static_library('xpbproxy',
|
||||||
['main.m',
|
['../NSUserDefaults+XQuartzDefaults.m',
|
||||||
|
'main.m',
|
||||||
'x-input.m',
|
'x-input.m',
|
||||||
'x-selection.m'],
|
'x-selection.m'],
|
||||||
|
include_directories: ['..'],
|
||||||
dependencies: [applewmproto_dep, libapplewm_dep, dependency('xfixes'), dependency('x11')],
|
dependencies: [applewmproto_dep, libapplewm_dep, dependency('xfixes'), dependency('x11')],
|
||||||
objc_args: pbproxy_defs,
|
objc_args: pbproxy_defs,
|
||||||
)
|
)
|
||||||
|
|
|
@ -38,6 +38,8 @@
|
||||||
#import <AppKit/NSImage.h>
|
#import <AppKit/NSImage.h>
|
||||||
#import <AppKit/NSBitmapImageRep.h>
|
#import <AppKit/NSBitmapImageRep.h>
|
||||||
|
|
||||||
|
#import "NSUserDefaults+XQuartzDefaults.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The basic design of the pbproxy code is as follows.
|
* The basic design of the pbproxy code is as follows.
|
||||||
*
|
*
|
||||||
|
@ -99,18 +101,6 @@ dump_prefs()
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern CFStringRef app_prefs_domain_cfstr;
|
|
||||||
|
|
||||||
static BOOL
|
|
||||||
prefs_get_bool(CFStringRef key, BOOL defaultValue)
|
|
||||||
{
|
|
||||||
Boolean value, ok;
|
|
||||||
|
|
||||||
value = CFPreferencesGetAppBooleanValue(key, app_prefs_domain_cfstr, &ok);
|
|
||||||
|
|
||||||
return ok ? (BOOL)value : defaultValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
init_propdata(struct propdata *pdata)
|
init_propdata(struct propdata *pdata)
|
||||||
{
|
{
|
||||||
|
@ -1394,35 +1384,18 @@ get_property(Window win, Atom property, struct propdata *pdata, Bool delete,
|
||||||
|
|
||||||
- (void) reload_preferences
|
- (void) reload_preferences
|
||||||
{
|
{
|
||||||
/*
|
NSUserDefaults * const defaults = NSUserDefaults.xquartzDefaults;
|
||||||
* It's uncertain how we could handle the synchronization failing, so cast to void.
|
|
||||||
* The prefs_get_bool should fall back to defaults if the org.x.X11 plist doesn't exist or is invalid.
|
|
||||||
*/
|
|
||||||
(void)CFPreferencesAppSynchronize(app_prefs_domain_cfstr);
|
|
||||||
#ifdef STANDALONE_XPBPROXY
|
#ifdef STANDALONE_XPBPROXY
|
||||||
if (xpbproxy_is_standalone)
|
if (xpbproxy_is_standalone)
|
||||||
pbproxy_prefs.active = YES;
|
pbproxy_prefs.active = YES;
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
pbproxy_prefs.active = prefs_get_bool(CFSTR(
|
pbproxy_prefs.active = [defaults boolForKey:XQuartzPrefKeySyncPasteboard];
|
||||||
"sync_pasteboard"),
|
pbproxy_prefs.primary_on_grab = [defaults boolForKey:XQuartzPrefKeySyncPrimaryOnSelect];
|
||||||
pbproxy_prefs.active);
|
pbproxy_prefs.clipboard_to_pasteboard = [defaults boolForKey:XQuartzPrefKeySyncClipboardToPasteBoard];
|
||||||
pbproxy_prefs.primary_on_grab =
|
pbproxy_prefs.pasteboard_to_primary = [defaults boolForKey:XQuartzPrefKeySyncPasteboardToPrimary];
|
||||||
prefs_get_bool(CFSTR(
|
pbproxy_prefs.pasteboard_to_clipboard = [defaults boolForKey:XQuartzPrefKeySyncPasteboardToClipboard];
|
||||||
"sync_primary_on_select"),
|
|
||||||
pbproxy_prefs.primary_on_grab);
|
|
||||||
pbproxy_prefs.clipboard_to_pasteboard =
|
|
||||||
prefs_get_bool(CFSTR(
|
|
||||||
"sync_clipboard_to_pasteboard"),
|
|
||||||
pbproxy_prefs.clipboard_to_pasteboard);
|
|
||||||
pbproxy_prefs.pasteboard_to_primary =
|
|
||||||
prefs_get_bool(CFSTR(
|
|
||||||
"sync_pasteboard_to_primary"),
|
|
||||||
pbproxy_prefs.pasteboard_to_primary);
|
|
||||||
pbproxy_prefs.pasteboard_to_clipboard =
|
|
||||||
prefs_get_bool(CFSTR(
|
|
||||||
"sync_pasteboard_to_clipboard"),
|
|
||||||
pbproxy_prefs.pasteboard_to_clipboard);
|
|
||||||
|
|
||||||
/* This is used for debugging. */
|
/* This is used for debugging. */
|
||||||
//dump_prefs();
|
//dump_prefs();
|
||||||
|
|
Loading…
Reference in New Issue