aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlp Aker2011-07-28 14:29:09 -0400
committerChong Yidong2011-07-28 14:29:09 -0400
commitd8c2fa787973fc6d0d8c3693b97ddbba622ca41f (patch)
treed1316769d33023fb31f55cc71dec6e32fe3e071e /src
parent4843aac304884a75581bcc27454cb9fc4353f036 (diff)
downloademacs-d8c2fa787973fc6d0d8c3693b97ddbba622ca41f.tar.gz
emacs-d8c2fa787973fc6d0d8c3693b97ddbba622ca41f.zip
Fix image fg and bg colors on NS (Bug#9175).
* nsfns.m (x_set_foreground_color): Set f->foreground_pixel when setting frame foreground color. (x_set_background_color): Likewise.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog8
-rw-r--r--src/nsfns.m13
2 files changed, 18 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 24b36e7ff61..259ccb90cfe 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,4 +1,10 @@
12011-07-26 Alp Aker <alp.tekin.aker@gmail.com> 12011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
2
3 * nsfns.m (x_set_foreground_color): Set f->foreground_pixel when
4 setting frame foreground color (Bug#9175).
5 (x_set_background_color): Likewise.
6
72011-07-28 Alp Aker <alp.tekin.aker@gmail.com>
2 8
3 Implement strike-through and overline on NextStep (Bug#8863). 9 Implement strike-through and overline on NextStep (Bug#8863).
4 10
diff --git a/src/nsfns.m b/src/nsfns.m
index 0452086201e..85246a4c25f 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -321,6 +321,7 @@ static void
321x_set_foreground_color (struct frame *f, Lisp_Object arg, Lisp_Object oldval) 321x_set_foreground_color (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
322{ 322{
323 NSColor *col; 323 NSColor *col;
324 CGFloat r, g, b, alpha;
324 325
325 if (ns_lisp_to_color (arg, &col)) 326 if (ns_lisp_to_color (arg, &col))
326 { 327 {
@@ -332,6 +333,10 @@ x_set_foreground_color (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
332 [f->output_data.ns->foreground_color release]; 333 [f->output_data.ns->foreground_color release];
333 f->output_data.ns->foreground_color = col; 334 f->output_data.ns->foreground_color = col;
334 335
336 [col getRed: &r green: &g blue: &b alpha: &alpha];
337 FRAME_FOREGROUND_PIXEL (f) =
338 ARGB_TO_ULONG ((int)(alpha*0xff), (int)(r*0xff), (int)(g*0xff), (int)(b*0xff));
339
335 if (FRAME_NS_VIEW (f)) 340 if (FRAME_NS_VIEW (f))
336 { 341 {
337 update_face_from_frame_parameter (f, Qforeground_color, arg); 342 update_face_from_frame_parameter (f, Qforeground_color, arg);
@@ -348,7 +353,7 @@ x_set_background_color (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
348 struct face *face; 353 struct face *face;
349 NSColor *col; 354 NSColor *col;
350 NSView *view = FRAME_NS_VIEW (f); 355 NSView *view = FRAME_NS_VIEW (f);
351 float alpha; 356 CGFloat r, g, b, alpha;
352 357
353 if (ns_lisp_to_color (arg, &col)) 358 if (ns_lisp_to_color (arg, &col))
354 { 359 {
@@ -364,10 +369,14 @@ x_set_background_color (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
364 [col retain]; 369 [col retain];
365 [f->output_data.ns->background_color release]; 370 [f->output_data.ns->background_color release];
366 f->output_data.ns->background_color = col; 371 f->output_data.ns->background_color = col;
372
373 [col getRed: &r green: &g blue: &b alpha: &alpha];
374 FRAME_BACKGROUND_PIXEL (f) =
375 ARGB_TO_ULONG ((int)(alpha*0xff), (int)(r*0xff), (int)(g*0xff), (int)(b*0xff));
376
367 if (view != nil) 377 if (view != nil)
368 { 378 {
369 [[view window] setBackgroundColor: col]; 379 [[view window] setBackgroundColor: col];
370 alpha = [col alphaComponent];
371 380
372 if (alpha != 1.0) 381 if (alpha != 1.0)
373 [[view window] setOpaque: NO]; 382 [[view window] setOpaque: NO];