:foreground "gtk_selection_fg_color"
:background "gtk_selection_bg_color")
(((class color) (min-colors 88) (background light) (type ns))
- :background "ns_selection_color")
+ :foreground "ns_selection_fg_color"
+ :background "ns_selection_bg_color")
(((class color) (min-colors 88) (background light))
:background "lightgoldenrod2")
(((class color) (min-colors 16) (background dark))
+2013-09-28 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (ns_selection_color): Remove.
+ (ns_get_color): Check for ns_selection_(fg|bg)_color using
+ NSColor selectedText(Background)Color. Only for COCOA.
+ (ns_term_init): Remove assignment of ns_selection_color, logic
+ moved to ns_get_color.
+
+ * nsterm.h (NS_SELECTION_BG_COLOR_DEFAULT): Renamed from
+ NS_SELECTION_COLOR_DEFAULT.
+ (NS_SELECTION_FG_COLOR_DEFAULT): New.
+
2013-09-28 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (Fdump_tool_bar_row): Ifdef away the body if 'struct
#define NS_SCROLL_BAR_WIDTH_DEFAULT [EmacsScroller scrollerWidth]
/* This is to match emacs on other platforms, ugly though it is. */
-#define NS_SELECTION_COLOR_DEFAULT @"LightGoldenrod2";
+#define NS_SELECTION_BG_COLOR_DEFAULT @"LightGoldenrod2";
+#define NS_SELECTION_FG_COLOR_DEFAULT @"Black";
#define RESIZE_HANDLE_SIZE 12
/* Little utility macros */
no way to control this behavior. */
float ns_antialias_threshold;
-/* Used to pick up AppleHighlightColor on OS X */
-NSString *ns_selection_color;
-
NSArray *ns_send_types =0, *ns_return_types =0, *ns_drag_types =0;
NSString *ns_app_name = @"Emacs"; /* default changed later */
/*fprintf (stderr, "ns_get_color: '%s'\n", name); */
block_input ();
- if ([nsname isEqualToString: @"ns_selection_color"])
+#ifdef NS_IMPL_COCOA
+ if ([nsname isEqualToString: @"ns_selection_bg_color"])
+ {
+ NSString *defname = [[NSUserDefaults standardUserDefaults]
+ stringForKey: @"AppleHighlightColor"];
+
+ if (defname != nil)
+ nsname = defname;
+ else if ((new = [NSColor selectedTextBackgroundColor]) != nil)
+ {
+ *col = [new colorUsingColorSpaceName: NSCalibratedRGBColorSpace];
+ unblock_input ();
+ return 0;
+ }
+ else
+ nsname = NS_SELECTION_BG_COLOR_DEFAULT;
+
+ name = [nsname UTF8String];
+ }
+ else if ([nsname isEqualToString: @"ns_selection_fg_color"])
{
- nsname = ns_selection_color;
- name = [ns_selection_color UTF8String];
+ /* NOTE: OSX applications normally don't set foreground selection, but
+ text may be unreadable if we don't.
+ */
+ if ((new = [NSColor selectedTextColor]) != nil)
+ {
+ *col = [new colorUsingColorSpaceName: NSCalibratedRGBColorSpace];
+ unblock_input ();
+ return 0;
+ }
+
+ nsname = NS_SELECTION_FG_COLOR_DEFAULT;
+ name = [nsname UTF8String];
}
+#endif // NS_IMPL_COCOA
/* First, check for some sort of numeric specification. */
hex[0] = '\0';
ns_antialias_threshold = NILP (tmp) ? 10.0 : XFLOATINT (tmp);
}
- ns_selection_color = [[NSUserDefaults standardUserDefaults]
- stringForKey: @"AppleHighlightColor"];
- if (ns_selection_color == nil)
- ns_selection_color = NS_SELECTION_COLOR_DEFAULT;
-
{
NSColorList *cl = [NSColorList colorListNamed: @"Emacs"];