Есть 2 qt4 программы. Одна(A) встраивает(XEmbed) свой виджет в окно другой(B).
Необходимо:
- чтобы встроенный виджет получал все события мыши(изначально так и есть).
- чтобы встроенный виджет можно было перемещать мышью.
Перемещать встроенный виджет можно из программы B, но так как она не получает событий мыши для встроенного виджета, то мы не знаем когда это делать.
Варианты:
- IPC. Только если по другому не получится.
- XGrabPointer. Так как некоторые программы игнорируют XSendEvent не от сервера, то от этого варианта я отказался.
- XSelectInput. Сейчас пытаюсь с его помощью реализовать.
Столкнулся с проблемой - пытаюсь убрать у встраиваемого виджета ButtonPressMask, чтобы иметь возможность получать события нажатия клавиш мыши из приложения B, однако
XWindowAttributes wattr;
XSetWindowAttributes sattr;
XGetWindowAttributes(display, w, &wattr);
sattr.event_mask = wattr.all_event_masks & ~ButtonPressMask;
XChangeWindowAttributes(display, w, CWEventMask, &sattr);
XChangeWindowAttributes возвращает BadRequest. Что здесь не так?