mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2025-12-20 07:00:03 +01:00
xquartz pbproxy: Adopt NSUserDefaults+XQuartzDefaults for preferences
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
This commit is contained in:
parent
a7c8a46f29
commit
df7ca162d9
3 changed files with 11 additions and 78 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue