Ищу советы по перемещению приложений Qt 4 и Java между рабочими столами в KDE 3 - PullRequest
0 голосов
/ 07 апреля 2010

У нас есть (возможно?) Необычная ситуация, когда у нас много приложений, построенных на Qt 4, и некоторые приложения, построенные на Java (Swing), но мы используем KDE 3. Мы работаем в Red Hat Enterprise Linux 5 и поскольку официальной версии KDE 4 для него не существует, обновление до KDE 4 невозможно.

Одной из вещей, которые требуются нашим клиентам в нашем проекте, является возможность открытия определенных приложений на разных компьютерах. После анализа KDE 3 API кажется, что основной способ сделать это - использовать функцию KWin :: setOnDesktop.

К сожалению, использование этой функции требует связывания с библиотеками KDE (libkdecore) и того, что вы можете включить заголовочные файлы KDE 3, которые включают в себя кучу Qt 3. Следовательно, мы не можем напрямую взаимодействовать с приложениями Qt 4 с KDE.

Проблема для приложений Java заключается в том, что получение идентификатора окна X11 является огромной болью, поскольку требует прохождения вызовов JNI. (Здесь есть удобная страница StackOverflow о взаимодействии Java и X11 здесь .)

У кого-нибудь есть советы о том, как в этой ситуации перемещать окна между рабочими столами? Спасибо за любые идеи.

1 Ответ

1 голос
/ 07 апреля 2010

KDE4 также имеет метод setOnDesktop, который будет взаимодействовать с оконным менеджером KWin KDE3 (или любым другим разумным оконным менеджером). Он находится в KWindowSystem классе. Вы можете использовать это в своих приложениях.

Дело в том, что метод setOnDesktop будет использовать базовый протокол X11 для выполнения этой работы. Неважно, что приложение написано с одной технологией, а менеджер окон - с другой.

...