Как правильно получить поворот экрана программно?

Мне нужно программно получить поворот экрана. Я использую Qt и расширение X XRandr. Я пытаюсь сделать следующее:

Display *dpy;
Window root;
XRRScreenConfiguration *conf;
Rotation rotation;

int screen;

dpy = QX11Info::display();
root =  QX11Info::appRootWindow();
conf = XRRGetScreenInfo(dpy, root);
screen = DefaultScreen(dpy);
XRRRotations(dpy, screen, &rotation);

qDebug() << "CURRENT ROTATION:" << rotation;

Проблема в том, что независимо от текущей ориентации экрана, установленной в приложении «Настройки экрана» из Ubuntu, выход CURRENT ROTATION всегда равен 1.

Кто-нибудь знает почему?

Спасибо

0
задан 18 February 2013 в 16:28

1 ответ

Я наконец нашел ответ на этот вопрос. Я использую Qt. Некоторые из звонков из Qt, чтобы получить окно и экран X11.

Display *dpy;
Window root = this->winId();
dpy = QX11Info::display();

XRRScreenResources *scrres = XRRGetScreenResources(dpy, root);
XRRCrtcInfo *crtcInfo = XRRGetCrtcInfo(dpy, scrres, *scrres->crtcs);

crtcInfo->rotation can be 1, 2, 4, or 8

Надеюсь, это поможет кому-то в будущем.

0
ответ дан 18 February 2013 в 16:28

Другие вопросы по тегам:

Похожие вопросы: