summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Huddleston Sequoia <jeremyhu@apple.com>2021-02-20 14:00:14 -0800
committerJeremy Huddleston Sequoia <jeremyhu@apple.com>2022-07-02 14:50:04 -0700
commitdf7ca162d93ea24fb67bda6eb5ed9ae79571be24 (patch)
tree1a5b158e6f02f3e8a53c357cfcf4eb9c8b514636
parenta7c8a46f29887e2e3aed60c229e8d33ff6e73ff6 (diff)
xquartz pbproxy: Adopt NSUserDefaults+XQuartzDefaults for preferences
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
-rw-r--r--hw/xquartz/pbproxy/Makefile.am4
-rw-r--r--hw/xquartz/pbproxy/app-main.m40
-rw-r--r--hw/xquartz/pbproxy/x-selection.m45
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();