- s->attr_mask = ATTR_INVALID;
- if (HAVE_COLOR_QD())
- DeviceLoop(s->window->visRgn, &mac_set_attr_mask_upp, (long)s, 0);
- else
- mac_set_attr_mask(1, 0, NULL, (long)s);
+ if (HAVE_COLOR_QD()) {
+ s->term->attr_mask = 0;
+ SetPort(s->window);
+ myrect = (*s->window->visRgn)->rgnBBox;
+ LocalToGlobal((Point *)&myrect.top);
+ LocalToGlobal((Point *)&myrect.bottom);
+ for (gdh = GetDeviceList();
+ gdh != NULL;
+ gdh = GetNextDevice(gdh)) {
+ if (TestDeviceAttribute(gdh, screenDevice) &&
+ TestDeviceAttribute(gdh, screenActive) &&
+ SectRect(&(*gdh)->gdRect, &myrect, &tmprect)) {
+ switch ((*(*gdh)->gdPMap)->pixelSize) {
+ case 1:
+ if (s->cfg.bold_colour)
+ s->term->attr_mask |= ~(ATTR_COLOURS |
+ (s->cfg.bold_colour ? ATTR_BOLD : 0));
+ break;
+ case 2:
+ s->term->attr_mask |= ~ATTR_COLOURS;
+ break;
+ default:
+ s->term->attr_mask = ~0;
+ return; /* No point checking more screens. */
+ }
+ }
+ }
+ } else
+ s->term->attr_mask = ~(ATTR_COLOURS |
+ (s->cfg.bold_colour ? ATTR_BOLD : 0));