Russian Qt Forum
Сентябрь 29, 2024, 02:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [QT4+Linux(MCBC)] Охота за окнами в Linux (Шпион)  (Прочитано 1916 раз)
DpoHro
Гость
« : Июнь 02, 2010, 17:38 »

Я запускаю через QProcess  VncViewer-ы, много VncViewer-ов, так как средств управления окнами вьюверов нет, а надо их уметь перемещать и менять названия окон, приходится изгаляться.

Переопределил QApplication

конструктор:
Код:
CApplication::CApplication(int &argc, char **argv, int v /*= QT_VERSION*/): QApplication(argc,argv,v)
{
XSelectInput(QX11Info::display(), DefaultRootWindow(QX11Info::display()),
SubstructureNotifyMask
);
XFlush(QX11Info::display());


evInstance = QAbstractEventDispatcher::instance();
evInstance->setEventFilter((QAbstractEventDispatcher::EventFilter)customEventFilter);
netwm::init();
}

Фильтр сообщений:
Код:
bool CApplication::customEventFilter(void *message)
{
XEvent *event = (XEvent *)message;
Display *display = QX11Info::display();

Window win;
Window winrep = 0;

bool skip = false;

QString text;
switch (event->type) {
case ReparentNotify:
{
qDebug() << "Reparent: window=" << (int)event->xreparent.window << ", parent=" << (int)event->xreparent.parent << ", event=" << (int)event->xreparent.event;
winrep = (int)event->xreparent.window;
}break;
default:{
}break;
return false;
}

из x11eventfilter перебрасываю в customEventFilter сообщения.


Приложение имеет окно, окно создается и если его не трогать, то Reparent приходит, и Create тоже, но если окно приложения подвигать то фиг, все перестает приходить!!!

Вобщем нид хелп!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.04 секунд. Запросов: 20.