Pick up default selection color on OSX when user defaults are not set.

* lisp/faces.el (region): Change ns_selection_color to
ns_selection_fg_color, add ns_selection_bg_color.

* src/nsterm.h (NS_SELECTION_BG_COLOR_DEFAULT): Renamed from
NS_SELECTION_COLOR_DEFAULT.
(NS_SELECTION_FG_COLOR_DEFAULT): New.

* src/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.
This commit is contained in:
Jan Djärv 2013-09-28 12:01:50 +02:00
parent 0d2647e645
commit 1610938f74
5 changed files with 54 additions and 13 deletions

View file

@ -1,3 +1,8 @@
2013-09-28 Jan Djärv <jan.h.d@swipnet.se>
* faces.el (region): Change ns_selection_color to
ns_selection_fg_color, add ns_selection_bg_color.
2013-09-28 Leo Liu <sdl.web@gmail.com>
* progmodes/octave.el (inferior-octave-completion-table)

View file

@ -2259,7 +2259,8 @@ terminal type to a different value."
: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))

View file

@ -1,3 +1,15 @@
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

View file

@ -911,7 +911,8 @@ extern char gnustep_base_version[]; /* version tracking */
#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 */

View file

@ -179,9 +179,6 @@ Updated by Christian Limpach (chris@nice.ch)
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 */
@ -1454,11 +1451,41 @@ Free a pool and temporary objects it refers to (callable from C)
/*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"])
{
nsname = ns_selection_color;
name = [ns_selection_color UTF8String];
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"])
{
/* 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';
@ -4168,11 +4195,6 @@ Needs to be here because ns_initialize_display_info () uses AppKit classes.
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"];