Как XGetWindowProperty() и XListProperties() связаны для определенного идентификатора окна

События "PropertyNotify" генерируются xServer для окна, скажем, с идентификатором var "win". Теперь я вызываю функцию XLIB XGetWindowProperty() а также XListProperties() для того же win-id, как указано ниже

    int getProp(Atom atom, Window win, unsigned long *nitems_ret, 
                unsigned char **prop_return, Atom *type_ret, int *format_ret)
    {
        Atom type;
        int format;
        unsigned long bytes_after_ret;

        if (!type_ret)
            type_ret=&type;

        if (!format_ret)
            format_ret=&format;


        XGetWindowProperty(m_display, win, atom, 0, 65536, 0, 
                           AnyPropertyType, type_ret, format_ret, 
                           nitems_ret, &bytes_after_ret, prop_return);

          // printing the content of variable "prop_return" suppose it's not empty 
                                                               -----------------(1)

       int nprops = 0;
       Atom *prorList = XListProperties(m_display, win, &nprops);

         // printing content of var "prorList"  ------------------------(2)

   };

теперь сравниваем выходные данные (1) и (2), поэтому должен ли выход (1) содержаться в (2) или нет. Пожалуйста, дайте основание для подтверждения ответа. Как я понял чтение из сети, что о XGetWindowProperty() что он возвращает требуемый тип свойства из свойства данного идентификатора окна и других приложений. Здесь для проверки я просто передаю аргумент AnyPropertyType,

Теперь я также вызываю функцию XListProperties() перечислить все атрибуты Atom данного win-id и распечатать их для сравнения с выводом XGetWindowProperty() (рассмотрите выход не NULL) но то, что я нахожу, что нет совпадения ч / б им. Теперь мой вопрос, откуда эти свойства появились в XGetWindowProperty() или вина лежит в моем понимании. Пожалуйста, объясните эти функции и разницу в их атрибутах. А также было бы очень полезно, если кто-то может порекомендовать хорошую книгу или ссылку на сайт для лучшего понимания.

Спасибо,

1 ответ

XListProperties перечисляет имена свойств. prop_return это значение свойства. Нет причин, по которым он должен содержаться в списке имен свойств. atom это имя этого свойства, и оно должно быть найдено в этом списке.

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