mas-cgdisplayusesforcetogray.patch 1.3 KB

1234567891011121314151617181920212223242526272829
  1. From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
  2. From: Jeremy Apthorp <[email protected]>
  3. Date: Thu, 20 Sep 2018 17:49:24 -0700
  4. Subject: mas: avoid usage of CGDisplayUsesForceToGray
  5. Removes usage of the CGDisplayUsesForceToGray private API.
  6. diff --git a/ui/display/mac/screen_mac.mm b/ui/display/mac/screen_mac.mm
  7. index 21778ef0c7657937987fdc70bf9ceb9439aebf15..2f6e1390a3b824d80832e47f6c368e757e2d9806 100644
  8. --- a/ui/display/mac/screen_mac.mm
  9. +++ b/ui/display/mac/screen_mac.mm
  10. @@ -162,7 +162,17 @@ DisplayMac BuildDisplayForScreen(NSScreen* screen) {
  11. display.set_color_depth(Display::kDefaultBitsPerPixel);
  12. display.set_depth_per_component(Display::kDefaultBitsPerComponent);
  13. }
  14. +#ifdef MAS_BUILD
  15. + // This is equivalent to the CGDisplayUsesForceToGray() API as at 2018-08-06,
  16. + // but avoids usage of the private API.
  17. + CFStringRef app = CFSTR("com.apple.CoreGraphics");
  18. + CFStringRef key = CFSTR("DisplayUseForcedGray");
  19. + Boolean key_valid = false;
  20. + display.set_is_monochrome(
  21. + CFPreferencesGetAppBooleanValue(key, app, &key_valid));
  22. +#else
  23. display.set_is_monochrome(CGDisplayUsesForceToGray());
  24. +#endif
  25. if (auto display_link = ui::DisplayLinkMac::GetForDisplay(display_id))
  26. display.set_display_frequency(display_link->GetRefreshRate());