diff options
author | Jeremy Huddleston Sequoia <jeremyhu@apple.com> | 2021-02-20 14:00:14 -0800 |
---|---|---|
committer | Jeremy Huddleston Sequoia <jeremyhu@apple.com> | 2022-07-02 14:50:04 -0700 |
commit | df7ca162d93ea24fb67bda6eb5ed9ae79571be24 (patch) | |
tree | 1a5b158e6f02f3e8a53c357cfcf4eb9c8b514636 | |
parent | a7c8a46f29887e2e3aed60c229e8d33ff6e73ff6 (diff) |
xquartz pbproxy: Adopt NSUserDefaults+XQuartzDefaults for preferences
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
-rw-r--r-- | hw/xquartz/pbproxy/Makefile.am | 4 | ||||
-rw-r--r-- | hw/xquartz/pbproxy/app-main.m | 40 | ||||
-rw-r--r-- | hw/xquartz/pbproxy/x-selection.m | 45 |
3 files changed, 11 insertions, 78 deletions
diff --git a/hw/xquartz/pbproxy/Makefile.am b/hw/xquartz/pbproxy/Makefile.am index 9429ea25d..3314855d7 100644 --- a/hw/xquartz/pbproxy/Makefile.am +++ b/hw/xquartz/pbproxy/Makefile.am @@ -1,4 +1,4 @@ -AM_CPPFLAGS=-DBUNDLE_ID_PREFIX=\"$(BUNDLE_ID_PREFIX)\" +AM_CPPFLAGS=-I.. AM_CFLAGS=$(XPBPROXY_CFLAGS) AM_OBJCFLAGS=$(XPBPROXY_CFLAGS) @@ -15,7 +15,7 @@ libxpbproxy_la_LDFLAGS=$(XPBPROXY_LIBS) if STANDALONE_XPBPROXY bin_PROGRAMS = xpbproxy -xpbproxy_SOURCES = app-main.m +xpbproxy_SOURCES = app-main.m ../NSUserDefaults+XQuartzDefaults.m xpbproxy_LDADD = libxpbproxy.la xpbproxy_LDFLAGS = -Wl,-framework,Cocoa diff --git a/hw/xquartz/pbproxy/app-main.m b/hw/xquartz/pbproxy/app-main.m index eda9a9e67..825980caf 100644 --- a/hw/xquartz/pbproxy/app-main.m +++ b/hw/xquartz/pbproxy/app-main.m @@ -31,13 +31,6 @@ #include "pbproxy.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 */ char *display = NULL; @@ -82,41 +75,8 @@ xq_asl_log(int level, const char *subsystem, const char *file, int main(int argc, const char *argv[]) { - const char *s; - int i; - -#ifdef DEBUG - ErrorF("pid: %u\n", getpid()); -#endif - 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(SIGTERM, signal_handler); signal(SIGHUP, signal_handler); diff --git a/hw/xquartz/pbproxy/x-selection.m b/hw/xquartz/pbproxy/x-selection.m index 21b5b3172..f4f2b9a6b 100644 --- a/hw/xquartz/pbproxy/x-selection.m +++ b/hw/xquartz/pbproxy/x-selection.m @@ -38,6 +38,8 @@ #import <AppKit/NSImage.h> #import <AppKit/NSBitmapImageRep.h> +#import "NSUserDefaults+XQuartzDefaults.h" + /* * The basic design of the pbproxy code is as follows. * @@ -99,18 +101,6 @@ dump_prefs() } #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 init_propdata(struct propdata *pdata) { @@ -1394,35 +1384,18 @@ get_property(Window win, Atom property, struct propdata *pdata, Bool delete, - (void) reload_preferences { - /* - * 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); + NSUserDefaults * const defaults = NSUserDefaults.xquartzDefaults; + #ifdef STANDALONE_XPBPROXY if (xpbproxy_is_standalone) pbproxy_prefs.active = YES; else #endif - pbproxy_prefs.active = prefs_get_bool(CFSTR( - "sync_pasteboard"), - pbproxy_prefs.active); - pbproxy_prefs.primary_on_grab = - prefs_get_bool(CFSTR( - "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); + pbproxy_prefs.active = [defaults boolForKey:XQuartzPrefKeySyncPasteboard]; + pbproxy_prefs.primary_on_grab = [defaults boolForKey:XQuartzPrefKeySyncPrimaryOnSelect]; + pbproxy_prefs.clipboard_to_pasteboard = [defaults boolForKey:XQuartzPrefKeySyncClipboardToPasteBoard]; + pbproxy_prefs.pasteboard_to_primary = [defaults boolForKey:XQuartzPrefKeySyncPasteboardToPrimary]; + pbproxy_prefs.pasteboard_to_clipboard = [defaults boolForKey:XQuartzPrefKeySyncPasteboardToClipboard]; /* This is used for debugging. */ //dump_prefs(); |