Mercurial > emacs
changeset 56348:550df8e67006
* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
instead of CGMainDisplayID (only in OSX 10.2 and later).
author | Jan Djärv <jan.h.d@swipnet.se> |
---|---|
date | Mon, 05 Jul 2004 07:01:02 +0000 |
parents | 8aa767f7d605 |
children | 8d4253b23d7b |
files | src/ChangeLog src/macterm.c |
diffstat | 2 files changed, 20 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Mon Jul 05 01:58:59 2004 +0000 +++ b/src/ChangeLog Mon Jul 05 07:01:02 2004 +0000 @@ -1,3 +1,8 @@ +2004-07-05 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + + * macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList + instead of CGMainDisplayID (only in OSX 10.2 and later). + 2004-07-04 John Paul Wallington <jpw@gnu.org> * fileio.c (read_file_name_completion_ignore_case): New variable.
--- a/src/macterm.c Mon Jul 05 01:58:59 2004 +0000 +++ b/src/macterm.c Mon Jul 05 07:01:02 2004 +0000 @@ -8854,8 +8854,21 @@ dpyinfo->color_p = TestDeviceAttribute (main_device_handle, gdDevType); #ifdef MAC_OSX /* HasDepth returns true if it is possible to have a 32 bit display, - but this may not be what is actually used. Mac OSX can do better. */ - dpyinfo->n_planes = CGDisplayBitsPerPixel (CGMainDisplayID ()); + but this may not be what is actually used. Mac OSX can do better. + CGMainDisplayID is only available on OSX 10.2 and higher, but the + header for CGGetActiveDisplayList says that the first display returned + is the active one, so we use that. */ + { + CGDirectDisplayID disp_id[1]; + CGDisplayCount disp_count; + CGDisplayErr error_code; + + error_code = CGGetActiveDisplayList (1, disp_id, &disp_count); + if (error_code != 0) + error ("No display found, CGGetActiveDisplayList error %d", error_code); + + dpyinfo->n_planes = CGDisplayBitsPerPixel (disp_id[0]); + } #else for (dpyinfo->n_planes = 32; dpyinfo->n_planes > 0; dpyinfo->n_planes >>= 1) if (HasDepth (main_device_handle, dpyinfo->n_planes,