macOS CGConfigureDisplayOrigin не работает должным образом - PullRequest
0 голосов
/ 11 октября 2019

У меня есть несколько мониторов, и я пытаюсь изменить основной дисплей с помощью Quarz Display API, моя функция

int setDisplayOrigin(CGDirectDisplayID display, int x, int y) {
    CGDisplayConfigRef cfg;
    auto ret = CGBeginDisplayConfiguration(&cfg);
    if (ret != kCGErrorSuccess) return ret;
    ret = CGConfigureDisplayOrigin(cfg, display, x, y);
    if (ret != kCGErrorSuccess) return ret;
    ret = CGCompleteDisplayConfiguration(cfg, kCGConfigureForAppOnly);
    return ret;
}

, чтобы установить конкретный монитор в качестве основного, я вызываю эту функцию с 0 с помощью x иy

setDisplayOrigin(directDisplayID, 0, 0)

macOS реорганизовала дисплеи, но связанный экран не будет иметь начало с (0, 0), когда я снова проверю его границы, и каждое возвращенное значение будет успешным (KCGErrorSuccess)

1 Ответ

0 голосов
/ 13 октября 2019

Спасибо подсказке Кена, измените положение текущего основного дисплея, а затем установите начало целевого дисплея на (0, 0), что является способом заставить его работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...