mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2025-12-20 08:10: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_CFLAGS=$(XPBPROXY_CFLAGS)
|
||||||
AM_OBJCFLAGS=$(XPBPROXY_CFLAGS)
|
AM_OBJCFLAGS=$(XPBPROXY_CFLAGS)
|
||||||
|
|
@ -15,7 +15,7 @@ libxpbproxy_la_LDFLAGS=$(XPBPROXY_LIBS)
|
||||||
if STANDALONE_XPBPROXY
|
if STANDALONE_XPBPROXY
|
||||||
|
|
||||||
bin_PROGRAMS = xpbproxy
|
bin_PROGRAMS = xpbproxy
|
||||||
xpbproxy_SOURCES = app-main.m
|
xpbproxy_SOURCES = app-main.m ../NSUserDefaults+XQuartzDefaults.m
|
||||||
xpbproxy_LDADD = libxpbproxy.la
|
xpbproxy_LDADD = libxpbproxy.la
|
||||||
xpbproxy_LDFLAGS = -Wl,-framework,Cocoa
|
xpbproxy_LDFLAGS = -Wl,-framework,Cocoa
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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…
Add table
Reference in a new issue