From dba290ec231422740f453b69b187f80df3f50e4b Mon Sep 17 00:00:00 2001 From: Jeremy Huddleston Date: Sun, 21 Sep 2008 17:40:35 -0700 Subject: XQuartz: Added a preferences UI for pbproxy options. (cherry picked from commit d76cca5e1eae86450aa236e49a2024881d0bac01) --- hw/xquartz/X11Application.h | 6 + hw/xquartz/X11Application.m | 11 + hw/xquartz/X11Controller.h | 8 + hw/xquartz/X11Controller.m | 51 +- .../English.lproj/main.nib/designable.nib | 828 +++++++++++++++------ .../English.lproj/main.nib/keyedobjects.nib | Bin 37205 -> 41243 bytes hw/xquartz/darwin.h | 6 + hw/xquartz/doc/Xquartz.man.pre | 15 + 8 files changed, 695 insertions(+), 230 deletions(-) diff --git a/hw/xquartz/X11Application.h b/hw/xquartz/X11Application.h index 3d06a4553..ce3fa7bda 100644 --- a/hw/xquartz/X11Application.h +++ b/hw/xquartz/X11Application.h @@ -100,4 +100,10 @@ extern int quartzHasRoot, quartzEnableRootless; #define PREFS_FFM "wm_ffm" #define PREFS_FOCUS_ON_NEW_WINDOW "wm_focus_on_new_window" +#define PREFS_SYNC_PB "sync_pasteboard" +#define PREFS_SYNC_PB_TO_CLIPBOARD "sync_pasteboard_to_clipboard" +#define PREFS_SYNC_PB_TO_PRIMARY "sync_pasteboard_to_primary" +#define PREFS_SYNC_CLIPBOARD_TO_PB "sync_clipboard_to_pasteboard" +#define PREFS_SYNC_PRIMARY_ON_SELECT "sync_primary_on_select" + #endif /* X11APPLICATION_H */ diff --git a/hw/xquartz/X11Application.m b/hw/xquartz/X11Application.m index 0ce495148..213d9ed1d 100644 --- a/hw/xquartz/X11Application.m +++ b/hw/xquartz/X11Application.m @@ -673,6 +673,17 @@ static NSMutableArray * cfarray_to_nsarray (CFArrayRef in) { // enable_stereo = [self prefs_get_boolean:@PREFS_ENABLE_STEREO // default:false]; + + pbproxy_active = [self prefs_get_boolean:@PREFS_SYNC_PB + default:pbproxy_active]; + pbproxy_pasteboard_to_clipboard = [self prefs_get_boolean:@PREFS_SYNC_PB_TO_CLIPBOARD + default:pbproxy_pasteboard_to_clipboard]; + pbproxy_pasteboard_to_primary = [self prefs_get_boolean:@PREFS_SYNC_PB_TO_PRIMARY + default:pbproxy_pasteboard_to_primary]; + pbproxy_clipboard_to_pasteboard = [self prefs_get_boolean:@PREFS_SYNC_CLIPBOARD_TO_PB + default:pbproxy_clipboard_to_pasteboard]; + pbproxy_primary_on_grab = [self prefs_get_boolean:@PREFS_SYNC_PRIMARY_ON_SELECT + default:pbproxy_primary_on_grab]; } /* This will end up at the end of the responder chain. */ diff --git a/hw/xquartz/X11Controller.h b/hw/xquartz/X11Controller.h index c6c719461..a3e208673 100644 --- a/hw/xquartz/X11Controller.h +++ b/hw/xquartz/X11Controller.h @@ -49,6 +49,13 @@ IBOutlet NSButton *focus_on_new_window; IBOutlet NSButton *enable_auth; IBOutlet NSButton *enable_tcp; + IBOutlet NSButton *sync_pasteboard; + IBOutlet NSButton *sync_pasteboard_to_clipboard; + IBOutlet NSButton *sync_pasteboard_to_primary; + IBOutlet NSButton *sync_clipboard_to_pasteboard; + IBOutlet NSButton *sync_primary_immediately; + IBOutlet NSTextField *sync_text1; + IBOutlet NSTextField *sync_text2; IBOutlet NSPopUpButton *depth; IBOutlet NSMenuItem *x11_about_item; @@ -56,6 +63,7 @@ IBOutlet NSMenuItem *dock_window_separator; IBOutlet NSMenuItem *apps_separator; IBOutlet NSMenuItem *toggle_fullscreen_item; + IBOutlet NSMenuItem *copy_menu_item; IBOutlet NSMenu *dock_apps_menu; IBOutlet NSTableView *apps_table; diff --git a/hw/xquartz/X11Controller.m b/hw/xquartz/X11Controller.m index 3c12ea78b..db7ca2d08 100644 --- a/hw/xquartz/X11Controller.m +++ b/hw/xquartz/X11Controller.m @@ -54,6 +54,13 @@ #include #include +// This will live in pbproxy/x-selection.m when we integrage that into a server thread... for now, living here for testing the UI. +int pbproxy_active = YES; +int pbproxy_primary_on_grab = NO; // This is provided as an option for people who want it and has issues that won't ever be addressed to make it *always* work +int pbproxy_clipboard_to_pasteboard = YES; +int pbproxy_pasteboard_to_primary = YES; +int pbproxy_pasteboard_to_clipboard = YES; + @implementation X11Controller - (void) awakeFromNib @@ -622,9 +629,24 @@ objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row quartzUseSysBeep = [use_sysbeep intValue]; X11EnableKeyEquivalents = [enable_keyequivs intValue]; darwinSyncKeymap = [sync_keymap intValue]; + + pbproxy_active = [sync_pasteboard intValue]; + pbproxy_pasteboard_to_clipboard = [sync_pasteboard_to_clipboard intValue]; + pbproxy_pasteboard_to_primary = [sync_pasteboard_to_primary intValue]; + pbproxy_clipboard_to_pasteboard = [sync_clipboard_to_pasteboard intValue]; + pbproxy_primary_on_grab = [sync_primary_immediately intValue]; + + [sync_pasteboard_to_clipboard setEnabled:pbproxy_active]; + [sync_pasteboard_to_primary setEnabled:pbproxy_active]; + [sync_clipboard_to_pasteboard setEnabled:pbproxy_active]; + [sync_primary_immediately setEnabled:pbproxy_active]; + + // This doesn't seem to work. + [sync_text1 setEnabled:pbproxy_active]; + [sync_text2 setEnabled:pbproxy_active]; /* after adding prefs here, also add to [X11Application read_defaults] - and below */ + and prefs_show */ [NSApp prefs_set_boolean:@PREFS_FAKEBUTTONS value:darwinFakeButtons]; [NSApp prefs_set_boolean:@PREFS_SYSBEEP value:quartzUseSysBeep]; @@ -636,6 +658,12 @@ objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row [NSApp prefs_set_boolean:@PREFS_NO_AUTH value:![enable_auth intValue]]; [NSApp prefs_set_boolean:@PREFS_NO_TCP value:![enable_tcp intValue]]; [NSApp prefs_set_integer:@PREFS_DEPTH value:[depth selectedTag]]; + + [NSApp prefs_set_integer:@PREFS_SYNC_PB value:pbproxy_active]; + [NSApp prefs_set_integer:@PREFS_SYNC_PB_TO_CLIPBOARD value:pbproxy_pasteboard_to_clipboard]; + [NSApp prefs_set_integer:@PREFS_SYNC_PB_TO_PRIMARY value:pbproxy_pasteboard_to_primary]; + [NSApp prefs_set_integer:@PREFS_SYNC_CLIPBOARD_TO_PB value:pbproxy_clipboard_to_pasteboard]; + [NSApp prefs_set_integer:@PREFS_SYNC_PRIMARY_ON_SELECT value:pbproxy_primary_on_grab]; system("killall -HUP quartz-wm"); @@ -656,7 +684,22 @@ objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row [enable_tcp setIntValue:![NSApp prefs_get_boolean:@PREFS_NO_TCP default:NO]]; [depth selectItemAtIndex:[depth indexOfItemWithTag:[NSApp prefs_get_integer:@PREFS_DEPTH default:-1]]]; - + + [sync_pasteboard setIntValue:pbproxy_active]; + [sync_pasteboard_to_clipboard setIntValue:pbproxy_pasteboard_to_clipboard]; + [sync_pasteboard_to_primary setIntValue:pbproxy_pasteboard_to_primary]; + [sync_clipboard_to_pasteboard setIntValue:pbproxy_clipboard_to_pasteboard]; + [sync_primary_immediately setIntValue:pbproxy_primary_on_grab]; + + [sync_pasteboard_to_clipboard setEnabled:pbproxy_active]; + [sync_pasteboard_to_primary setEnabled:pbproxy_active]; + [sync_clipboard_to_pasteboard setEnabled:pbproxy_active]; + [sync_primary_immediately setEnabled:pbproxy_active]; + + // This doesn't seem to work. + [sync_text1 setEnabled:pbproxy_active]; + [sync_text2 setEnabled:pbproxy_active]; + [enable_fullscreen setIntValue:!quartzEnableRootless]; // TODO: Add fullscreen support [enable_fullscreen setEnabled:NO]; @@ -677,9 +720,11 @@ objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row - (OSX_BOOL) validateMenuItem:(NSMenuItem *)item { NSMenu *menu = [item menu]; - + if (item == toggle_fullscreen_item) return !quartzEnableRootless; + else if (item == copy_menu_item) // For some reason, this isn't working... + return NO; else if (menu == [window_separator menu] || menu == dock_menu || (menu == [x11_about_item menu] && [item tag] == 42)) return (AppleWMSelectedEvents () & AppleWMControllerNotifyMask) != 0; diff --git a/hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib b/hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib index 76148dacf..7490e0fa4 100644 --- a/hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib +++ b/hw/xquartz/bundle/Resources/English.lproj/main.nib/designable.nib @@ -1,19 +1,29 @@ - + 1050 - 9F30 - 670 + 9F33 + 674 949.34 352.00 YES - + + YES com.apple.InterfaceBuilder.CocoaPlugin + + YES + + YES + + + YES + + YES @@ -230,44 +240,6 @@ Edit YES - - - Undo - z - 1048576 - 2147483647 - - - - - - Redo - Z - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Cut - x - 1048576 - 2147483647 - - - Copy @@ -277,33 +249,6 @@ - - - Paste - v - 1048576 - 2147483647 - - - - - - Delete - - 1048576 - 2147483647 - - - - - - Select All - a - 1048576 - 2147483647 - - - @@ -447,7 +392,7 @@ 3 2 - {{266, 392}, {484, 280}} + {{266, 364}, {484, 308}} 1350041600 X11 Preferences NSPanel @@ -457,14 +402,14 @@ {3.40282e+38, 3.40282e+38} {320, 240} - + 256 YES 256 - {{13, 10}, {458, 264}} + {{13, 10}, {458, 292}} YES @@ -480,7 +425,7 @@ 256 - {{18, 182}, {402, 18}} + {{18, 210}, {402, 18}} YES @@ -507,7 +452,7 @@ 256 - {{36, 32}, {385, 31}} + {{36, 60}, {385, 31}} YES @@ -543,7 +488,7 @@ 256 - {{36, 134}, {385, 42}} + {{36, 162}, {385, 42}} YES @@ -560,7 +505,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{18, 69}, {402, 18}} + {{18, 97}, {402, 18}} YES @@ -581,7 +526,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{36, 98}, {385, 14}} + {{36, 126}, {385, 14}} YES @@ -597,7 +542,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{18, 118}, {402, 18}} + {{18, 146}, {402, 18}} YES @@ -616,7 +561,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg - {{10, 33}, {438, 218}} + {{10, 33}, {438, 246}} Input @@ -635,7 +580,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{18, 55}, {402, 18}} + {{18, 83}, {402, 18}} YES @@ -656,7 +601,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{36, 21}, {385, 28}} + {{36, 49}, {385, 28}} YES @@ -672,7 +617,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{74, 174}, {128, 26}} + {{74, 202}, {128, 26}} YES @@ -763,7 +708,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{17, 177}, {55, 20}} + {{17, 205}, {55, 20}} YES @@ -779,7 +724,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{36, 155}, {392, 14}} + {{36, 183}, {392, 14}} YES @@ -795,7 +740,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{18, 121}, {409, 23}} + {{18, 149}, {409, 23}} YES @@ -816,7 +761,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{36, 84}, {385, 31}} + {{36, 112}, {385, 31}} YES @@ -830,12 +775,183 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg - {{10, 33}, {438, 218}} + {{10, 33}, {438, 246}} Output + + + 2 + + + + 256 + + YES + + + 256 + {{18, 222}, {409, 23}} + + YES + + 67239424 + 0 + Enable syncing + + + 1211912703 + 2 + + + + 200 + 25 + + + + + 256 + {{36, 188}, {385, 28}} + + YES + + 67239424 + 4194304 + RW5hYmxlcyB0aGUgImNvcHkiIG1lbnUgaXRlbSBhbmQgYWxsb3dzIGZvciBzeW5jaW5nIGJldHdlZW4g +dGhlIE9TWCBQYXN0ZWJvYXJkIGFuZCB0aGUgWDExIENMSVBCT0FSRCBhbmQgUFJJTUFSWSBidWZmZXJz +Lg + + + + + + + + + 256 + {{34, 96}, {409, 23}} + + YES + + 67239424 + 0 + Update CLIPBOARD when Pasteboard changes. + + + 1211912703 + 2 + + + + 200 + 25 + + + + + 256 + {{34, 71}, {409, 23}} + + YES + + 67239424 + 0 + Update PRIMARY (middle-click) when Pasteboard changes. + + + 1211912703 + 2 + + + + 200 + 25 + + + + + 256 + {{34, 46}, {409, 23}} + + YES + + 67239424 + 0 + Update Pasteboard immediately when new text is selected. + + + 1211912703 + 2 + + + + 200 + 25 + + + + + 256 + {{34, 159}, {409, 23}} + + YES + + 67239424 + 0 + Update Pasteboard when CLIPBOARD changes. + + + 1211912703 + 2 + + + + 200 + 25 + + + + + 256 + {{48, 125}, {385, 28}} + + YES + + 67239424 + 4194304 + Disable this option if you want to use xclipboard, klipper, or any other X11 clipboard manager. + + + + + + + + + 256 + {{48, 14}, {370, 28}} + + YES + + 67239424 + 4194304 + Due to limitations in the X11 protocol, this option may not always work in some applications. + + + + + + + + {{10, 33}, {438, 246}} + + Pasteboard + + + 2 @@ -848,7 +964,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{15, 184}, {402, 18}} + {{15, 212}, {402, 18}} YES @@ -869,7 +985,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{23, 147}, {385, 31}} + {{23, 175}, {385, 31}} YES @@ -885,7 +1001,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{15, 123}, {402, 18}} + {{15, 151}, {402, 18}} YES @@ -906,7 +1022,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{23, 100}, {385, 17}} + {{23, 128}, {385, 17}} YES @@ -922,7 +1038,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{15, 79}, {402, 18}} + {{15, 107}, {402, 18}} YES @@ -943,7 +1059,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{23, 45}, {385, 28}} + {{23, 73}, {385, 28}} YES @@ -957,7 +1073,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg - {{10, 33}, {438, 218}} + {{10, 33}, {438, 246}} Windows @@ -972,7 +1088,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{18, 182}, {402, 18}} + {{18, 210}, {402, 18}} YES @@ -993,7 +1109,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{18, 105}, {402, 18}} + {{18, 133}, {402, 18}} YES @@ -1014,7 +1130,7 @@ IG9yIHJpZ2h0IG1vdXNlIGJ1dHRvbnMuCg 256 - {{36, 134}, {385, 42}} + {{36, 162}, {385, 42}} YES @@ -1032,7 +1148,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 256 - {{36, 57}, {385, 42}} + {{36, 85}, {385, 42}} YES @@ -1048,7 +1164,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 256 - {{20, -44}, {404, 14}} + {{20, -16}, {404, 14}} YES @@ -1062,7 +1178,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 - {{10, 33}, {438, 218}} + {{10, 33}, {438, 246}} Security @@ -1080,10 +1196,11 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 - {484, 280} + {484, 308} + {{0, 0}, {1280, 938}} - {213, 129} + {320, 262} {3.40282e+38, 3.40282e+38} x11_prefs @@ -1100,7 +1217,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 {3.40282e+38, 3.40282e+38} {320, 240} - + 256 YES @@ -1394,7 +1511,6 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 {454, 271} - {{0, 0}, {1280, 938}} {320, 262} @@ -1459,46 +1575,6 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 YES - - - cut: - - - - 175 - - - - paste: - - - - 176 - - - - redo: - - - - 178 - - - - selectAll: - - - - 179 - - - - undo: - - - - 180 - copy: @@ -1507,14 +1583,6 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 181 - - - delete: - - - - 195 - minimize_window: @@ -1939,6 +2007,110 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 300394 + + + copy_menu_item + + + + 300443 + + + + sync_pasteboard + + + + 300444 + + + + sync_clipboard_to_pasteboard + + + + 300461 + + + + sync_pasteboard_to_clipboard + + + + 300462 + + + + sync_pasteboard_to_primary + + + + 300463 + + + + sync_primary_immediately + + + + 300464 + + + + prefs_changed: + + + + 300465 + + + + prefs_changed: + + + + 300466 + + + + prefs_changed: + + + + 300467 + + + + prefs_changed: + + + + 300468 + + + + prefs_changed: + + + + 300469 + + + + sync_text1 + + + + 300470 + + + + sync_text2 + + + + 300471 + @@ -2161,57 +2333,15 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 YES - - - - - - - - - 156 - - - 157 - - 158 - - - - - 160 - - - - - 164 - - - - - 171 - - - - - 172 - - - - - 173 - - - 269 @@ -2298,6 +2428,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 + @@ -2959,6 +3090,143 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 + + 300421 + + + YES + + + + + + 300422 + + + YES + + + + + + + + + + + + + 300423 + + + YES + + + + + + 300424 + + + YES + + + + + + 300440 + + + + + 300441 + + + + + 300447 + + + YES + + + + + + 300450 + + + + + 300451 + + + YES + + + + + + 300452 + + + + + 300453 + + + YES + + + + + + 300454 + + + + + 300455 + + + YES + + + + + + 300456 + + + + + 300457 + + + YES + + + + + + 300458 + + + + + 300459 + + + YES + + + + + + 300460 + + + @@ -2969,7 +3237,29 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 -2.IBPluginDependency -3.IBPluginDependency -3.ImportedFromIB2 + 100292.IBPluginDependency + 100293.IBPluginDependency + 100295.IBPluginDependency 100295.IBShouldRemoveOnLegacySave + 100310.IBPluginDependency + 100363.IBPluginDependency + 100364.IBPluginDependency + 100365.IBPluginDependency + 100368.IBPluginDependency + 100369.IBPluginDependency + 100370.IBPluginDependency + 100371.IBPluginDependency + 100372.IBPluginDependency + 100374.IBPluginDependency + 100375.IBPluginDependency + 100376.IBPluginDependency + 100377.IBPluginDependency + 100379.IBPluginDependency + 100382.IBPluginDependency + 100385.IBPluginDependency + 100386.IBPluginDependency + 100541.IBPluginDependency + 100543.IBPluginDependency 129.IBPluginDependency 129.ImportedFromIB2 130.IBPluginDependency @@ -2990,31 +3280,19 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 149.ImportedFromIB2 150.IBPluginDependency 150.ImportedFromIB2 - 156.IBPluginDependency - 156.ImportedFromIB2 157.IBPluginDependency 157.ImportedFromIB2 - 158.IBPluginDependency - 158.ImportedFromIB2 - 160.IBPluginDependency - 160.ImportedFromIB2 163.IBPluginDependency 163.ImportedFromIB2 - 164.IBPluginDependency - 164.ImportedFromIB2 + 169.IBEditorWindowLastContentRect 169.IBPluginDependency 169.ImportedFromIB2 169.editorWindowContentRectSynchronizationRect - 171.IBPluginDependency - 171.ImportedFromIB2 - 172.IBPluginDependency - 172.ImportedFromIB2 - 173.IBPluginDependency - 173.ImportedFromIB2 19.IBPluginDependency 19.ImportedFromIB2 196.IBPluginDependency 196.ImportedFromIB2 + 200295.IBPluginDependency 200295.IBShouldRemoveOnLegacySave 203.IBPluginDependency 203.ImportedFromIB2 @@ -3022,11 +3300,11 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 204.ImportedFromIB2 23.IBPluginDependency 23.ImportedFromIB2 + 24.IBEditorWindowLastContentRect 24.IBPluginDependency 24.ImportedFromIB2 24.editorWindowContentRectSynchronizationRect 244.IBEditorWindowLastContentRect - 244.IBPluginDependency 244.IBWindowTemplateEditedContentRect 244.ImportedFromIB2 244.editorWindowContentRectSynchronizationRect @@ -3038,13 +3316,13 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 245.ImportedFromIB2 269.IBPluginDependency 269.ImportedFromIB2 + 270.IBEditorWindowLastContentRect 270.IBPluginDependency 270.ImportedFromIB2 270.editorWindowContentRectSynchronizationRect 272.IBPluginDependency 272.ImportedFromIB2 285.IBEditorWindowLastContentRect - 285.IBPluginDependency 285.IBViewEditorWindowController.showingBoundsRectangles 285.IBViewEditorWindowController.showingLayoutRectangles 285.IBWindowTemplateEditedContentRect @@ -3072,6 +3350,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 297.ImportedFromIB2 298.IBPluginDependency 298.ImportedFromIB2 + 300295.IBPluginDependency 300295.IBShouldRemoveOnLegacySave 300330.IBPluginDependency 300330.ImportedFromIB2 @@ -3083,14 +3362,48 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 300358.ImportedFromIB2 300359.IBPluginDependency 300359.ImportedFromIB2 + 300360.IBPluginDependency + 300361.IBPluginDependency 300362.IBPluginDependency 300362.ImportedFromIB2 + 300363.IBPluginDependency 300364.IBPluginDependency 300364.ImportedFromIB2 + 300365.IBPluginDependency 300368.IBPluginDependency 300368.ImportedFromIB2 + 300369.IBPluginDependency 300370.IBPluginDependency 300370.ImportedFromIB2 + 300371.IBPluginDependency + 300421.IBPluginDependency + 300421.ImportedFromIB2 + 300422.IBPluginDependency + 300422.ImportedFromIB2 + 300423.IBPluginDependency + 300423.ImportedFromIB2 + 300424.IBPluginDependency + 300424.ImportedFromIB2 + 300440.IBPluginDependency + 300441.IBPluginDependency + 300447.IBPluginDependency + 300447.ImportedFromIB2 + 300450.IBPluginDependency + 300451.IBPluginDependency + 300451.ImportedFromIB2 + 300452.IBPluginDependency + 300453.IBPluginDependency + 300453.ImportedFromIB2 + 300454.IBPluginDependency + 300455.IBPluginDependency + 300455.ImportedFromIB2 + 300456.IBPluginDependency + 300457.IBPluginDependency + 300457.ImportedFromIB2 + 300458.IBPluginDependency + 300459.IBPluginDependency + 300459.ImportedFromIB2 + 300460.IBPluginDependency 305.IBPluginDependency 305.ImportedFromIB2 310.IBPluginDependency @@ -3210,21 +3523,29 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3245,17 +3566,19 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 com.apple.InterfaceBuilder.CocoaPlugin - {{202, 626}, {154, 153}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{168, 821}, {113, 23}} com.apple.InterfaceBuilder.CocoaPlugin + {{202, 626}, {154, 153}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3263,29 +3586,29 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 com.apple.InterfaceBuilder.CocoaPlugin + {{204, 683}, {315, 153}} com.apple.InterfaceBuilder.CocoaPlugin {{271, 666}, {301, 153}} - {{423, 622}, {484, 280}} - com.apple.InterfaceBuilder.CocoaPlugin - {{423, 622}, {484, 280}} + {{437, 749}, {484, 308}} + {{437, 749}, {484, 308}} {{184, 290}, {481, 345}} - + {3.40282e+38, 3.40282e+38} - {213, 107} + {320, 240} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + {{58, 803}, {155, 33}} com.apple.InterfaceBuilder.CocoaPlugin {{100, 746}, {155, 33}} com.apple.InterfaceBuilder.CocoaPlugin {{68, 585}, {454, 271}} - com.apple.InterfaceBuilder.CocoaPlugin {{68, 585}, {454, 271}} @@ -3297,7 +3620,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 {320, 240} com.apple.InterfaceBuilder.CocoaPlugin - {{0, 836}, {336, 20}} + {{8, 844}, {336, 20}} com.apple.InterfaceBuilder.CocoaPlugin {{67, 819}, {336, 20}} @@ -3313,6 +3636,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3325,14 +3649,20 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3341,18 +3671,26 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3430,7 +3768,27 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 com.apple.InterfaceBuilder.CocoaPlugin - {{12, 633}, {218, 203}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{20, 641}, {218, 203}} com.apple.InterfaceBuilder.CocoaPlugin {{79, 616}, {218, 203}} @@ -3466,7 +3824,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 - 300420 + 300471 @@ -3551,6 +3909,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 apps_separator apps_table click_through + copy_menu_item depth dock_apps_menu dock_menu @@ -3563,7 +3922,14 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 focus_follows_mouse focus_on_new_window prefs_panel + sync_clipboard_to_pasteboard sync_keymap + sync_pasteboard + sync_pasteboard_to_clipboard + sync_pasteboard_to_primary + sync_primary_immediately + sync_text1 + sync_text2 toggle_fullscreen_item use_sysbeep window_separator @@ -3574,6 +3940,7 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 NSMenuItem NSTableView NSButton + NSMenuItem NSPopUpButton NSMenu NSMenu @@ -3587,6 +3954,13 @@ d2hpY2ggbWF5IHByZXZlbnQgWDExIGFwcGxpY2F0aW9ucyBmcm9tIGxhdW5jaGluZy4 NSButton NSPanel NSButton + NSButton + NSButton + NSButton + NSButton + NSButton + NSTextField + NSTextField NSMenuItem NSButton NSMenuItem diff --git a/hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib b/hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib index 197c1be19..c5495681f 100644 Binary files a/hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib and b/hw/xquartz/bundle/Resources/English.lproj/main.nib/keyedobjects.nib differ diff --git a/hw/xquartz/darwin.h b/hw/xquartz/darwin.h index da5ad74a1..e45ab19f3 100644 --- a/hw/xquartz/darwin.h +++ b/hw/xquartz/darwin.h @@ -89,6 +89,12 @@ extern unsigned int darwinDesiredWidth, darwinDesiredHeight; extern int darwinDesiredDepth; extern int darwinDesiredRefresh; +extern int pbproxy_active; +extern int pbproxy_primary_on_grab; +extern int pbproxy_clipboard_to_pasteboard; +extern int pbproxy_pasteboard_to_primary; +extern int pbproxy_pasteboard_to_clipboard; + // location of X11's (0,0) point in global screen coordinates extern int darwinMainScreenX; extern int darwinMainScreenY; diff --git a/hw/xquartz/doc/Xquartz.man.pre b/hw/xquartz/doc/Xquartz.man.pre index 100589e08..a9f9a589b 100644 --- a/hw/xquartz/doc/Xquartz.man.pre +++ b/hw/xquartz/doc/Xquartz.man.pre @@ -56,6 +56,21 @@ defaults to the depth of the main display. .TP 8 .B defaults write org.x.X11 sync_keymap -boolean true Keep the X11 keymap up to date with the OSX system keymap. +.TP 8 +.B defaults write org.x.X11 sync_pasteboard -boolean true +Enable syncing between the OSX pasteboard and clipboard/primary selection buffers in X11. This option needs to be true for any of the other pasteboard sync options to have an effect. +.TP 8 +.B defaults write org.x.X11 sync_pasteboard_to_clipboard -boolean true +Update the X11 CLIPBOARD when the OSX NSPasteboard is updated. +.TP 8 +.B defaults write org.x.X11 sync_pasteboard_to_primary -boolean true +Update the the X11 PRIMARY buffer when the OSX NSPasteboard is updated. +.TP 8 +.B defaults write org.x.X11 sync_clipboard_to_pasteboard -boolean true +Update the the OSX NSPasteboard when the X11 CLIPBOARD is updated. Note that enabling this option causes the clipboard synchronization to act as a clipboard manager in X11. This makes it impossible to use xclipboard, klipper, or any other such clipboard managers. If you want to use any of these programs, you must disable this option. +.TP 8 +.B defaults write org.x.X11 sync_primary_on_select -boolean true +This option defaults to false and is provided only "for experts." It updates the NSPasteboard whenever a new X11 selection is made (rather than requiring you to hit cmd-c to copy the selection to the NSPasteboard). Since the X11 protocol does not require applications to send notification when they change selection, this might not work in all cases (if you run into this problem, try selecting text in another application first, then selecting the text you want). .SH OPTIONS .PP In addition to the normal server options described in the \fIXserver(1)\fP -- cgit v1.2.3