diff options
| author | Alp Aker | 2011-07-28 14:29:09 -0400 |
|---|---|---|
| committer | Chong Yidong | 2011-07-28 14:29:09 -0400 |
| commit | d8c2fa787973fc6d0d8c3693b97ddbba622ca41f (patch) | |
| tree | d1316769d33023fb31f55cc71dec6e32fe3e071e /src | |
| parent | 4843aac304884a75581bcc27454cb9fc4353f036 (diff) | |
| download | emacs-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/ChangeLog | 8 | ||||
| -rw-r--r-- | src/nsfns.m | 13 |
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 @@ | |||
| 1 | 2011-07-26 Alp Aker <alp.tekin.aker@gmail.com> | 1 | 2011-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 | |||
| 7 | 2011-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 | |||
| 321 | x_set_foreground_color (struct frame *f, Lisp_Object arg, Lisp_Object oldval) | 321 | x_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]; |