Определить координаты окна, xlib. (Не определяются %), всё время 0/0.)

Модератор: Модераторы разделов

edgbla
Сообщения: 5
ОС: Fedora

Определить координаты окна, xlib.

Сообщение edgbla »

Использовал и
XGetGeometry( dpy, win, &root, &x, &y, &width, &height, &border_width, &depth );
и
XGetWindowAttributes( dpy, win, &windowattributes );

Странно то что остальные параметры получаются и верны,
те же ширина и высота окна например,
а в x/y всегда 0, куда бы не переместили окно.

Помогите, надо знать где окно. :)
Спасибо сказали:
Аватара пользователя
Red User
Сообщения: 229
ОС: Debian

Re: Определить координаты окна, xlib.

Сообщение Red User »

См. "Getting Info About A Window" здесь.
В общем, надо как-то так:

Код: Выделить всё

    if (!XQueryTree(display, win, &root, &parent, &child_arr, &nchild))
        goto err;
    XFree(child_arr);
    if (!XGetWindowAttributes(display, win, &win_attr))
        goto err;
    if (!XTranslateCoordinates(display, parent, root, win_attr.x, win_attr.y,
            &x, &y, &child))
        goto err;
    printf("x = %d; y = %d\n", x, y);
А ведь когда-то не боялись мы программы любой,
И с одним лишь debug'ом выходили на бой,
И искусно написанный вирус встречали как брата
Спасибо сказали:
edgbla
Сообщения: 5
ОС: Fedora

Re: Определить координаты окна, xlib.

Сообщение edgbla »

Благодарю, всё в лучшем виде, если не считать что для такой мелочи надо 4 функции. :)
но не важно, оч надо.
Спасибо сказали: